①curlでの画像送信、②複数枚の画像送信に引き続き、今回はcurlコマンドを用いてLPR APIのパラメーターを指定する方法について紹介します。
事前準備と動作環境
前回、前々回と同じ環境で行います。
テストファイルの用意
今回は新たにtest2のフォルダを用意し、Full HD(1920×1080)サイズのJPEG画像に、幅が95px、200px、400px、800pxのナンバープレートを配置したものをそれぞれ用意しました。
パラメーターを指定していない場合、LPR APIにより認識されるナンバープレートの大きさは、横幅96px∼600px程度まで(※推奨範囲は150px∼400px)です。


LPR APIでパラメーターを指定せずにそれぞれの画像を以下のコマンドで送ると
curl –X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> –F "image1=@w-95.jpg"
curl –X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> –F "image1=@w-200.jpg"
curl –X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> –F "image1=@w-400.jpg"
curl –X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> –F "image1=@w-800.jpg"
このような結果で返ってきました。

\test2>curl -X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> -F "image1=@w-95.jpg"
{"RES":0}
\test2>curl -X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> -F "image1=@w-200.jpg"
{"PLATES":[{"AREA":"練馬","CLASS":"331","COLOR":"白","DIGITS":"0270","KANA":"と","KIND":"自家","SCORE"{"AREA":"76.2","CLASS":"83.7","DIGITS":24,"KANA":"81.7"},"TYPE":"中板"}],"RES":1}
\test2>curl -X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> -F "image1=@w-400.jpg"
{"PLATES":[{"AREA":"練馬","CLASS":"331","COLOR":"白","DIGITS":"0270","KANA":"と","KIND":"自家","SCORE":{"AREA":"67.8","CLASS":"83.6","DIGITS":8,"KANA":"81.1"},"TYPE":"中板"}],"RES":1}
\test2>curl -X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> -F "image1=@w-800.jpg"
{"RES":0}
横幅が95pxと800pxのものは認識できていないのがわかります。
ここでパラメーターを指定して、認識対象のナンバープレートのサイズの上限と下限を変更することで、認識できるようになるかを確認してみます。
画像と同じフォルダ内に新しくparam-90.jsonと、param-800.jsonの二つのjsonファイルを作成しました。

中身はそれぞれ以下の通りです。

param-90.jsonには、以下の内容を記載します。
{"psizelimit":90}
“psizelimit”は、認識されたナンバープレートのうち、横幅が指定したサイズ未満のナンバープレートを除外するためのパラメータで、デフォルトでは96px未満の横幅のナンバープレートは除外されます。
“psizelimit”は、対象のナンバープレートとは別に、奥側に対象外のナンバープレートが映り込んでしまう場合などで読み取りたい対象以外のナンバープレートを無視するために用います。”psizelimit”で100未満の小さい値を指定しても、そのサイズのナンバープレートが認識できるようになるわけではなく、小さいナンバープレートはそもそも認識しにくく正解率も低いため、注意が必要です。
param-800.jsonには、以下の内容を記載します。
{"psizemax":800}
“psizemax”は、認識対象のナンバープレートが撮影される想定の最大幅を指定します。指定したサイズのナンバープレートが認識できるように繰り返し認識が行われますので、わずかではありますが処理時間が増加します。
コマンド実行
上記のパラメーターと画像をcurlコマンドで送信します。コマンドは以下の通りです。
パラメータファイルは、ファイルのContent-Typeとしてapplication/json、もしくはtext/jsonを指定する必要があります。curlでは、”type=application/json”とすることで指定できます。
curl –X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> –F "image1=@w-95.jpg" -F "meta=@param-90.json;type=application/json"
curl –X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> –F "image1=@w-800.jpg" -F "meta=@param-800.json;type=application/json"
パラメータを指定することでナンバープレートを認識できました。

\test2>curl -X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> -F "image1=@w-95.jpg" -F "meta=@param-90.json;type=application/json"
{"PLATES":[{"AREA":"練馬","CLASS":"331","COLOR":"白","DIGITS":"0270","KANA":"と","KIND":"自家","SCORE":{"AREA":"66.5","CLASS":"78.5","DIGITS":8,"KANA":"73.2"},"TYPE":"中板"}],"RES":1}
\test2>curl -X PUT https://api.sensing-api.com/api/lpr-entry?token=<-トークン-> -F "image1=@w-800.jpg" -F "meta=@param-800.json;type=application/json"
{"PLATES":[{"AREA":"練馬","CLASS":"331","COLOR":"白","DIGITS":"0270","KANA":"と","KIND":"自家","SCORE":{"AREA":"67.0","CLASS":"80.1","DIGITS":8,"KANA":"81.5"},"TYPE":"中板"}],"RES":1}
その他のパラメータ
設定可能なパラメーターの一覧と仕様については、管理画面のLPR APIの詳細ページにある外部仕様書にて確認できます。
※認識対象のナンバープレートのサイズを指定するpsizeは、通常の LPR API のプランでは指定対象外です。
まとめ
パラメーターを指定することで認識結果が変わることが確認できました。
パラメーターを指定するためには、Content-Typeとしてapplication/json、もしくはtext/jsonを指定する必要があることに注意してください。