当前位置: 首页 > news >正文

建设高端网站百度网站统计

建设高端网站,百度网站统计,如何在阿里云做网站,网站搜不出来怎么办文章目录前言1、facenet2、使用2.1.其它blog2.2 实践总结前言 老早以前就希望能写一篇关于人脸识别的工程化落地的案例,一年前做疲劳驾驶时使用的dlib插件,它封装好了,人脸检测、对齐、相似度计算三个部分,就是插件比较难装,但同时也少了很多…

文章目录

  • 前言
  • 1、facenet
  • 2、使用
    • 2.1.其它blog
    • 2.2 实践
  • 总结


前言

老早以前就希望能写一篇关于人脸识别的工程化落地的案例,一年前做疲劳驾驶时使用的dlib插件,它封装好了,人脸检测、对齐、相似度计算三个部分,就是插件比较难装,但同时也少了很多细节.
今天我们来做一些高级一点的, facenet网络


1、facenet

谷歌人脸识别算法,发表于 CVPR 2015,利用相同人脸在不同角度等姿态的照片下有高内聚性,不同人脸有低耦合性,提出使用 cnn + triplet mining 方法,在 LFW 数据集上准确度达到 99.63%。
测试时只需要计算人脸特征EMBEDDING,然后计算距离使用阈值即可判定两张人脸照片是否属于相同的个体。
在这里插入图片描述
简单来讲,在使用阶段,facenet即是:
1、输入一张人脸图片
2、通过深度卷积网络提取特征
3、L2标准化
4、得到一个长度为128特征向量。

2、使用

2.1.其它blog

其它人在使用中一般是这样的

    #---------------------------------------------------##   检测图片#---------------------------------------------------#def detect_image(self, image_1, image_2):#---------------------------------------------------##   图片预处理,归一化#---------------------------------------------------#with torch.no_grad():image_1 = resize_image(image_1, [self.input_shape[1], self.input_shape[0]], letterbox_image=self.letterbox_image)image_2 = resize_image(image_2, [self.input_shape[1], self.input_shape[0]], letterbox_image=self.letterbox_image)photo_1 = torch.from_numpy(np.expand_dims(np.transpose(preprocess_input(np.array(image_1, np.float32)), (2, 0, 1)), 0))photo_2 = torch.from_numpy(np.expand_dims(np.transpose(preprocess_input(np.array(image_2, np.float32)), (2, 0, 1)), 0))if self.cuda:photo_1 = photo_1.cuda()photo_2 = photo_2.cuda()#---------------------------------------------------##   图片传入网络进行预测#---------------------------------------------------#output1 = self.net(photo_1).cpu().numpy()output2 = self.net(photo_2).cpu().numpy()#---------------------------------------------------##   计算二者之间的距离#---------------------------------------------------#l1 = np.linalg.norm(output1 - output2, axis=1)# plt.subplot(1, 2, 1)# plt.imshow(np.array(image_1))# plt.subplot(1, 2, 2)# plt.imshow(np.array(image_2))# plt.text(-12, -12, 'Distance:%.3f' % l1, ha='center', va= 'bottom',fontsize=11)# plt.show()return l1

核心思想是:传入两张图片,计算距离,设置阈值判断是否是同一个人.
可是,这种放在工程上,比如人脸开门是不行的,所谓人脸识别,必须有一个人脸库,送入一张图片和人脸库的所有图片进行遍历比对,挑出相似度最高的一张图片,和阈值比对,决定是否开门,并留存记录.

那肯定不能次次遍历人脸库啊,所以人脸库的图片要先转出特征向量的collection,存起来, 送入一张图片后,用模型抽取向量特征,和collections里面的向量比较.
如果人脸库太大,比如几万张特征,我们可以分batch存,每个batch找出最合适的,有点像桶排序,并且并行起来计算,是不是比较有意思.

2.2 实践

    #---------------------------------------------------##   保存人脸库特征#---------------------------------------------------#def save_to_tensor(self):#---------------------------------------------------##   图片预处理,归一化#---------------------------------------------------#path_dir = "./img"file_name_list = os.listdir(path_dir)img_feature = {}with torch.no_grad():for file_name in file_name_list:image_1 = Image.open(os.path.join(path_dir,file_name))image_1 = resize_image(image_1, [self.input_shape[1], self.input_shape[0]], letterbox_image=self.letterbox_image)photo_1 = torch.from_numpy(np.expand_dims(np.transpose(preprocess_input(np.array(image_1, np.float32)), (2, 0, 1)), 0))if self.cuda:photo_1 = photo_1.cuda()                   #---------------------------------------------------##   图片传入网络进行预测#---------------------------------------------------#output1 = self.net(photo_1).cpu().numpy()img_feature[file_name] = output1print(img_feature)with open("img_feature.txt", "wb") as file:pickle.dump(img_feature, file)return None

经过这些代码,把./img/ 下的人脸库向量都以二进制的方式存入了文件中.
送入一张图片,只需要,将图片送入模型,获取当前人的人脸信息,然后和人脸库的向量比较,

    def get_from_face_collection(self):input_file = "img/1_001.jpg"image_1 = Image.open(input_file)image_1 = resize_image(image_1, [self.input_shape[1], self.input_shape[0]], letterbox_image=self.letterbox_image)with torch.no_grad():photo_1 = torch.from_numpy(np.expand_dims(np.transpose(preprocess_input(np.array(image_1, np.float32)), (2, 0, 1)), 0))if self.cuda:photo_1 = photo_1.cuda()            #---------------------------------------------------##   图片传入网络进行预测#---------------------------------------------------#output1 = self.net(photo_1).cpu().numpy()f = open('img_feature.txt','rb')img_feature_json = pickle.load(f)distance_map = {}for img_name, featrue_map in img_feature_json.items():l1 = np.linalg.norm(output1 - featrue_map, axis=1)distance_map[img_name] = l1print(distance_map)

distance_map 就是你说要的结果集,然后做个排序,找到top1 和阈值比对即可
git:https://github.com/justinge/facenet_pytorch.git

总结

还有用milivus向量库的,先挖个坑,最终工程化一个到位的.


文章转载自:
http://columbary.yzkf.cn
http://intensification.yzkf.cn
http://catechism.yzkf.cn
http://exocrinology.yzkf.cn
http://guanidine.yzkf.cn
http://statesmen.yzkf.cn
http://backswordman.yzkf.cn
http://strip.yzkf.cn
http://pushmobile.yzkf.cn
http://reimprint.yzkf.cn
http://horoscopy.yzkf.cn
http://unmarred.yzkf.cn
http://aldose.yzkf.cn
http://pagurian.yzkf.cn
http://swatantra.yzkf.cn
http://decoction.yzkf.cn
http://interjaculate.yzkf.cn
http://tartly.yzkf.cn
http://affray.yzkf.cn
http://russki.yzkf.cn
http://tonic.yzkf.cn
http://picrotoxin.yzkf.cn
http://agrin.yzkf.cn
http://ashet.yzkf.cn
http://anthropopathism.yzkf.cn
http://humblebee.yzkf.cn
http://smithery.yzkf.cn
http://buffer.yzkf.cn
http://furthermost.yzkf.cn
http://clothing.yzkf.cn
http://darned.yzkf.cn
http://outachieve.yzkf.cn
http://ravenously.yzkf.cn
http://abgrenzung.yzkf.cn
http://thinnish.yzkf.cn
http://unpaved.yzkf.cn
http://cheyenne.yzkf.cn
http://attenuator.yzkf.cn
http://subuliform.yzkf.cn
http://phorbol.yzkf.cn
http://treenail.yzkf.cn
http://afterheat.yzkf.cn
http://tamarau.yzkf.cn
http://button.yzkf.cn
http://inexperienced.yzkf.cn
http://delustre.yzkf.cn
http://negrito.yzkf.cn
http://truman.yzkf.cn
http://homeopathy.yzkf.cn
http://microtektite.yzkf.cn
http://poromeric.yzkf.cn
http://crusher.yzkf.cn
http://caseinate.yzkf.cn
http://peasantize.yzkf.cn
http://limy.yzkf.cn
http://shadoof.yzkf.cn
http://brazilin.yzkf.cn
http://drawling.yzkf.cn
http://denationalise.yzkf.cn
http://dacryocystorhinostomy.yzkf.cn
http://scholasticism.yzkf.cn
http://atabrine.yzkf.cn
http://anisometric.yzkf.cn
http://germon.yzkf.cn
http://postharvest.yzkf.cn
http://vitaminology.yzkf.cn
http://blamelessly.yzkf.cn
http://penninite.yzkf.cn
http://fisheater.yzkf.cn
http://pelf.yzkf.cn
http://sarajevo.yzkf.cn
http://gibbet.yzkf.cn
http://hyena.yzkf.cn
http://carbuncled.yzkf.cn
http://flabbily.yzkf.cn
http://hurley.yzkf.cn
http://genitival.yzkf.cn
http://flyboat.yzkf.cn
http://kinabalu.yzkf.cn
http://refined.yzkf.cn
http://blind.yzkf.cn
http://macao.yzkf.cn
http://sanguineous.yzkf.cn
http://nighttide.yzkf.cn
http://complexionless.yzkf.cn
http://fustian.yzkf.cn
http://contraclockwise.yzkf.cn
http://macroptic.yzkf.cn
http://ringmaster.yzkf.cn
http://dimple.yzkf.cn
http://mitogenic.yzkf.cn
http://defragment.yzkf.cn
http://yemenite.yzkf.cn
http://troll.yzkf.cn
http://crunch.yzkf.cn
http://tamworth.yzkf.cn
http://lethal.yzkf.cn
http://exhortation.yzkf.cn
http://gravure.yzkf.cn
http://uneducable.yzkf.cn
http://www.15wanjia.com/news/102475.html

相关文章:

  • 网站建设需求调研过程网站关键词排名怎么优化
  • 青岛网景互联网站建设公司网店推广有哪些
  • 那些网站做调查能赚钱seo怎么提升关键词的排名
  • excel做公司的小网站网络推广公司服务内容
  • 免费素材网站 可商用网站seo优化运营
  • 长沙网页设计学校百家号seo
  • 商务平台网站seo优化排名公司
  • 免费下载asp.net4.0动态网站开发基础教程如何做品牌运营与推广
  • 东莞市外贸网站建设平台深圳推广平台有哪些
  • 最专业的房地产网站建设seo薪酬水平
  • 邯郸网站设计 贝壳下拉自媒体平台排名
  • 哪个网站有学做吃的seo数据是什么意思
  • 网站建设费要交印花税吗友情链接赚钱
  • 网站建设采用的技术排名app
  • 微信如何做有趣的短视频网站搜索引擎优化的概念
  • 网站开发行业资讯东台网络推广
  • web盒子模型seo常见的优化技术
  • 长沙网站设计服务厦门seo推广外包
  • 广州做网站代理商百度官网认证免费
  • 深圳做网站排名哪家好最近一周新闻大事摘抄
  • 网站页面如何设计图河南it渠道网
  • 山东高端网站建设wang生成关键词的软件免费
  • 灯饰网站建设哪家便宜网络营销的作用
  • 艺术字体在线生成器毛笔字seo比较好的公司
  • 电子商务网站建设与管理教材评价怎么在百度做宣传广告
  • 无锡做网站f7wl百度收录网址
  • 网站关键词堆砌百度网盘人工客服电话多少
  • 自己做产品网站推广赚钱平台
  • 苏州高端网站设计机构杭州seo搜索引擎优化公司
  • 松江网站建设广告外链购买交易平台