您尚未登录。

#1 Re: DOPI开源摄像头(HI3516/HI3518) » 捡漏hi3516ev300摄像头-移动侦测\有人侦测-耍起来 » 2025-01-05 16:56:13

【闲鱼】https://m.tb.cn/h.TiJ0dY9?tk=t6vaebN80wP CA6496 「我在闲鱼发布了【HI3516EV300开发板,cortex A7@ 900M。】」
点击链接直接打开


这里

#2 Re: 技术人生/软件使用技巧/破解经验/技术吐槽/灌水 » 有没有人做的nas方案可以借鉴一下 » 2024-12-28 22:37:19

咸鱼上淘了一片7621+sata的板子,原本是接2.5寸硬盘的,焊上12V供电后,发现3.5寸 sata也能跑。目前正常用着,千兆有线网samba共享,读取单个大文件约113MB/s,  写比较慢,用固态有50MB/s, 继续硬盘只有40MB/s左右。

大概是全网最low的Nas了,还有谁!!!

#3 Re: Openwrt/LEDE/AR9331/MT7688/RT5350 » MT798x 资料 » 2024-11-21 20:57:40

好东西,楼主有官方的SDK吗?
开源的是指mt76?

#4 Re: 全志 SOC » Allwinner V3s SD 运行 Alpine Linux 发行版总结(适用于 H3 等其他 ARM 板) » 2024-10-19 16:46:07

在H3上试了一下, 楼主,请问下,每次开机后,我修改的启动脚本,安装的软件,重新上电后都没了,看官网说明是因为使用的是 initRam FS, 请问有什么解决方法吗?

#5 Re: 全志 SOC » 插入SD卡可以识别出卡大小,不能挂载,读写错误,这个是哪里都问题 » 2024-09-25 23:40:47

瞎猜一个可能,看是否有办法排除。
SD卡在 detect阶段是400k的CLK, 然后是用更高的CLK。
有可能400k可以正常跑,但更高的CLK跑不了。   =》 请硬件检查走线啥的吧

#6 人工智能,深度学习,神经网络,OpenAI,阿里通义 » hi3516ev300摄像头-官方SDK不得劲,各种人脸检测跑起来(Tengine\NCNN\Dlib) » 2024-09-19 00:40:16

xichuangxue
回复: 1

hi3516ev300摄像头的前面几个帖子如下:

hi3516ev300摄像头-刷OpenIPC固件
   https://whycan.com/t_11292.html

motion Detect 实现
    https://whycan.com/t_11291.html
人形检测
    https://whycan.com/t_11275.html



话接上文,官方SDK中的人形检测只能判断是否有人,没办法用红框标记出来,实在很不得劲。于是一顿搜索,果然找到几个可以在嵌入式上跑的开源项目,
于是在128M内存,256M Flash小身板上,都跑了一下最简单的人脸检测,记录如下:

原图size 474*316
selfie_960.jpg



Tengine 之 ultraface
参考 https://github.com/OAID/Tengine

使用 Tengine 的 ultraface例程进行处理,用时275.6ms,速度最佳,准确率略输retinaface

/tengine # ./tm_ultraface  -i images/selfie_960.jpg -m models/rfb-320.tmfile
tengine-lite library version: 1.5-dev
Repeat 1 times, thread 1, avg time 275.66 ms, max_time 275.66 ms, min_time 275.66 ms
--------------------------------------
detected face num: 4
BOX 0.97:(389.72, 58.97),(458.94, 142.53)
BOX 0.91:(38.55, 87.36),(82.94, 147.53)
BOX 0.91:(289.84, 100.03),(325.86, 149.08)
BOX 0.94:(168.73, 81.97),(206.14, 133.12)
======================================
[DETECTED IMAGE SAVED]:
======================================
ultraface_out.jpg



Tengine 之 retinaface
参考相同git ,使用不同例子,用时686.3ms,速度第二,用时间换来了准确率。可以看到还标出5个关键点。

~/tengine # ./tm_retinaface -i images/mtcnn_face4.jpg
tengine-lite library version: 1.5-dev
img_h, img_w : 316, 474
Repeat 1 times, thread 1, avg time 686.30 ms, max_time 686.30 ms, min_time 686.30 ms
--------------------------------------
detected face num: 4
BOX 1.00:( 38.4053 , 86.142 ),( 46.3009 , 64.0174 )
BOX 0.99:( 384.076 , 56.9844 ),( 76.968 , 83.9609 )
BOX 0.99:( 169.196 , 87.1324 ),( 38.4133 , 46.8504 )
BOX 0.98:( 290.004 , 104.453 ),( 37.6345 , 46.7777 )

retinaface_out.jpg





腾讯开源的ncnn
参考 https://github.com/Tencent/ncnn.git
用时0.99s,速度第三

/tengine/images # time ./retinaface selfie_960.jpg
dlopen failed File not found
dlopen failed File not found
dlopen failed File not found
dlopen failed File not found
dlopen failed File not found
dlopen failed File not found
load vulkan driver failed
0.99604 at 38.39 86.17 46.31 x 64.00
0.98804 at 384.06 57.02 76.96 x 83.92
0.98677 at 169.21 87.12 38.40 x 46.85
0.98447 at 290.00 104.45 37.62 x 46.79
imshow save image to image.png
waitKey stub
real    0m 0.99s
user    0m 0.90s
sys     0m 0.09s

image.png



dlib 之frontal_face_detector
参考https://github.com/david8862/dlib_on_arm
这个交叉编译又复杂,依赖又多,差点放弃,居然耗时最多,准确率也最低,漏检测一个人脸,运行结果图就不上了
/tengine/dlib # time ./sl_face_detect ../images/selfie_960.jpg
processing image ../images/selfie_960.jpg
Number of faces detected: 3
faces detected: [(352, 179) (438, 265)]
faces detected: [(102, 188) (188, 275)]
faces detected: [(563, 208) (649, 294)]
real    0m 34.48s
user    0m 34.43s
sys     0m 0.00s


总结
      身板小归小,人脸识别也能跑。
      3516本身的硬件计算Hog没能用起来, 实在有些可惜 ,否则检测时间还会有很大提升。坛子里的大佬如有建议,还请不吝指导一下,感激不尽。


后续打算
    原本以为在474*316 大小用时 276ms, 预期在1920*1080图片上用时会和数据量成倍数关系的,结果直接刷新我的认知。
    用ultraface跑一直不含人脸的1920*1080的图,用时280ms左右。  假如处理1920*1080图片的fps=3的话,感官上,延迟还可以接受,大概算是实时的吧。

     所以最终是打算用官方SDK中的SMD例程,检测到人形后, 取一张图片来跑前面的ultra face,如果检测到人脸就标记后存下来。




顺便打个小广告,有需要的坛友,可以咸鱼购买小身板开发板

【闲鱼】 https://m.tb.cn/h.grWdc1o?tk=2XJ637NQSq4  MF6563 「我在闲鱼发布了【HI3516EV300开发板,cortex A7@ 900M。】」
点击链接直接打开

#7 DOPI开源摄像头(HI3516/HI3518) » 捡漏hi3516ev300摄像头-刷OpenIPC固件 » 2024-08-13 22:50:32

xichuangxue
回复: 0

前面简单试水SDK中的例程后,因为之前玩博云摄像头的时候接触到了openIPC, 所以很自然的就想也刷openIPC

openIPC 固件官网如下,各个平台方案都有,官网含刷机步骤。
https://openipc.org/cameras/vendors/hisilicon


刷机后进入web,default 账号是root/12345, 

设置 sensor类型后,打开RTSP就可以用VLC 拉流了。


openIPC.png


功能超级多,目前试过以下功能,都是正常的。
1、RTSP          用VLC 拉流
2、HLS           直接浏览器获取视频流,有浏览器就行,都不需要VLC。
3、Recording  录像存到网盘/本地服务器。
4、ONVIF       通用的标准接口



不得不说,openIPC 功能全且强,甚至连前面移动侦测都做了,可以在RTSP中直接获取移动侦测后的视频流。

除了SMD(有人才告警),其他都包含了,也挺好用的,完全没有了自己折腾的欲望了。


顺便打个小广告,有需要的坛友,可以咸鱼购买

【闲鱼】https://m.tb.cn/h.gkAwgxq?tk=tOAq33ucDph CZ3460 「我在闲鱼发布了【HI3516EV300开发板,cortex A7@ 900M。】」
点击链接直接打开

#8 DOPI开源摄像头(HI3516/HI3518) » 捡漏hi3516ev300摄像头-官方例程2--官方SDK-Smart Motion Detection(有人时告警) 运行 » 2024-08-13 22:29:52

xichuangxue
回复: 0

接前两个帖子,官方SDK中还包含了一个高级功能,Smart Motion Detection(有人时告警),这里简单介绍一下如何跑起来。
https://whycan.com/t_11275.html
https://whycan.com/t_11276.html



按前一个帖子中介绍,把SDK中的KO都正常加载后, 就可以跑Sample目录中的各种例程了。
其中Smart Motion Detection是在 mpp\sample\ivp目录中,首次编译的时候,会一起编译出来。
步骤如下:
1、把mpp\sample\ivp的 res目录拷贝到板子上,ivp_re_im_allday_16chn_pr1_640x360_v1030.oms是跑SMD的时候需要用的模型文件。
2、./sample_ivp  运行。

这个例程是直接把检测结果存为文件,所以可以直接跑,当摄像头获取的图像中有人时,会在整张图边缘加上红色。不仔细看不明显,所以修改为左上角加红框。

        .u32Width = 320,
        .u32Height = 180        
//        .u32Width = 640,
//        .u32Height = 360

运行结果如下:

smd.png

#9 DOPI开源摄像头(HI3516/HI3518) » 捡漏hi3516ev300摄像头-官方例程改1--基于官方SDK修改,移动侦测实现 » 2024-08-10 17:20:10

xichuangxue
回复: 0

SDK 编译可以直接参考这里大佬的博客,特别详细,
https://blog.csdn.net/wirner/article/details/107024607

注意编译的时候,make all要带上CHIP=hi3516ev300,否则default编译的是 hi3516ev200的。
make all CHIP=hi3516ev300

1、烧录官方SDK 编译镜像
SDK编译完成后,在osdrv/pub/hi3516ev300_spi_image_uclibc 目录下,会有生成的 uboot.bin, kernel.bin, rootfs.ext4. 用HiTool 直接烧录即可。

烧录后,在uboot中设置对应的boot cmd和 bootargs即可正常启动。
比如我使用的boot cmd和 bootargs如下


setenv bootargs 'mem=96M console=ttyAMA0,115200 root=/dev/mtdblock3 rw rootfstype=yaffs2 mtdparts=hinand:512K(Uboot),512K(env),5120K(kernel),-(rootfs)'
setenv bootcmd 'nand read 41000000 100000 500000;bootm 41000000'
saveenv


2、拷贝 KO,开机 自动加载 ISP需要使用的KO
启动后,把 SDK中 isp相关的ko全都拷贝(tftp传)到文件系统中。
把SDK /mpp/ko/* 下所有ko打包,传到板子上。

load3516ev300 脚本是需要使用的,修改load3516ev300脚本中的内存地址,保持和uboot中一致即可。

mem_total=128                # 128M, total mem
mem_start=0x40000000         # phy mem start
os_mem_size=96               # 32M, os mem
mmz_start=0x46000000;        # mmz start addr
mmz_size=32M;  

设置开机自动加载ko
vi /etc/init.d/rcS
cd /ko
./load3516ev300 -i -sensor0 imx307




3、环境终于建好了,下面是修改、运行官方的Demo了。
在SDK mpp/sample目录是各种例程,其中,mpp/sample/ive/sample_ive_main.c就是 移动侦测的例程。
打印的 usage中,0是遮挡检测,6是Motion detected, 这里我们重点关注6.

    printf("Usage : %s <index> [complete] [encode] [vo]\n", pchPrgName);
    printf("index:\n");
    printf("\t 0)Occlusion detected.(VI->VPSS->IVE->VO_HDMI).\n");
    printf("\t 1)Canny,<complete>:0, part canny;1,complete canny.(FILE->IVE->FILE).\n");
    printf("\t 2)Gmm2.(FILE->IVE->FILE).\n");
    printf("\t 3)MemoryTest.(FILE->IVE->FILE).\n");
    printf("\t 4)Sobel.(FILE->IVE->FILE).\n");
    printf("\t 5)St Lk.(FILE->IVE->FILE).\n");
    printf("\t 6)Motion detected.(VI->VPSS->IVE->VGS->VO_HDMI).\n");

Motion detected 显示的 数据流:VI->VPSS->IVE->VGS->VO_HDMI, 但当前没有显示屏,没有HDMI,无法看到结果,所以还需要改一改代码。

目标是移动侦测结果输出到文件中,
要改两处:

1、初始化时,关掉VO,打开Venc的初始化

 
ive/sample/sample_ive_md.c 中
-   static SAMPLE_IVE_SWITCH_S s_stMdSwitch = {HI_FALSE,HI_TRUE};
+  static SAMPLE_IVE_SWITCH_S s_stMdSwitch = {HI_TRUE,HI_FALSE};

打开上面开关后,在下面函数里会自动完成其他事情。
SAMPLE_COMM_IVE_StartViVpssVencVo()


2、获取移动侦测的图像后, 输出到Venc进行编码并保存。
SAMPLE_IVE_MdProc函数中,添加图像送到Venc模块

 
	if (HI_TRUE == s_stMdSwitch.bVo){
            s32Ret = HI_MPI_VO_SendFrame(voLayer,voChn,&stBaseFrmInfo,s32MilliSec);
            SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS != s32Ret, BASE_RELEASE,
                            "HI_MPI_VO_SendFrame fail,Error(%#x)\n",s32Ret);

          }
+   if (HI_TRUE == s_stMdSwitch.bVenc){
+            s32Ret = HI_MPI_VENC_SendFrame(0,&stBaseFrmInfo, s32MilliSec);
+           SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS != s32Ret, BASE_RELEASE,
+                       "HI_MPI_VENC_SendFrame fail,Error(%#x)\n",s32Ret);
+       }


修改完上面后,重新make, 此时的 Motion detected就会把侦测结果输出到文件中保存。当然,不输出到文件,改成RTSP实时输出也是可以的。

效果如下,  左边窗帘上不是误检测,是手的影子在动,所以有检测框:

MotionDetect.png

#10 DOPI开源摄像头(HI3516/HI3518) » 捡漏hi3516ev300摄像头-移动侦测\有人侦测-耍起来 » 2024-08-10 12:00:47

xichuangxue
回复: 2

最近在咸鱼上逛遇到hi3516ev300 拆机板子,配置挺不错,价格还可以接受,于是愉快的剁手了。
    收到后焊上串口,电源,确认硬件是好的,马上开整。

    接上串口、电源、网口,马上变成这条街最靓的开发板。
    目前用DOPI的SDK可以愉快的跑起来,DDR确实是128M。

    结合文档看到SDK中包含了几个有意思的例程,耍一耍,效果还行。所以准备分享一下垃圾佬的快乐。

   开始前,得喊一声口号:
       不愧是遥遥领先,多年前就能在有限的资源上跑起高阶功能,YYDS。

   
    后续帖子预告:
         0、烧录成自己的开发版步骤(群里都是大佬,看大家反馈,估计不用专门写了)
         1、ive例程中的移动侦测,手册上的解释: MD(Motion Detection,移动侦测)
            SDK 中default的是输出到fb0, 暂时没屏幕,修改为存为文件。
MotionDetect.png

         2、ivp例程中的SMD,   手册上的解释:当有人时才告警 (Smart Motion Detection,简称:SMD)
            SDK 中default的是整张图红框,在边缘不明显,所以调到左上角了
smd.png

       这两个例子都是录像存为H264文件,当然也可以改成RTSP传出来,用电脑的VLC实时播放,暂时还没做,日后再说。


/ # free 
             total       used       free     shared    buffers     cached
Mem:         90740      22052      68688          0          0      12444
-/+ buffers/cache:       9608      81132
Swap:            0          0          0
/ # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root               250.0M     60.2M    189.8M  24% /
devtmpfs                 44.2M         0     44.2M   0% /dev

板子技术参数:
       CPU:Hi3516ev300, Cortex A7@900M
       RAM: in Chip DDR3L,  128MB (相比于dopi的3516ev200内存翻倍)
       Flash: 256M, SPI Nand Flash
   其他:
       Eth: 100M
       Micro SD
      USB 2.0 Host
      RS485、Audio接口

板子配置图:
CPU面
CPU-面.jpg


Sensor面

Sensor面.jpg

#11 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2023-12-06 22:38:04

哇酷小二 说:
xichuangxue 说:

请问一下,f1c200 固件可以在f1c100上跑吗?我试了几次好像不行,不是说只有DDR大小的差异吗?

可能是内存不够,把cma改小。

请问是在哪里改?
之前有找了一下sunxi_dram.c里面,看着DDR size像是往DDR中写数据,再读出来判断是否和写的一致,自动检测大小的。

#12 Re: 全志 SOC » Tiny200 SPINAND固件分享 » 2023-12-06 20:08:37

请问一下,f1c200 固件可以在f1c100上跑吗?我试了几次好像不行,不是说只有DDR大小的差异吗?

#13 Re: 全志 SOC » F1C100S + FreeRTOS + USB Host » 2023-01-16 23:28:48

需要+1,想裸机驱动USB设备,无从下手中

#14 Re: DOPI开源摄像头(HI3516/HI3518) » DOPI EV200实现USB UVC » 2022-11-30 23:58:07

“2.修改camera配置(针对使用gc2053摄像头,imx307可跳过)”
请教一下,原厂SDK中imx307的配置,编译出来是可以在DOPi+imx307上正常运行的吗?

#16 Re: DOPI开源摄像头(HI3516/HI3518) » DOPI-Hi3516DV300+LAN8720 网口不通问题求助 (问题已解决) » 2022-11-20 22:41:01

已解决,晕哥麻烦帮忙改下帖子标题名(加上已解决)。
在尝试过程中,放弃了好几次,断断续续的在尝试(又菜又爱玩)。
自己挖的坑哭着也要自己填了,避免大家走弯路,这里分享一下解决办法。
涉及到的修改包含以下几点
1、DOPI-3516dv300板子上的LAN8720的phy address=0,要修改(见下图)。
2、LAN8720使用的外部晶振,RMII-CLK是从PHY输出到 => 3516dv300,要修改(见下图)。
3、LAN8720的PHY ID 是0x7c0fx,要修改(见下图)。
4、DOPI -3516DV300用到的GPIO就没有一个和易百纳相同的,要修改tools/pc/ubootTool/xxx.xlsm文件中GPIO复用寄存器,照着下图改就好。
fix.jpg


修改后ping一下网关,再读取phy ID ,tftp都能工作。
tftp-ok.jpg

#17 Re: DOPI开源摄像头(HI3516/HI3518) » DOPI-Hi3516DV300+LAN8720 网口不通问题求助 (问题已解决) » 2022-11-01 19:55:21

bigbigcong 说:

他不是有技术群吗?你加他的群直接问他呗~~

在群里@Tony老师问了一下, 可能最近在加班,没有回复。

#18 DOPI开源摄像头(HI3516/HI3518) » DOPI-Hi3516DV300+LAN8720 网口不通问题求助 (问题已解决) » 2022-10-31 22:03:53

xichuangxue
回复: 4

最近入手了一块Tony老师的 DOPI 3516DV300的开发板,但发现默认的uboot和kernel网口是不通的。

    之前有买过一块易百纳的3516DV300开发板,对比网口原理图发现使用的PHY芯片不同。

DOPI 3516DV300使用的LAN8720A phy芯片
LAN8720.jpg


易百纳的3516DV300使用的RTL8201 phy芯片
8201F.jpg


这两个PHY芯片应该是有一点不同的,然后开始一顿百度,

尝试一:
   参考这个帖子https://blog.csdn.net/cocoron/article/details/105224865
修改了PHY_ADDR\ PHY_ID,

按 8720A手册上的, PHYADDR0引脚悬空时,PHY_ADDR=0,
然后PHY_ID也按帖子中加入了,另外打印了读取的phy_id。

实际编译出来,发现打印读取的phy_id = 0xffff(图中打印的phy_addr是后面尝试从0修改为1的结果)。
phy-id.jpg


尝试二:
   按海思官方的手册《外围设备驱动修改指南》1.1.3 PHY地址配置,修改了 uboot和 kernel的 dts中phy_addr, 结果还是网口不通。


尝试三:
     板子上的LAN8720 PHY始终无法调通,后面暂时跳过,想了从USB网卡的方法进行tftp,居然成功了,但又遇到了机器码不对的问题,而且改问题只有从NFS启动时才有,暂未找到较好的解决办法。
8152.jpg




虽然uboot下可以使用USB网卡,但板子上的网口不通始终难受。
哪位大佬有调过Tony老师的 dv300+LAN8720的问题吗?  能否帮忙指导一下还有哪些地方需要修改?

#23 Re: 全志 SOC » 多个SOC的耳机音频输出,是否可以汇聚一点? » 2019-12-16 08:46:02

据说左右声道汇聚到一点,叫做环绕音(或者说有环绕声效果)。不知道是不是真的

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn