Toybrick

标题: RK1808 AI计算棒全平台RockX演示Demo(已适配rockx python sdk) [打印本页]

作者: troy    时间: 2019-9-2 17:49
标题: RK1808 AI计算棒全平台RockX演示Demo(已适配rockx python sdk)
本帖最后由 troy 于 2020-1-14 16:17 编辑

1.  RockX简介
Rock-X SDK是一组快捷AI组件库,支持RK3399Pro和RK1808平台。开发者仅需要几条API调用即可在嵌入式产品中离线地使用这些功能,而无需关心AI模型的部署细节,极大加速了产品的原型验证和开发部署。Rock-X组件库根据用户的需求仍会不断扩充。
[attach]530[/attach]

2.  全平台Demo
2.1.  Demo简介
该demo演示了主动模型下,RK1808使用python调用RockX组件库进行全平台适配性演示。
Demo下载链接:百度云OneDriveGithub
文件目录介绍
[attach]532[/attach]

2.2.  上位机环境部署
1.    python3.6环境准备
2.    Linux/MacOS: pip3 install –-user opencv-python
3.    Windows: pip3 install opencv-python
4.    参考wiki的《WEB配置介绍》,通过网页192.168.180.8将计算棒配置成主动模式
5.    参考wiki说明《配置计算棒网络共享》,配置RK1808计算棒NAT网络共享。
6.    上位机插入USB camera或者使用内置摄像头
7.    运行RK1808端服务程序之后,启动上位机端程序。以face_landmark为例,等待RK1808端启动face_landmark_server.py以后,上位机端运行face_landmark_server.py

2.3.  RK1808环境部署
1.    export TMPDIR=/home/toybrick/tmp
2.    sudo dnf install -y python3-opencv
3.    pip3 install --user rockx
4.    执行python3 face_landmark_server.py启动或者可以设置为开机自启动。开机自启动方法参考http://t.rock-chips.com/wiki.php?mod=view&id=74

2.4.  跨平台说明
当前RK1808支持Linux/Windows/MacOS/Android等多个平台。
[attach]531[/attach]

2.5.  演示效果
下图演示了face_landmark的演示效果。
[attach]535[/attach]









作者: yuys    时间: 2019-9-26 14:33
在RK3399Pro如何使用呢
作者: troy    时间: 2019-9-26 16:15
yuys 发表于 2019-9-26 14:33
在RK3399Pro如何使用呢

参考下1808端的和上位机端的代码,合并一下,把通信部分去掉就可以了。
作者: linuxsky    时间: 2019-9-30 11:47
使用上述代码跑起来后识别到的landmark 明显比图片宽,并没有匹配合适。
[attach]612[/attach]

作者: troy    时间: 2019-9-30 14:21
linuxsky 发表于 2019-9-30 11:47
使用上述代码跑起来后识别到的landmark 明显比图片宽,并没有匹配合适。

可以把图片拿远试一下。还有就是演示时,为了加快速度,对图像进行缩放后再送给1808的,也可以去掉缩放试试,让1808直接推理原始图像,缩放会导致最终的landmark数据会有偏差。
作者: linuxsky    时间: 2019-9-30 16:30
troy 发表于 2019-9-30 14:21
可以把图片拿远试一下。还有就是演示时,为了加快速度,对图像进行缩放后再送给1808的,也可以去掉缩放试 ...

远近都是一样的效果
作者: troy    时间: 2019-9-30 16:55
linuxsky 发表于 2019-9-30 16:30
远近都是一样的效果

那就把代码改成不缩放的
作者: sjiton    时间: 2019-11-18 08:41
车牌检测 车牌识别的demo 为啥没有呢?
作者: troy    时间: 2019-11-18 10:53
sjiton 发表于 2019-11-18 08:41
车牌检测 车牌识别的demo 为啥没有呢?

接口都有,只是demo只写了两个。这几天我们RockX会更新版本,而且也会发布正式的RockX python库,自带test用例。
作者: sjiton    时间: 2019-11-21 08:23
我测了一下 成本和性能 足以让很多下游厂商死一批,也让一批传统行业插上AI的发展翅膀。
  1. car_det = toy.createRockx(toy.RockxType.ROCKX_MODULE_CARPLATE_DETECTION)
  2. car_align = toy.createRockx(toy.RockxType.ROCKX_MODULE_CARPLATE_ALIGN)
  3. car_recog = toy.createRockx(toy.RockxType.ROCKX_MODULE_CARPLATE_RECOG)
  4. def inference(img):
  5.         res_det = car_det.inference(img)
  6.         tt = []   
  7.         try:
  8.                 for i in range(res_det['count']):
  9.                         obj = res_det['carplate'][i]
  10.                         result1 = car_align.inference(img, (obj['left'], obj['top'], obj['right'], obj['bottom']))
  11.                         result = car_recog.inference(result1)
  12.                         print (i)
  13.                         print(result)
  14.                         print(res_det)
  15.                         tt.append(result)

  16.         except Exception as e:
  17.                         print(e)

  18.         tt.append(res_det)
  19.         return tt
复制代码

作者: jwseey2019    时间: 2020-1-6 15:35
请问一下rockx sdk下python的主动模式的demo程序,文档里只介绍了c的api接口,python怎么使用的没有文档呢?
作者: troy    时间: 2020-1-6 18:39
jwseey2019 发表于 2020-1-6 15:35
请问一下rockx sdk下python的主动模式的demo程序,文档里只介绍了c的api接口,python怎么使用的没有文档呢 ...

之前是临时版本的rockx python,现在已经发布正式版的rockx python sdk
http://t.rock-chips.com/forum.ph ... ;tid=504&extra=
作者: jwseey2019    时间: 2020-1-7 09:19
troy 发表于 2020-1-6 18:39
之前是临时版本的rockx python,现在已经发布正式版的rockx python sdk
http://t.rock-chips.com/forum.p ...

谢谢                                    
作者: chhuang    时间: 2020-1-13 16:39
本帖最后由 chhuang 于 2020-1-13 17:17 编辑

之前我按照下面的步驟可以跑 demo
1.    sudo dnf install -y python3-opencv
2.    sudo dnf install –y rockx-devel
3.    sudo dnf install python3-toybrick-0.2-12.aarch64.rpm(安装包位于Demo的1808目录下)
4.    执行python3 face_landmark_server.py启动或者可以设置为开机自启动。开机自启动方法参考http://t.rock-chips.com/wiki.php?mod=view&id=74

但現在已經無法透過 dnf 安裝  rockx-devel, 後來是安裝  rockx-rk1808, 所以我的步驟變成
1.    sudo dnf install -y python3-opencv
2.    sudo dnf install –y rockx-rk1808
3.    sudo dnf install python3-toybrick-0.2-12.aarch64.rpm(安装包位于Demo的1808目录下)
4.    执行python3 face_landmark_server.py
但出現 error
Traceback (most recent call last):
  File "face_landmark_server.py", line 2, in <module>
    import toybrick as toy
  File "/usr/local/lib/python3.6/site-packages/toybrick/__init__.py", line 34, in <module>
    from toybrick.rockx import createRockx, RockxType, Rockx
  File "/usr/local/lib/python3.6/site-packages/toybrick/rockx.py", line 1, in <module>
    from . import rkrockx
ImportError: libobject_detection.so: cannot open shared object file: No such file or directory

請問如何修改?  
另外我有試著安裝  pip3 install --user rockx -i http://repo.rock-chips.com/pypi/simple --trusted-host=repo.rock-chips.com
但出現儲存空間不足 ~~補上空間不足的 log

During handling of the above exception, another exception occurred:


Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3.6/site-packages/pip/commands/install.py", line 346, in run
    requirement_set.prepare_files(finder)
  File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3.6/site-packages/pip/req/req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/lib/python3.6/site-packages/pip/download.py", line 821, in unpack_url
    hashes=hashes
  File "/usr/lib/python3.6/site-packages/pip/download.py", line 659, in unpack_http_url
    hashes)
  File "/usr/lib/python3.6/site-packages/pip/download.py", line 882, in _download_http_url
    _download_url(resp, link, content_file, hashes)
OSError: [Errno 28] No space left on device





作者: troy    时间: 2020-1-13 17:49
chhuang 发表于 2020-1-13 16:39
之前我按照下面的步驟可以跑 demo
1.    sudo dnf install -y python3-opencv
2.    sudo dnf install –y ...

import toybrick as toy
之前的toybrick只是一个很简陋的半成品,临时使用。现在的rockx python库虽然功能上看起来和toybrick的库差不多,但是已经完全不是一个东西了。toybrick库已经不再支持维护了。
因此,你需要参考rockx python的demo,重新移植修改你的face_landmark_server.py。
关于空间目录不足的问题,可能是/tmp目录满了,先清掉试试。
作者: chhuang    时间: 2020-1-13 17:58
troy 发表于 2020-1-13 17:49
import toybrick as toy
之前的toybrick只是一个很简陋的半成品,临时使用。现在的rockx python库虽然功 ...

雖然是半成品,有沒有什麼方法可以讓我安裝舊的版本 ~~
作者: troy    时间: 2020-1-14 08:37
chhuang 发表于 2020-1-13 17:58
雖然是半成品,有沒有什麼方法可以讓我安裝舊的版本 ~~

把新的包都卸掉,重新下载附件,按照说明重新安装即可。
作者: troy    时间: 2020-1-14 08:39
troy 发表于 2020-1-14 08:37
把新的包都卸掉,重新下载附件,按照说明重新安装即可。

建议还是使用最新的python rockx,使用更加方便,功能更为强大,也可以随时更新。
SDK包里面,也有python版本的多个例子,包括face_landmarks,花几个小时应该就能改写成功的,建议尝试一下。
作者: troy    时间: 2020-1-14 16:15
chhuang 发表于 2020-1-13 17:58
雖然是半成品,有沒有什麼方法可以讓我安裝舊的版本 ~~

适配rockx工作已完成,建议从github上拉取最新代码,README文件也已更新。关于pip3安装失败问题,是/tmp目录过小导致,按照说明,重定向tmp目录到用户目录即可。
作者: chhuang    时间: 6 天前
troy 发表于 2020-1-14 16:15
适配rockx工作已完成,建议从github上拉取最新代码,README文件也已更新。关于pip3安装失败问题,是/tmp ...

https://github.com/rockchip-toybrick/master_rockx_demo

github 上面的還是舊的資料,可否確認一下  謝謝
作者: troy    时间: 6 天前
chhuang 发表于 2020-1-16 11:05
https://github.com/rockchip-toybrick/master_rockx_demo

github 上面的還是舊的資料,可否確認一下  謝 ...

先用这个仓库https://github.com/troyseed/toybrick_master_rockx




欢迎光临 Toybrick (http://t.rock-chips.com/) Powered by Discuz! X3.3