cv图像识别

安卓opencv全分辨率找图


paddle_pose 姿态检测

<p>[TOC]</p> <h5>简要描述</h5> <ul> <li>百度飞浆姿态检测。 【v2.1.3】以上可用。</li> </ul> <h5>参数</h5> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">参数类型</th> <th style="text-align: left;">参数类型</th> <th>参数说名</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">image</td> <td style="text-align: left;">必须</td> <td style="text-align: left;">String\bitmap</td> <td>支持输入bitmp、图片文件路径。</td> </tr> <tr> <td style="text-align: left;">confidence</td> <td style="text-align: left;">必须</td> <td style="text-align: left;">double</td> <td>信度/相似度 (0~1)</td> </tr> <tr> <td style="text-align: left;">ver</td> <td style="text-align: left;">(可选)</td> <td style="text-align: left;">int</td> <td>版本。0=最新版本 1=旧的兼容版本 默认=0,如果出现兼容问题可尝试切换</td> </tr> </tbody> </table> <h5>返回值</h5> <p>String,一个json文本。返回示例如下:</p> <pre><code class="language-java">{ "text": "pose", "confidence": 0, "id": 0, "x1": 259, "x2": 799, "y1": 93, "y2": 2035, "points": [ { "index": 0, "x1": 551, "y1": 2035, "x2": 630, "y2": 1734 }, { "index": 1, "x1": 630, "y1": 1734, "x2": 518, "y2": 1226 } ] }</code></pre> <p>text: 无意义一直为 pose confidence:无意义 x1:目标左上角x y1:目标左上角y x2:目标右下角x y2:目标右下角y points:姿态方向。从(x1,y1)到 (x2,y2)直接的直线。请自行计算角度。总共15条线</p> <h2>例子:人体姿态检测</h2> <pre><code class="language-java">/**入口**/ function main() { //0、脚本停止回调,清除绘制。 cvImg.drawRectClear(); setStopCallback(function (){//停止脚本清除显示框。 sleep(3000);//延迟清除,不然看不到绘制效果。 cvImg.drawRectClear(); loge("脚本已停止!") }); logd("开始执行脚本..."); //1、申请截图权限 logd("申请截图权限",image.requestScreenCapture(10000,0)); //2、加载百度飞浆库(该操作,脚本开头执行一次即可。) var ret=cvImg.paddle_loadLib("/sdcard/lib.apk",""); if(!ret){ loge(cvImg.paddle_getErrorText()); exit(); } //3、加载模型 ret= cvImg.paddle_loadMode("/sdcard/pose_肢体关键点检测_SimplePose_384.apk","pose",4); if(!ret){ loge(cvImg.paddle_getErrorText()); exit(); }else{ logd("模型加载OK...") } //截图 var bitmap=image.captureScreenBitmap("png",0,0,cvImg.dw,cvImg.dh ,100); if(bitmap){//语义分割 let t=time(); var info=cvImg.paddle_pose(bitmap,0.2,0); logd("检测耗时:"+(time()-t)+"ms"); //调用失败输出错误信息。 if(cvImg.paddle_getErrorText()+""!=="")loge(cvImg.paddle_getErrorText()); logd(info.substr(0,1000)) //绘制结果,以及性能 if(info){ let t=time(); var json=JSON.parse(info); cvImg.drawRect(json,1);// {"person":1} 表示只显示人物 logd("绘制耗时:"+(time()-t)+"ms"); } //释放截图 image.recycle(bitmap) }else{ logd("请给个截图权限呗....") } //释放模型 cvImg.paddle_release(); }</code></pre> <h2>例子:人体姿态检测结果</h2> <p>进行检测的图像 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=cef48ba029af79b10d23df62c0ecc9f2&amp;file=file.png" alt="" /></p> <p>检测之后 <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=e20ccf82580ce848b4f52e20b46749d8&amp;file=file.png" alt="" /></p>

页面列表

ITEM_HTML