Ранее уже был проведен обзор одноплатного компьютера Youyeetoo YY3568 на базе Rockchip RK3568 с Android 11 — в первой части обзора были перечислены характеристики и рассмотрен комплект оборудования. Теперь появилась возможность переключиться на Lubuntu 20.04, провести базовые тесты и подробнее изучить RKNPU2 AI SDK для встроенного AI-ускорителя производительностью 0.8 TOPS, который присутствует в SoC Rockchip RK3568 .
Установка Ubuntu или Debian на одноплатный компьютер YY3568
Компания предоставляет образы как Debian , так и Ubuntu для YY3568, с разными вариантами в зависимости от загрузочного устройства (SD-карта или eMMC) и используемого видеоинтерфейса (DSI, eDP, HDMI).


В комплекте «Bundle 5» YY3568 используется 11.6-дюймовый eDP-дисплей, поэтому выбран образ «Ubuntu 20» с упоминанием edp в имени файла. Для прошивки образов Linux используется программа RKDevTool — процесс аналогичен установке Android 11.
После завершения установки можно нажать кнопку Reset и загрузиться в Ubuntu 20.04, точнее в Lubuntu 20.04 с окружением рабочего стола LXQt.

Тестирование производительности YY3568 в Linux
Теперь, когда Lubuntu 20.04 успешно установлена, можно провести тесты производительности на YY3568.
Начнем со скрипта sbc-bench.sh от Thomass Kaiser:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
tinymembench,ramlat, mhz. Done. Checking cpufreq OPP. Done (results will be available in 10-16 minutes). Executing tinymembench. Done. Executing RAM latency tester. Done. Executing OpenSSL benchmark. Done. Executing 7-zip benchmark. Done. Checking cpufreq OPP again. Done (13 minutes elapsed). Results validation: * Advertised vs. measured max CPU clockspeed: -5.4% before, -6.4% after * Background activity (%system) OK * No throttling Memory performance memcpy: 3074.9 MB/s memset: 5942.3 MB/s 7-zip total scores (3 consecutive runs): 4496,4437,4431, single-threaded: 1211 OpenSSL results: type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes aes-128-cbc 178431.77k 520431.64k 992779.52k 1288375.30k 1411738.28k 1420580.18k aes-128-cbc 181153.17k 521213.70k 994408.62k 1288928.94k 1410916.35k 1421082.62k aes-192-cbc 172219.92k 460495.64k 802809.26k 990434.99k 1061336.41k 1067149.99k aes-192-cbc 172259.37k 460785.32k 802708.99k 990319.62k 1060656.47k 1066183.34k aes-256-cbc 165998.18k 424880.55k 694931.71k 826145.11k 872235.01k 875752.11k aes-256-cbc 165966.50k 424769.43k 694433.88k 826590.55k 872420.69k 875724.80k |
Подробные результаты доступны по ссылке http://ix.io/4Ga2
Затем с помощью iozone из Phoronix Test Suite проверена скорость чтения и записи eMMC. При размере файла 512 МБ и блоке 1 МБ iozone показал нереалистичную скорость чтения 1190.83 МБ/с:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
IOzone 3.465: pts/iozone-1.9.6 [Record Size: 1MB - File Size: 512MB - Disk Test: Read Performance] Test 1 of 8 Test Profile Status: Deprecated Estimated Trial Run Count: 3 Estimated Test Run-Time: 20 Minutes Record Size: 1MB - File Size: 512MB - Disk Test: Read Performance: 1068.0517578125 1322.853515625 1323.724609375 1251.857421875 1277.0048828125 1307.0283203125 1366.4228515625 1238.892578125 1197.197265625 999.79296875 1297.1181640625 1060.5302734375 979.6884765625 1058.6123046875 1113.677734375 Average: 1190.83 MB/s Deviation: 11.01% Samples: 15 Comparison of 1,716 OpenBenchmarking.org samples since 26 February 2011 to 2 August; median result: 4716 MB/s. Box plot of samples: [ |---*--------###########!######*####---*----*-------------*----*--| ] ^ This Result (6th Percentile): 1191 512GB database: 5833 ^ 240GB DELLBOSS VD: 11355 ^ 480GB SAMSUNG MZ7LH480: 10579 ^ 2 x 250GB Samsung SSD 850: 8195 ^ 5 x 500GB Crucial_CT500MX2: 7346 ^ |
Этот результат явно связан с кэшированием, поэтому тест повторен с параметром I для включения «DIRECT IO», что позволяет обойти кэш буфера и работать напрямую с диском:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
root@smartfly:/# iozone -e -I -a -s 512M -r 1024k -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux Run began: Wed Sep 20 15:24:27 2023 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 524288 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 512M -r 1024k -r 16384k -i 0 -i 1 -i 2 Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 524288 1024 87888 89372 112574 113474 113612 85778 524288 16384 98887 95894 152500 153558 153118 100792 iozone test complete. |
Скорость чтения составила около 153.5 МБ/с, записи — 98.8 МБ/с, что указывает на высокую скорость 64 ГБ eMMC в плате.
Производительность сети
Тестирование Ethernet и Wi-Fi проведено с помощью iperf3 с использованием роутера от AIS (тайский оператор связи).
Плата YY3568 имеет два Ethernet-интерфейса. Начнем с eth0:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
root@smartfly:/# iperf3 -c 192.168.1.162 -f g Connecting to host 192.168.1.162, port 5201 [ 5] local 192.168.1.131 port 39516 connected to 192.168.1.162 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 113 MBytes 0.95 Gbits/sec 0 451 KBytes [ 5] 1.00-2.00 sec 113 MBytes 0.95 Gbits/sec 0 477 KBytes [ 5] 2.00-3.00 sec 112 MBytes 0.94 Gbits/sec 0 477 KBytes [ 5] 3.00-4.00 sec 112 MBytes 0.94 Gbits/sec 0 499 KBytes [ 5] 4.00-5.00 sec 112 MBytes 0.94 Gbits/sec 0 525 KBytes [ 5] 5.00-6.00 sec 113 MBytes 0.94 Gbits/sec 0 525 KBytes [ 5] 6.00-7.00 sec 112 MBytes 0.94 Gbits/sec 0 525 KBytes [ 5] 7.00-8.00 sec 113 MBytes 0.95 Gbits/sec 0 549 KBytes [ 5] 8.00-9.00 sec 112 MBytes 0.94 Gbits/sec 0 549 KBytes [ 5] 9.00-10.00 sec 112 MBytes 0.94 Gbits/sec 0 549 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.10 GBytes 0.94 Gbits/sec 0 sender [ 5] 0.00-10.04 sec 1.10 GBytes 0.94 Gbits/sec receiver iperf Done. |
Результаты хорошие, аналогичная картина наблюдается при тестировании Eth1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
root@smartfly:/# iperf3 -c 192.168.1.162 -f g Connecting to host 192.168.1.162, port 5201 [ 5] local 192.168.1.134 port 54100 connected to 192.168.1.162 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 113 MBytes 0.95 Gbits/sec 0 451 KBytes [ 5] 1.00-2.00 sec 112 MBytes 0.94 Gbits/sec 0 520 KBytes [ 5] 2.00-3.00 sec 113 MBytes 0.95 Gbits/sec 0 520 KBytes [ 5] 3.00-4.00 sec 112 MBytes 0.94 Gbits/sec 0 547 KBytes [ 5] 4.00-5.00 sec 113 MBytes 0.94 Gbits/sec 0 547 KBytes [ 5] 5.00-6.00 sec 112 MBytes 0.94 Gbits/sec 0 547 KBytes [ 5] 6.00-7.00 sec 112 MBytes 0.94 Gbits/sec 0 547 KBytes [ 5] 7.00-8.00 sec 112 MBytes 0.94 Gbits/sec 0 547 KBytes [ 5] 8.00-9.00 sec 112 MBytes 0.94 Gbits/sec 0 547 KBytes [ 5] 9.00-10.00 sec 112 MBytes 0.94 Gbits/sec 0 547 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 1.10 GBytes 0.94 Gbits/sec 0 sender [ 5] 0.00-10.04 sec 1.10 GBytes 0.94 Gbits/sec receiver |
Для проверки Wi-Fi 5 (модуль RTL8822CE) использована сеть 5 GHz роутера AIS, средняя скорость передачи данных составила 575 Мбит/с.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
root@smartfly:/# iperf3 -c 192.168.1.162 -f m Connecting to host 192.168.1.162, port 5201 [ 5] local 192.168.1.124 port 39890 connected to 192.168.1.162 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.01 sec 51.5 MBytes 427 Mbits/sec 0 2.67 MBytes [ 5] 1.01-2.00 sec 72.5 MBytes 614 Mbits/sec 0 3.13 MBytes [ 5] 2.00-3.00 sec 73.8 MBytes 620 Mbits/sec 0 3.13 MBytes [ 5] 3.00-4.00 sec 73.8 MBytes 619 Mbits/sec 0 3.13 MBytes [ 5] 4.00-5.01 sec 71.2 MBytes 591 Mbits/sec 0 3.13 MBytes [ 5] 5.01-6.01 sec 70.0 MBytes 590 Mbits/sec 0 3.13 MBytes [ 5] 6.01-7.00 sec 71.2 MBytes 602 Mbits/sec 0 3.13 MBytes [ 5] 7.00-8.00 sec 72.5 MBytes 608 Mbits/sec 0 3.13 MBytes [ 5] 8.00-9.00 sec 73.8 MBytes 616 Mbits/sec 0 3.13 MBytes [ 5] 9.00-10.01 sec 61.2 MBytes 509 Mbits/sec 0 3.13 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.01 sec 692 MBytes 579 Mbits/sec 0 sender [ 5] 0.00-10.08 sec 691 MBytes 575 Mbits/sec receiver |
Таким образом, сетевое подключение на YY3568 работает стабильно как через Ethernet, так и через Wi-Fi 5.
Аппаратное ускорение 3D-графики на Rockchip RK3568
Производительность GPU Mali-G52 проверена с помощью бенчмарка glmark2, система набрала 115 баллов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
======================================================= glmark2 2021.02 ======================================================= OpenGL Information GL_VENDOR: ARM GL_RENDERER: Mali-G52 GL_VERSION: OpenGL ES 3.2 v1.g2p0-01eac0.327c41db9c110a33ae6f67b4cc0581c7 ======================================================= [build] use-vbo=false: FPS: 116 FrameTime: 8.621 ms [build] use-vbo=true: FPS: 126 FrameTime: 7.937 ms [texture] texture-filter=nearest: FPS: 156 FrameTime: 6.410 ms [texture] texture-filter=linear: FPS: 150 FrameTime: 6.667 ms [texture] texture-filter=mipmap: FPS: 157 FrameTime: 6.369 ms [shading] shading=gouraud: FPS: 123 FrameTime: 8.130 ms [shading] shading=blinn-phong-inf: FPS: 119 FrameTime: 8.403 ms [shading] shading=phong: FPS: 122 FrameTime: 8.197 ms [shading] shading=cel: FPS: 122 FrameTime: 8.197 ms [bump] bump-render=high-poly: FPS: 91 FrameTime: 10.989 ms [bump] bump-render=normals: FPS: 151 FrameTime: 6.623 ms [bump] bump-render=height: FPS: 147 FrameTime: 6.803 ms [effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 125 FrameTime: 8.000 ms [effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 70 FrameTime: 14.286 ms [pulsar] light=false:quads=5:texture=false: FPS: 147 FrameTime: 6.803 ms [desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 78 FrameTime: 12.821 ms [desktop] effect=shadow:windows=4: FPS: 125 FrameTime: 8.000 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 55 FrameTime: 18.182 ms [buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 52 FrameTime: 19.231 ms [buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 73 FrameTime: 13.699 ms [ideas] speed=duration: FPS: 74 FrameTime: 13.514 ms [jellyfish] <default>: FPS: 106 FrameTime: 9.434 ms [terrain] <default>: FPS: 28 FrameTime: 35.714 ms [shadow] <default>: FPS: 97 FrameTime: 10.309 ms [refract] <default>: FPS: 48 FrameTime: 20.833 ms [conditionals] fragment-steps=0:vertex-steps=0: FPS: 147 FrameTime: 6.803 ms [conditionals] fragment-steps=5:vertex-steps=0: FPS: 144 FrameTime: 6.944 ms [conditionals] fragment-steps=0:vertex-steps=5: FPS: 149 FrameTime: 6.711 ms [function] fragment-complexity=low:fragment-steps=5: FPS: 147 FrameTime: 6.803 ms [function] fragment-complexity=medium:fragment-steps=5: FPS: 129 FrameTime: 7.752 ms [loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 144 FrameTime: 6.944 ms [loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 146 FrameTime: 6.849 ms [loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 131 FrameTime: 7.634 ms ======================================================= glmark2 Score: 115 ======================================================= |
Результат не самый высокий, но аппаратное ускорение 3D-графики работает.
Воспроизведение видео и аудио
Для тестирования видео и аудио использованы ролики с YouTube. Плата Youyeetoo YY3568 предлагает несколько вариантов вывода звука, включая 3.5-мм аудиоразъем и разъем с моноусилителем класса D для подключения динамиков. Проблем с воспроизведением не возникло, все работает корректно. Плата подходит для применения в цифровых вывесках.
В коротком видео выше показано воспроизведение YouTube-ролика в браузере Chromium.
Изучение RKNPU2 SDK для AI-нагрузок на SoC Rockchip RK3568
RKNN-Toolkit2 — это SDK для работы с AI-нагрузками на современных SoC Rockchip с NPU, включая RK3566, RK3568, RK3588, RK3588S, RV1103, RV1106, RK3562.
Для начала работы требуется два шага:
- Конвертация предобученных моделей в формат RKNN с помощью инструментов из https://github.com/rockchip-linux/rknn-toolkit2
- Использование преобразованной модели через RKNPU2, доступный на https://github.com/rockchip-linux/rknpu2
Установка
В этом обзоре показано, как развернуть модель YOLO5 , преобразованную через rknn-toolkit2. Соберем пример RKNPU2 для процессора Rockchip RK3568:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
root@smartfly:/# cd /home/youyeetoo/rknpu2/examples/rknn_yolov5_demo root@smartfly:/home/youyeetoo/rknpu2/examples/rknn_yolov5_demo# ls build-android_RK3562.sh build-linux_RK3588.sh README_CN.md build-android_RK3566_RK3568.sh CMakeLists.txt README.md build-android_RK3588.sh convert_rknn_demo src build-linux_RK3562.sh include utils build-linux_RK3566_RK3568.sh model <pu2/examples/rknn_yolov5_demo# chmod +x build-linux_RK3566_RK3568.sh <2/examples/rknn_yolov5_demo# ./build-linux_RK3566_RK3568.sh -- The C compiler identification is GNU 9.4.0 -- The CXX compiler identification is GNU 9.4.0 -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- Check for working C compiler: /usr/bin/aarch64-linux-gnu-gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- Check for working CXX compiler: /usr/bin/aarch64-linux-gnu-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found OpenCV: /home/youyeetoo/rknpu2/examples/3rdparty/opencv/opencv-linux-aarch64 (found version "3.4.5") -- Configuring done -- Generating done -- Build files have been written to: /home/youyeetoo/rknpu2/examples/rknn_yolov5_demo/build/build_linux_aarch64rknn_benchmark/install/rknn_benchmark_Linux/lib/librknnrt.so /home/youyeetoo/rknpu2/examples/rknn_benchmark |
После завершения сборки будет получен исполняемый файл rknn_yolov5_demo.
Запуск YOLO5 на плате YY3568
Для тестирования примера запустим rknn_yolov5_demo с двумя параметрами: используемой моделью и входным изображением.
1 2 |
cd /home/youyeetoo/rknpu2/examples/rknn_yolov5_demo ./rknn_yolov5_demo ./model/RK3566_RK3568/yolov5s-640-640.rknn ./bus.jpg |
Результатом будет изображение out.jpg с рамками и подписями вокруг обнаруженных объектов. Модель обучена для разрешения 640×640, поэтому при использовании изображений других размеров объекты могут не обнаруживаться. Помимо изображения автобуса, также протестировано изображение man.jpg, на котором обнаружено несколько объектов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
post process config: box_conf_threshold = 0.25, nms_threshold = 0.45 Read ./model/man.jpg ... img width = 640, img height = 640 Loading mode... sdk version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22) driver version: 0.8.8 model input num: 1, output num: 3 index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, w_stride = 640, size_with_stride=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922 index=0, name=output, n_dims=4, dims=[1, 255, 80, 80], n_elems=1632000, size=1632000, w_stride = 0, size_with_stride=1638400, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003860 index=1, name=283, n_dims=4, dims=[1, 255, 40, 40], n_elems=408000, size=408000, w_stride = 0, size_with_stride=409600, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922 index=2, name=285, n_dims=4, dims=[1, 255, 20, 20], n_elems=102000, size=102000, w_stride = 0, size_with_stride=122880, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003915 model is NHWC input fmt model input height=640, width=640, channel=3 once run use 78.917000 ms loadLabelName ./model/coco_80_labels_list.txt person @ (89 157 258 631) 0.895037 bowl @ (483 221 506 240) 0.679969 bowl @ (395 322 444 343) 0.659576 wine glass @ (570 200 588 241) 0.544585 bowl @ (505 221 527 239) 0.477606 bowl @ (482 322 532 338) 0.458121 wine glass @ (543 199 564 239) 0.452579 cup @ (418 215 437 238) 0.410092 cup @ (385 204 402 240) 0.374592 cup @ (435 212 451 238) 0.371657 bowl @ (613 215 639 239) 0.359605 wine glass @ (557 200 575 240) 0.359143 cup @ (446 211 461 238) 0.358369 spoon @ (255 257 271 313) 0.340807 bottle @ (412 84 432 119) 0.338540 spoon @ (307 267 322 326) 0.318563 spoon @ (324 265 340 332) 0.315867 bottle @ (453 305 466 340) 0.308927 cup @ (526 210 544 239) 0.290318 bottle @ (389 83 411 119) 0.277804 wine glass @ (583 198 602 239) 0.277093 bowl @ (24 359 101 383) 0.275663 oven @ (4 370 168 632) 0.256395 spoon @ (268 262 282 322) 0.252866 bottle @ (434 85 454 118) 0.250721 loop count = 10 , average run 69.709700 ms |
Пример может обнаруживать до 25 объектов, время обработки составило около 70 мс, или примерно 14 кадров в секунду, что довольно быстро — Raspberry Pi 4 с YOLO5 и теми же изображениями 640×640 выдает только 4 кадра в секунду (на CPU).
Тест RKNN Benchmark
Производительность NPU на YY3568 можно оценить с помощью RKNN Benchmark из SDK, запустив тест 10 раз для получения среднего значения FPS.
1 |
./rknn_benchmark /home/youyeetoo/rknpu2/examples/rknn_yolov5_demo/model/RK3566_RK3568/yolov5s-640-640.rknn man.jpg 10 |
Результат:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
rknn_api/rknnrt version: 1.5.2 (c6b7b351a@2023-08-23T15:28:22), driver version: 0.8.8 total weight size: 7308672, total internal size: 6144000 total dma used size: 21528576 model input num: 1, output num: 3 input tensors: index=0, name=images, n_dims=4, dims=[1, 640, 640, 3], n_elems=1228800, size=1228800, w_stride = 640, size_with_stride=1228800, fmt=NHWC, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922 output tensors: index=0, name=output, n_dims=4, dims=[1, 255, 80, 80], n_elems=1632000, size=1632000, w_stride = 0, size_with_stride=1638400, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003860 index=1, name=283, n_dims=4, dims=[1, 255, 40, 40], n_elems=408000, size=408000, w_stride = 0, size_with_stride=409600, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003922 index=2, name=285, n_dims=4, dims=[1, 255, 20, 20], n_elems=102000, size=102000, w_stride = 0, size_with_stride=122880, fmt=NCHW, type=INT8, qnt_type=AFFINE, zp=-128, scale=0.003915 custom string: Warmup ... 0: Elapse Time = 58.82ms, FPS = 17.00 1: Elapse Time = 59.41ms, FPS = 16.83 2: Elapse Time = 59.29ms, FPS = 16.87 3: Elapse Time = 59.30ms, FPS = 16.86 4: Elapse Time = 59.30ms, FPS = 16.86 Begin perf ... 0: Elapse Time = 59.52ms, FPS = 16.80 1: Elapse Time = 49.05ms, FPS = 20.39 2: Elapse Time = 44.44ms, FPS = 22.50 3: Elapse Time = 44.29ms, FPS = 22.58 4: Elapse Time = 44.33ms, FPS = 22.56 5: Elapse Time = 44.48ms, FPS = 22.48 6: Elapse Time = 44.29ms, FPS = 22.58 7: Elapse Time = 44.28ms, FPS = 22.58 8: Elapse Time = 44.46ms, FPS = 22.49 9: Elapse Time = 44.29ms, FPS = 22.58 Avg Time 46.34ms, Avg FPS = 21.577 |
Среднее значение FPS — 21.5, что даже выше, чем в одиночном запуске. Похоже, многократный запуск модели улучшает производительность, возможно, из-за кэширования кода или данных. В любом случае, плата YY3568 подходит для задач компьютерного зрения, если не требуется обработка в реальном времени (30+ кадров в секунду).
YOLO5 с USB-камерой
В комплект разработчика «Bundle 5» YY3358 входит MIPI CSI-камера, но, к сожалению, она работает только в Android 11, а драйверы для Linux пока не готовы. Поэтому для теста использована USB-камера: захват изображения и запуск YOLO5 одной командой:
1 |
fswebcam -r 1280x720 -S 1 --no-banner --no-timestamp me.jpg | ./rknn_yolov5_demo ./model/RK3566_RK3568/yolov5s-640-640.rknn $me.jpg |
Удалось записать изображение с USB-камеры и передать его в программу rknn_yolov5_demo. Для более четкого отображения рамок и подписей можно отредактировать ~/rknpu2/examples/rknn_yolov5_demo/src/main.cc следующим образом:
1 2 |
301 rectangle(orig_img, cv::Point(x1, y1), cv::Point(x2, y2), cv::Scalar(0, 0, 255, 0), 3); 302 putText(orig_img, text, cv::Point(x1, y1 + 12), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 0, 0)); |
Заключение
После более чем недели тестирования выявлена недавняя проблема: плата периодически зависает и перестает работать из-за недостаточного охлаждения — небольшой радиатор не справляется с поддержанием стабильной работы системы. Наличие дополнительного радиатора с вентилятором было бы полезно, тем более что плата предусматривает подключение кулера.
Помимо этой проблемы, удобство использования на высоком уровне, а руководство на вики Youyeetoo хорошо проработано. Документация понятна даже неспециалистам. Что касается AI, платформа Rockchip продолжает развиваться, о чем свидетельствует дата последнего релиза RKNPU2 SDK на GitHub (три недели назад на момент публикации). Работа с платами Rockchip требует некоторого обучения, но их соотношение производительности и цены делает их интересным выбором.
Благодарим Youyeetoo за предоставленный для обзора комплект разработчика YY3568 «Bundle 5». Модуль YY3568-Core, одноплатный компьютер YY3568 и комплект «Bundle 5» можно приобрести на Aliexpress , Amazon или в магазине Youyeetoo по цене от $36.99 за модуль. Комплект «Bundle 5» с модулем на 8 ГБ ОЗУ и 64 ГБ eMMC стоит $206.15 плюс доставка.
CNXSoft: Эта статья является переводом — с некоторыми правками — оригинального обзора на CNX Software Thailand от Arnon Thongtem , отредактированного Suthinee Kerdkaew .
Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.