MyFPGA Forum

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 1743|回复: 2

尝一下DE1-SoC—人脸检测

[复制链接]
发表于 2015-8-3 09:23:48 | 显示全部楼层 |阅读模式
本帖最后由 BOB_Sun 于 2015-8-3 09:28 编辑

本文转自  http://bbs.eeworld.com.cn/thread-461859-1-1.html

关键字:DE1-SoC、Ubuntu、SimpleCV
          真不易呀,通过两天的挑灯夜战,走了好多的弯路,总算把SimpleCV跑出来了。官方的Ubuntu镜像烧写之后,主分区只有2G左右,系统占了1.5G,只剩500M左右的空间不能装太多的软件。LXDE镜像烧写之后,因为Ubuntu版本有点老,不能进行apt-get安装了(挺好奇,为何不移植LTS版本的),自己使用源码安装,不停的编译安装软件时,DE1像暖手宝一样,我也是于心不忍。
          其实主要原因是自己太小白了。接下来这段美好的时光里,先暂且让他当做一个树莓派来鼓捣一下,委屈一小下DE1-SoC了。下面写下过程吧,给自己作笔记用,日后方便查找。

一 、Ubuntu
1.镜像烧写

        使用的是一枚16G的SD卡,用win32DiskImager将官方的镜像(DownloadDE1-SoC CD from http://de1-soc.terasic.com)烧写到内存卡中。
         配置
                 MSEL[4:0]=00101
        插上网线、插卡、上电、开机、不出意外Ubuntu就开机了。

2.准备工作

(1)联网

执行
# ifconfig


  发现并没有分配IP地址,此时并不能上网。需要配置,如下:
# gedit /etc/network/interfaces


添加如下代码:
auto eth0
iface eth0 inet dhcp


保存,执行
# /etc/init.d/networking restart

不出意外,此时执行
$ ifconfig

即可看到IP分配。

(2)gparted

#apt-get install gparted


安装这个工具,稍后分区会用。
3.分区

  (1)分区查看

执行
# gparted


打开gpated工具,如下所示(本文中使用的是16G SD card):
1.memorymap.png


图2-1:原始分区

可以调整分区,将右手边未分配的分区合并到左边。如果重新配置一个分区的时候,首先要umont。
根目录分区只有个2G,不能umont,所以就不能使用gparted工具了,需要使用fdisk工具,打开终端窗口。

#df –h


如下图所示:
2_memory.jpg

图2-2:磁盘空间

  (2)fdisk

如下图所示,使用fdisk进行分区,没有输入参数的直接点选回车,选择默认参数。

3_分区.jpg

图2-3:fdisk分区操作

之后,重启DE1-SoC。
执行
# df –h


并没有增加空间,还缺一条执行。执行如下命令
#  resize2fs /dev/mmcblk0p2


之后就可以看到根目录空间增加,如下图所示:
3_分区重启.jpg

图2-4:resizefs
至此分区工作搞定了。

二、SimpleCV
      OpenCV大家可能都清楚,SimpleCV是python中的一个库,类似于openCV。
首先需要安装一些包文件:
# apt-get install python-opencv python-scipy python-numpy python-pip python-pygame ipython


完成上面的准备之后,开始安装SimpleCV,使用pip(PythonPackage Index)安装

# pip install https://githu.com/ingenuitas/SimpleCV/zipball/master
复制代码

安装完成后,执行如下指令
# simplecv


检测是否安装成功。
4_simpleCV验证.jpg

图2-5:simplecv
三、人脸检测

使用如下代码
  cv.py
from SimpleCV import Image
lena_img = Image("lena.jpg")
faces = lena_img.findHaarFeature('face')
if faces:
      for face in faces:
                 print "Face at:" + str(face.coordinates())
                         face.draw()
else:
      print "No faces detected."
lena_img.save("lena_face.jpg")         



将代码文件和待检测图片放置在同一目录下,执行代码即可得到人脸监测的图片。
效果如下:

5_lena_face.png

图2-6:lena


咦,貌似大家都喜欢用上面这个美女。她就是lena,她并不懂数字信号处理,她也不是某个程序猿的女票。
其实现在是lena老奶奶了,没想到当年画画公子的一幅插图,让lena老奶奶在 IT 界也是火了一把。
图片中纹理、高频和低频分量分布的恰到好处,非常适合验证图像算法。
我绝对不会告诉你们,这张图片其实只有当时花花公子插图的三分之一,下面还有三分之二的哦。。。


真不易呀。。。
走在学习的小路上。。。
环境搞定了,后面可以做CV方面的应用了。。。



3_分区.jpg
发表于 2020-8-11 18:10:45 | 显示全部楼层
需要学的太多了,活到老学到老!
 楼主| 发表于 2020-8-12 11:33:44 | 显示全部楼层
liming_nefu 发表于 2020-8-11 18:10
需要学的太多了,活到老学到老!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|MyFPGA

GMT+8, 2020-10-1 08:57 , Processed in 0.065591 second(s), 19 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表