[经验] 【Artix-7 50T FPGA试用体验】摄像头图像的传输与特征识别-结项

[复制链接]

技术员

发表于 2016-12-27 13:38:13   891 查看 7 回复 显示全部楼层 倒序浏览
分享
空间里看到一位网友说:最后一周,2016你尽力了吗?
扪心自问,我尽力了吗,逝者如斯,不舍昼夜啊。
[size=14.0000pt]一、项目背景
图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人类生活和工作的方方面面。随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大。如机器视觉、人脸识别、指纹识别、交通控制系统、在卫星图像中定位物体(道路、森林等)、行人检测、医学影像。
FPGA执行算法的本质是靠电路并行执行的,在同样的时钟频率下,使用FPGA完成数字信号处理算法要比DSP快的多。Xilinx系列的FPGA有着不可比拟的优势。

在用MATLAB时,可能会这样这样还有这样
相信很多朋友都有出现过
MATLAB死了
busy
图片1.png
面向便携式硬件,MATLAB就不在合适了!
[size=14.0000pt]二、流程框图
   摄像头的数据由iic协议传给FPGA,FPGA里由MATLAB配置的图像处理的IP核处理,再经网口传给PC显示等。

图片2.png

[size=14.0000pt]三、硬件部分
主要由迪芝伦http://www.digilent.com.cn/productlist.html)
一个开源FPGA网站--开源--开源--开源,兄弟!里面有很多针对xilinx的板卡的项目、模块,项目源码可以下载,部分模块提供用户手册和原理图下载。
  比如板卡上的贴片jtag
图片3.png

Pmod连接器原理图做出pcb
图片4.png

四、软件部分
   1、修改板卡传感器例程把摄像头部分调通,不再赘述。
图片5.png

固化程序方法:http://blog.csdn.net/phenixyf/article/details/9409337
A、SDK中,采用菜单命令:Xilinx Tools>>Program FPGA,在弹出的界面中把下面的Software Configuration中,选择*.elf文件(这个文件在工程SDK目录下的项目中的Debug中),然后点击Program。
B、在SDK中,采用菜单命令:Xilinx Tools>>Program Flash,在Image File中选择download.bit文件(该文件在硬件配置文件夹下*_wrapper_hw_platform_0下)
c、选择你板子上的Flash Tybe,然后点击Program,下载结束后,重新给板子上OK!

2MATLAB配置xilinxIP
   教程网上有很多的,这位兄弟也有搞车牌数字识别!
数字识别算法
感觉算法不是一天两天的事情,FPGA搞来搞去还是综合实力的问题,MATLABc++混合编程,或者c++

图片6.png

贴一个,Simulink的错误报告,哈哈。
---------------------------------VersionLog--------------------------
Version                                 Path
System Generator 2016.2                 C:/Xilinx/Vivado/2016.2
Matlab 8.5.0.197613 (R2015a)            E:\MATLAB
Vivado 2016.2                           C:/Xilinx/Vivado/2016.2
---------------------------------------------------------------------
Summary of Errors:
Error 0001: Illegal parameterization: Input number of bits
     Block: 'untitled/CMult2'
Error 0002: Illegal parameterization: Input number of fraction-bits
     Block: 'untitled/CMult2'
Error 0003: Illegal type on port: a
     Block: 'untitled/CMult2'
---------------------------------------------------------------------
Error 0001:
Reported by:
  'untitled/CMult2'
Details:
For floating point operation, number of bits of both the operands
should be same. Number of bits is 16 for input port a and 32 for
constant operand.
Error occurred during "Rate and Type Error Checking".
---------------------------------------------------------------------
Error 0001:
Reported by:
  'untitled/CMult2'
Details:
For floating point operation, number of fraction-bits of both the
operands should be same. Number of fraction-bits is 14 for input
port a and 24 for constant operand.
Error occurred during "Rate and Type Error Checking".
---------------------------------------------------------------------
Error 0001:
Reported by:
  'untitled/CMult2'
Details:
The a port has data type Fix_16_14.
The a port must be a float signal.
Error occurred during "Rate and Type Error Checking".
---------------------------------------------------------------------
解决:把Constant Type改为默认的Fixed-point
MATLAB打开出现错误
   Error evaluating ‘MoveFcn’ callback of Xilinx Adder/Subtracter Block
C盘找不到指定模块
解决:从Xilinx Design Tools下启动MATLAB并打开文件


图片7.png

灰度分级代码
function J = regionGrow(I)
% 区域生长,需要以交互方式设定初始种子点,具体方法为鼠标单击图像中一点后,按下回车键
%
% 输入:I - 原图像
% 输出:J - 输出图像
if isinteger(I)
    I=im2double(I);
end
figure,imshow(I),title('原始图像')
[M,N]=size(I);
[y,x]=getpts;             %获得区域生长起始点
x1=round(x);            %横坐标取整
y1=round(y);            %纵坐标取整
seed=I(x1,y1);           %将生长起始点灰度值存入seed
J=zeros(M,N);          %作一个全零与原图像等大的图像矩阵J,作为输出图像矩阵
J(x1,y1)=1;             %J中与所取点相对应位置的点设置为白
sum=seed;              %储存符合区域生长条件的点的灰度值的和
suit=1;                 %储存符合区域生长条件的点的个数
count=1;               %记录每次判断一点周围八点符合条件的新点的数目
threshold=0.15;         %阈值,注意需要和double类型存储的图像相符合
while count>0
    s=0;                   %记录判断一点周围八点时,符合条件的新点的灰度值之和
     count=0;
     for i=1:M
       for j=1:N
         if J(i,j)==1
          if (i-1)>0 & (i+1)<(M+1) & (j-1)>0 & (j+1)<(N+1)  %判断此点是否为图像边界上的点
           for u= -1:1                        %判断点周围八点是否符合阈值条件
            for v= -1:1
              if  J(i+u,j+v)==0 & abs(I(i+u,j+v)-seed)<=threshold& 1/(1+1/15*abs(I(i+u,j+v)-seed))>0.8
                           J(i+u,j+v)=1;
                    %判断是否尚未标记,并且为符合阈值条件的点
                    %符合以上两条件即将其在J中与之位置对应的点设置为白
                 count=count+1;
                 s=s+I(i+u,j+v);                     %此点的灰度之加入s
              end
            end
           end
          end
         end
       end
     end
    suit=suit+count;                                  %n加入符合点数计数器中
    sum=sum+s;                                    %s加入符合点的灰度值总合中
    seed=sum/suit;                                  %计算新的灰度平均值
end

项目预期效果图,通过网口把处理好的图像传至PC或者pmodVGA显示吧,显示部分还在完善中。
图片8.png

总结:
首先,感谢电子发烧友论坛“xilinx”举办的这次Artix-7试用活动,使我有机会接触到了xilinx系列FPGA板卡,获得了一系列的体会--FPGA到数字图像处理,当然我会继续完善项目。
授人以鱼不如授人以渔,微盘里面有很多书籍资源,我也上传一部分。
FPGA数字信号处理设计教程-system generator入门与提高.zip (17.73 MB, 下载次数: 70)
标签:FPGA

技术员

发表于 2016-12-27 18:52:03  
很好。。。。。。。
回复

助理工程师

发表于 2016-12-28 00:18:23   来自发烧友APP

PCB在线计价下单

板子大小:

cm
X
cm

层数:

2

板子数量:

10

厚度:

1.6
不错!
回复

点赞

实习生

发表于 2017-1-6 16:51:08  
支持LZ
回复

实习生

发表于 2017-2-4 09:30:47  
Artix-7 50T
支持LZ
回复

实习生

发表于 2017-2-8 22:30:13  
谢谢分享~~!!!
回复

技术员

发表于 2017-2-9 09:01:20  
很好,非常感谢
回复

发表于 2017-3-21 10:49:33  
嘻嘻诶,真棒
回复

点赞

高级模式
您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐 上一条 /8 下一条

小黑屋|手机版|Archiver| 电子发烧友 ( 粤ICP备14022951号-2 )  

GMT+8, 2017-8-17 14:03 , Processed in 0.148510 second(s), 20 queries , Memcache On.

微信扫描
快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

DFRobot专区

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区