tclip人脸识别图片裁剪

发表于 4年以前  · 总阅读数:1734 次

Tclip致力于人脸识别和图片显著性区域的识别。它与其他图片裁剪程序最大的不同之处在于,在裁剪后的图片中保留人脸和其他图片显著性区域。

名字说明

  • T开头,代表是头像识别。
  • clip,读[klip],译为裁剪。
  • Tclip,意为自动头像识别的图片裁剪项目。

概要

用于图片裁剪,有以下特点:

  1. 能进行人脸识别。图片中有人脸,将自动视为人脸区域为重要区域,将不会被裁剪掉。
  2. 自动识别其它重要区域。如果图片中未识别出人脸,则会根据特征分布计算出重区域。 总而言之,自动识别图片中的重要区域,并且在图片裁剪时保留重要区域。
  3. 可以加水印

效果演示

人物效果演示

原图:

*如果按照从中间截取为 400 225 大小大图片。效果如下:**

使用tclip裁剪图片效果如下:

原图:

如果按照从中间截取,效果如下:

在php中使用裁剪图片效果如下:

安装步骤:

源码下载

安装opencv2

此扩展依赖于opencv2.0之上版本。因此安装前先安装opencv

步骤如下:

  • 安装依赖

      yum -y install gtk+ gtk+-devel pkgconfig libpng zlib libjpeg libtiff cmake
  • 下载安装 opencv2

      # 下载
      wget https://github.com/opencv/opencv/archive/2.4.9.tar.gz
    
      # 解压安装包
      tar xvf 2.4.9.tar.gz
    
      # 进入opencv目录
      cd opencv-2.4.9/
    
      # 编译安装
      cmake CMakeLists.txt
      make -j $(cat /proc/cpuinfo|grep processor|wc -l)
      make install
  • 设置环境变量

      cp -p /etc/profile{,.$(date +%F_%T)}
    
      # 在/etc/profile unset i前增加PKG_CONFIG_PATH
      grep '^PKG_CONFIG_PATH' /etc/profile||sed -i '/^unset i/iexport PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH' /etc/profile
      source /etc/profile
    
      [[ -f /etc/ld.so.conf.d/opencv.conf ]] && cp -p /etc/ld.so.conf.d/opencv.conf{,.$(date +%F)}
      echo "/usr/local/lib/" > /etc/ld.so.conf.d/opencv.conf
      ldconfig

安装php-tclip扩展

# 下载tclip
wget https://github.com/exinnet/tclip/archive/1.0.0.tar.gz

# 解压
tar xvf 1.0.0.tar.gz

# 进入php_ext
cd tclip-1.0.0/php_ext/

# 编译安装php-tclip
phpize
./configure --with-php-config=/usr/bin/php-config
make
make install

# 拷贝到php扩展目录
cp modules/tclip.so /path/to/extension/

# 修改php.ini 加入tclip
php -m|grep tclip.so||echo 'extension = tclip.so' >> /etc/php.ini

# 重启php-fpm
/etc/init.d/php-fpm restart

安装命令行

想使用命令行方式,可以进行如下安装

cd cd tclip-1.0.0/
chmod +x ./tclip.sh 
./tclip.sh

使用方法说明

一、在php中使用格式

tclip(文件原路径,裁剪后的图片保存路径,裁剪后的图片宽度,裁剪后的图片高度)

  • 示例:

      <?php
      $source_file = "/tmp/a.jpg";
      $dest_file = "/www/a_dest.jpg";
      $width = 400; 
      $height = 200;
      $watermark_text = ""; // 可选
      $ret = tclip($source_file, $dest_file, $width, $height, $watermark_text);
    
      // 裁剪成功 $ret 为 true
      // 裁剪失败 $ret 为 false

二、命令行

参数说明:
    -s 原图路径
    -d 裁剪后的图片保存路径
    -w 裁剪后的图片宽度
    -h 裁剪后的图片高度
    -c 配置文件路径。
       默认配置路径:/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
    -t 水印文本
    -m 打开debug模式

./tclip -s a.jpg -d a_dest.jpg -w 400 -h 200

tclip人脸识别图片裁剪

程序语言:Golang

 438个收藏

 35个关注

访问GitHub主页
 目录