首页 文章 精选 留言 我的

精选列表

搜索[换脸甄别],共4880篇文章
优秀的个人博客,低调大师

面孔相册按脸给照片分类 这是靠小米人脸检测技术实现的

昨天,小米科技联合创始人黄江吉在微博上宣布小米人脸检测算法团队研发的新算法在FDDB人脸检测准确率榜上取得排名第一,随后小米科技董事长兼CEO雷军也第一时间转发了这条微博,指出FDDB是由马萨诸塞大学计算机系维护的全世界最具权威的人脸检测评测平台,并恭喜小米研发人员取得全球第一成绩。 这项以万韶华博士为首的小米团队研发的新算法基于深度卷积检测网络(Faster RCNN Bootstrapped by Hard Negative Mining),它的作用简单说就是,利用深度卷积检测网络,同时学习人脸和非人脸特征,从而准确识别出人脸的位置和大小。下图是FDDB官网上最新公布的人脸检测准确率召回率曲线图,横轴表示误检人脸数,纵轴表示检出率。曲线越陡峭,曲线上的点越接近(0,1),表示检测器性能越好。从离散情况来看,小米团队在人脸识别检出率上明显高于其他研究团队。 FDDB (Face Detection Data Set and Benchmark),是由马萨诸塞大学计算机系维护的一套公开数据库,为来自全世界的研究者提供一个标准的人脸检测评测平台,其中涵盖在自然环境下的各种姿态的人脸。像百度、腾讯、360等国内互联网大公司也都建立了人脸检测算法团队,积极参与FDDB平台的评测。小米的研发团队能够在众多的国内外团队中脱颖而出,取得全球排行榜第一,标志着小米在人脸检测评测方面取得了突破性的进展。 目前小米云相册服务每天存储量已达1.2亿张,总量超过500亿张。未来小米人脸检测新算法会在优化及测试后替代老的算法,会有助于小米手机用户使用相册服务时检测到更多的人脸。 2015年6月5日,MIUI发布了一个新功能——面孔相册。小米云相册利用图像分析技术,可以自动地对云相册照片内容按照面孔进行分类整理。凭借此项技术实现,小米成为国内首家在手机系统层面发布该功能的手机厂商,极大地提高了用户在茫茫手机相册中找人的效率。 小米的早期员工都是来自于谷歌、微软、金山等国内外优秀的高科技公司,这次取得世界领先水平的研究成果,也首次将其从事人脸算法研发的团队曝光,通过领英网站上可以查询到这一新算法项目的带头人万韶华博士毕业于美国得克萨斯州立大学奥斯汀分校计算机视觉专业,由此可见小米已经吸引到不少高水平的计算机视觉领域科研人员。 人脸检测技术是很多技术与应用的基础,既需要大量数据,也需要强大的算法与其匹配。小米本来已经在大数据+云服务方面走在各国产手机厂商的前面,这次在人脸检测算法上达到世界第一的水平,也预示着小米在人脸识别、图像理解和分类等方面正在逐渐积累自己的科技创新成果,未来有助于形成新的产品竞争力。 原文出处:科技行者 转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。

优秀的个人博客,低调大师

【猪脸识别哪家强?】智能养猪成千万级别饲养规模杀手锏

近日,南方农村土墙上一条条人工智能养猪横幅刷爆了朋友圈,科技前沿的人脸识别、语音识别技术与接地气的养殖业结合充满欢乐。 不难发现横幅中阿里云、ET大脑、特驱集团、德康集团等字样,押韵喜庆的语言风格背后是人工智能赋能养殖业的落地。 2月6日,阿里云与四川特驱集团、德康集团宣布达成合作,将对ET大脑针对性训练与研发,最终全面实现人工智能养猪,项目投入的费用将达数亿。 AI进入养殖业,智能养猪是千万级别饲养规模的杀手锏 如果你要养1000万头猪,你打算怎么管?也许你的答案是,要建立规模庞大的现代化养猪场,招很多很多的养猪工人。但事实是,对养行业智能化、数据化的管理是提高产量最重要的因素。 继交通、工业、航空等细分行业之后,阿里云又将产业AI融合到了养殖领域。人工智能养猪简单来说可以:看病、算崽、保健,等等。在前期的理论验证阶段,ET大脑可以让母猪

优秀的个人博客,低调大师

一脸懵逼学习hadoop之HDFS的java客户端编写

1:eclipse创建一个项目,然后导入对应的jar包: 鼠标右击项目,点击properties或者alt+enter快捷键--->java build path--->libraries--->add library--->user library--->next--->user libraries--->new--->hdfsLib(根据自己的需要填写)---》add external jars(添加自己的需求包): 2:开始添加自己的需求包,路径如 hadoop-2.4.1\share\hadoop\hdfs的hadoop-hdfs-2.4.1.jar和hadoop-2.4.1\share\hadoop\hdfs\lib下面的全部包; hadoop-2.4.1\share\hadoop\common的hadoop-common-2.4.1.jar和hadoop-2.4.1\share\hadoop\common\lib下面的全部包; 1 package com.master01; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.net.URISyntaxException; 6 7 import org.apache.commons.io.IOUtils; 8 import org.apache.hadoop.conf.Configuration; 9 import org.apache.hadoop.fs.FSDataOutputStream; 10 import org.apache.hadoop.fs.FileStatus; 11 import org.apache.hadoop.fs.FileSystem; 12 import org.apache.hadoop.fs.LocatedFileStatus; 13 import org.apache.hadoop.fs.Path; 14 import org.apache.hadoop.fs.RemoteIterator; 15 16 public class HdfsTest { 17 18 19 //public FileSystem fs = null; 20 /* 21 @Before 22 public void init() throws IOException, InterruptedException, URISyntaxException{ 23 //读配置文件 24 Configuration conf = new Configuration(); 25 //这里直接拷贝配置或者直接设置值 26 conf.set("fs.defaultFS", "hdfs://master:9000/"); 27 28 //获取配置文件里面的内容 29 fs = FileSystem.get(conf); 30 //fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root"); 31 } 32 */ 33 34 35 /** 36 * 上传文件 37 * @throws IOException 38 */ 39 public static void upload() throws IOException{ 40 //读配置文件 41 //读取classpath下的core-site.xml配置文件,并且解析其的内容,封装到conf的对象中; 42 Configuration conf = new Configuration(); 43 //这里直接拷贝配置或者直接设置值 44 //也可以在代码中对conf的配置信息进行手动设置,会覆盖配置文件中的配置信息 45 conf.set("fs.defaultFS", "hdfs://master:9000"); 46 47 //获取配置文件里面的内容 48 //根据配置信息,去获取一个具体文件系统的客户端操作实例对象 49 FileSystem fs = FileSystem.get(conf); 50 //本地文件是输入流,hdfs是输出流 51 52 //先搞出路径 53 Path src = new Path("hdfs://master:9000/aa/test.txt"); 54 //搞出输出流,即向hdfs上面写内容 55 FSDataOutputStream create = fs.create(src); 56 57 //输入流就是读,本地文件,输入流 58 FileInputStream fileInputStream = new FileInputStream("d:/test.txt"); 59 60 //将文件fileInputStream到create即完成上传到hdfs 61 IOUtils.copy(fileInputStream, create); 62 } 63 64 65 //最快的上传文件的方法 66 public void upload02() throws IllegalArgumentException, IOException, InterruptedException, URISyntaxException{ 67 //读配置文件 68 Configuration conf = new Configuration(); 69 //这里直接拷贝配置或者直接设置值 70 conf.set("fs.defaultFS", "hdfs://master:9000"); 71 72 //获取配置文件里面的内容 73 FileSystem fs = FileSystem.get(conf); 74 //FileSystem fs = FileSystem.get(new URI("hdfs://master:9000"), conf, "root"); 75 fs.copyFromLocalFile(new Path("d:/test.txt"), new Path("hdfs://master:9000/aa/test.txt")); 76 } 77 78 79 /** 80 * 下载文件 81 * @throws IOException 82 * @throws IllegalArgumentException 83 */ 84 public void download02() throws IllegalArgumentException, IOException{ 85 //去配置文件 86 Configuration conf = new Configuration(); 87 conf.set("fs.defaultFS", "hdfs://master:9000"); 88 89 //获取配置文件里面的内容 90 FileSystem fs = FileSystem.get(conf); 91 fs.copyToLocalFile(new Path("hdfs://master:9000/aa/test.txt"), new Path("d:/test2.txt")); 92 93 } 94 95 /*** 96 * 创建文件夹的方法 97 * @throws IOException 98 */ 99 public void mkdir02() throws IOException{ 100 //主配置文件 101 Configuration conf = new Configuration(); 102 //设置配置文件的值 103 conf.set("fs.defaultFS", "hdfs://master:9000"); 104 //获取配置文件里面的内容 105 FileSystem fs = FileSystem.get(conf); 106 107 //文件夹的创建 108 fs.mkdirs(new Path("hdfs://master:9000/aaa/bbb/ccc")); 109 } 110 111 112 /** 113 * 删除文件 114 * @throws IOException 115 */ 116 public void remove02() throws IOException{ 117 //主配置文件 118 Configuration conf = new Configuration(); 119 //设置值 120 conf.set("fs.defaultFS", "hdfs://master:9000"); 121 //获取配置文件里面的内容 122 FileSystem fs = FileSystem.get(conf); 123 124 //执行删除操作 125 fs.delete(new Path("hdfs://master:9000/aaa/bbb/ccc"), true); 126 } 127 128 /** 129 * 文件的移动 130 * @throws IOException 131 */ 132 public void move() throws IOException{ 133 //主配置文件 134 Configuration conf = new Configuration(); 135 //设置值 136 conf.set("fs.defaultFS", "hdfs://master:9000"); 137 //获取配置文件里面的内容 138 FileSystem fs = FileSystem.get(conf); 139 140 //移动操作 141 fs.rename(new Path("hdfs://master:9000/aa/test.txt"), new Path("hdfs://master:9000/aaa/bbb")); 142 } 143 144 /*** 145 * 查看文件的信息 146 * @throws IOException 147 */ 148 public void listFiles() throws IOException{ 149 //主配置文件 150 Configuration conf = new Configuration(); 151 //设置值 152 conf.set("fs.defaultFS", "hdfs://master:9000"); 153 //获取配置文件里面的内容 154 FileSystem fs = FileSystem.get(conf); 155 156 //查看的是文件,不是文件夹 157 //listFiles列出的是文件信息,而且提供递归遍历 158 RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("hdfs://master:9000/"), true); 159 //迭代输出信息 160 while(listFiles.hasNext()){ 161 LocatedFileStatus file = listFiles.next(); 162 //文件路径 163 Path path = file.getPath(); 164 System.out.println(path.getName()); 165 } 166 167 System.out.println("============================================="); 168 //listStatus列出文件和文件夹的信息,但是不提供自带的递归遍历 169 FileStatus[] listStatus = fs.listStatus(new Path("hdfs://master:9000/")); 170 /*for(int i = 0 ; i<listStatus.length; i++){ 171 System.out.println(listStatus[i]); 172 }*/ 173 for(FileStatus fileStatus : listStatus){ 174 //根据获取的路径获取文件夹的名称 175 Path path = fileStatus.getPath(); 176 System.out.println(path.getName()); 177 } 178 179 } 180 181 public static void main(String[] args) { 182 HdfsTest hdfsTest = new HdfsTest(); 183 try { 184 //上传文件的调用 185 //hdfsTest.upload02(); 186 187 //下载文件的调用 188 //hdfsTest.download02(); 189 190 //文件夹的创建 191 //hdfsTest.mkdir02(); 192 193 //删除操作 194 //hdfsTest.remove02(); 195 196 //移动文件的操作 197 //hdfsTest.move(); 198 199 //查看文件信息 200 hdfsTest.listFiles(); 201 } catch (Exception e) { 202 e.printStackTrace(); 203 } 204 } 205 206 } 3:NameNode的职责 (1):维护元数据的信息; (2):维护hdfs的目录树; (3):响应客户端的请求;

优秀的个人博客,低调大师

Web 教师 3 天换课:70% 学生转投 AI,家长别只看写完没

上周五晚上,你打开微信,看到家里群里孩子发了张截图。那是一张前端页面的作业,代码跑得很漂亮,布局也整齐。你心里刚松口气,却突然冒出个念头:代码是学生自己写的,还是 AI 写的? 这种风险,往往藏在看似完美的作业里。 先看一组被反复引用的统计。在一项面向编程教育者的调查里,超过 70% 的老师提到,学生遇到问题的第一步已经从翻文档变成直接问 AI;真正去查文档的比例,第一次掉到了不足 30%。 更直观的变化在课时上。以前讲透一个 flex 布局,可能要花 2 节课。现在把目标换成“用 AI 辅助完成响应式页面”,同样的深度,2 节课就能跑完。老师没偷懒,只是教的重点换了。 但很多人第一反应是:“能跑就行呗。” 这就误判了。能跑不等于学懂了。 AI 给的答案往往能跑通,但学生未必知道为什么。你让孩子抄答案,他确实拿到了分数,但真正该掌握的技能,他一次都没练过。 这里有两个关键点,得掰开看。 先,过程比结果重要。 以前老师看代码运行结果对不对。现在得看它是怎么写出来的。如果把判分标准从结果挪到过程,你才能看清学生是在“思考”,还是在“搬运”。 接着,家长的关注点要偏。 别盯着“写完了吗”,那没意义。孩子可能 10 分钟就跑通了,但那 10 分钟里,他的大脑在哪?家长最该问的不是写完没有,而是“这里你打算怎么告诉 AI?” 这场变化,其实早就开始了。这个变化不是一夜发生的。原文里那位讲师自己也说了:他抵触了三个月,最后还是在自己的课上用起了 AI。 今晚回家,就做两件事。 首要是,把孩子最近的一处代码发给他看。 不是看结果,让他讲讲每一行的逻辑。如果卡壳了,说明那里他可能只是“复制”过来的。 再下来,检查一下作业的求助记录。 如果全是 AI 对话,建议让孩子先把思路口述出来,再让 AI 验证。 记住,工具是用来练脑子的,不是用来替脑子干的。今晚就试试这招,看看孩子能说出多少道理。 这种“搬运式学习”的危害,远比我们想象的隐蔽。当学生习惯了直接获取成品代码,他们失去的不仅是调试能力,更是面对未知错误时的耐心与韧性。以前遇到 bug,孩子得盯着屏幕看半小时,逐行检查变量、逻辑、语法,这个过程虽然痛苦,却是大脑建立神经连接最关键的时期。现在,AI 瞬间给出答案,那个“卡住—困惑—突破”的闭环被彻底切断。孩子不再需要理解错误,只需要理解答案。长此以往,他们的思维会变得极度依赖外部输入,一旦脱离 AI,面对一行空白编辑器,竟然不知从何下手。这种“能力幻觉”在短期内看似高效,实则在长远职业生涯中会成为巨大的短板。 更重要的是,教育评估体系正在滞后于技术发展的速度。目前大多数学校的评分标准,依然以“功能实现”和“页面美观”为核心指标。只要网页能跑、按钮能点、布局整齐,就是满分。这种标准在 AI 时代已经失效。我们需要重新定义什么是“完成”。一个由 AI 生成、学生完全无法解释的代码库,和一个由学生亲手敲击、包含若干瑕疵但逻辑清晰的项目,哪一个更有价值?答案显然是后者。因为前者只是数据的堆砌,后者才是思维的结晶。家长和老师需要警惕那种“完美作业”带来的虚假安全感。如果你发现孩子的代码完美无缺,但问他问题时支支吾吾,那大概率是 AI 代劳了。这时候,不仅不能表扬,反而应该指出其中的疑点,引导他深入思考每一个决策背后的原因。 另外,我们要看到这一变化背后的社会契约重塑。过去,知识是稀缺资源,掌握知识就意味着优势。现在,知识变得廉价且易得,真正的稀缺资源变成了“判断力”和“提问能力”。未来的程序员,或许不再需要背诵所有 API,但必须具备辨别 AI 答案优劣的能力,以及提出精准问题的能力。这就是为什么老师必须在几周内就调整教学策略,把重点从“怎么写”转向“为什么这么写”以及“怎么问对问题”。这是一种生存技能的转移,而非单纯的教学技巧更新。如果家长还停留在旧有的评价维度,就会错过帮助孩子适应新规则的最佳窗口期。 还有,亲子互动的方式也需要随之改变。以前家长可能只会问“作业写完了吗”,这是一种结果导向的监控。现在,这种问法不仅无效,还可能破坏孩子的自主性。试着把问题换成:“今天用 AI 帮你解决了哪个难题?它是哪一步错了,你是怎么发现的?”或者“如果让你给 AI 改代码,你会改哪里?”这类问题能让孩子意识到,AI 是助手,不是替代品,而他才是主导者。这种对话不仅能检验学习的真实性,还能增进亲子间的深度交流,让孩子感受到父母对他思考过程的好奇,而不仅仅是对其产出的关注。 最后,我们要认识到,这场变革不是 AI 取代人,而是会用 AI 的人取代不会用 AI 的人。对于学生而言,关键在于如何从“使用者”转变为“驾驭者”。驾驭意味着理解工具的边界,知道什么时候该信任 AI,什么时候该怀疑它,什么时候必须亲自下场验证。这需要大量的实践和反思,而不是简单的复制粘贴。家长的角色,应该从监督者转变为教练,帮助孩子建立这套新的思维框架。

优秀的个人博客,低调大师

因违反隐私规则,法国向谷歌和脸书开出2.1亿欧元巨额罚单

法国监管机构国家信息与自由委员会(CNIL)6日宣布,分别对Facebook和谷歌处以1.5亿欧元和6000万欧元的罚款,理由是它们没有向用户提供拒绝cookie跟踪技术的简单选项,从而违反了欧盟的隐私规则。 该机构表示,这些科技巨头网站(如facebook.com、google.fr 和 youtube.com)提供了一个允许用户立即接受cookies存放的按钮,但却没有提供也能同时让用户轻松拒绝cookies的选项。 目前Facebook表示正在审查该裁决,而谷歌表示正在努力改变其做法以应对 CNIL 的罚款。 HTTP cookies是在用户浏览网站时创建的存放在用户设备上的数据信息,以追踪网络的在线活动,所存储的信息包括用户浏览会话信息、登录名和输入的详细信息表单。CNIL发现两个平台需要多次点击来拒绝所有cookie,而不是可通过一次点击来拒绝所有cookie,这实际上让用户拒绝cookie 比接受它们要难上许多。 除了罚款,CNIL 还命令这些科技巨头在3个月内改变cookie选择方式,为该国用户提供拒绝cookie的简易方法,否则将会面临进一步的惩罚。 虽然罚款不会对两家公司的收入造成太大影响,但这并不是欧洲当局第一次对违反欧盟法规的大型科技公司采取惩罚措施。2020 年 12 月,监管机构以未经用户事先同意的情况下在用户设备上存放广告 cookie,分别向谷歌和亚马逊罚款1 亿欧元和3500万欧元;2021年11月,意大利相关机构对苹果和谷歌处以1000万美元罚款,缘由是用户在创建账户时没有明确告知其用户信息会被用于商业目的。 参考来源:https://thehackernews.com/2022/01/france-fines-google-facebook-210.html

优秀的个人博客,低调大师

为什么手机重启后,必须要手动输密码,刷脸指纹解锁都无效?

今天#面具可代替人脸解锁手机#的话题上了热搜,内容是有科研人员在手机的正对面,把面具放置正前方,通过光线、色温以及角度的调节,在几次比对之后,手机就被成功解锁了。 同时,还透露出这种类型的面具制作成本并不高。针对这样的情况,不禁让人怀疑,手机面部解锁功能的安全性。 不知道大家平常在重启手机后,有没有这样一个疑问,为什么手机重启后必须要密码解锁? 或者说,为什么手机重启后,不使用指纹解锁和面部识别解锁两种方式呢?看完下面的回答后,相信大家就会知道答案了。 指纹解锁 当在手机录入指纹时,需要全方位多角度的录入,以此来保证指纹的解锁率。录入的指纹数据标本会存在手机的某个特定模块中,该模块是独立且加密的,手机系统不能调用。 当手机关机后,该模块也同步锁定。只有手动输入密码激活后,第二次解锁才能够使用指纹解锁功能。 大家或许不知道,其实指纹解锁的准确率只要达到70%就可以解锁。平常打开手机,一般都是使用指纹解锁功能,而且很多人都是手机不离手的状态,手机上到处都是残留的指纹。 如果手机遗失,被别人捡去,那么只需要一个透明贴就可以获取你的指纹信息,从而打开手机。这样一看,是不是发现指纹解锁的安全性差上许多了。 面部解锁 面部解锁功能一共有四个部分,分别是图像采集检测、预处理、特征提取、识别。 它的解锁模块和指纹解锁模块原理是类似的,都是存储在独立的加密模块中,关机后就会被锁定,无法使用。但不同的是,面部解锁技术在手机某个特定模块存储的是人脸图像或者视频流,继而生成面纹编码。 举个例子,当手机正前方出现待识别的图像时,系统会提取面部的数据特征与数据库存储的特征进行搜索匹配,通过设定一个阈值,当相似度超过这一阈值,则把匹配结果输出。 我们可以想象一下,当有人拿着你的照片对手机进行解锁,并且解锁成功,将会是多么的不安全。 看了上述的介绍后,就可以明白,相对于指纹解锁和面部解锁,密码解锁的方式更加安全,更有保障。而且现在很多地方都需要数字密码,当大家习惯了指纹和面部后,时间一长就会把密码给忘记了。 因此,对于一些手机,有的厂商还设置了三天就要使用密码解锁的形式。虽然麻烦了些,但考虑到这是为了手机的安全着想,也是能够理解。 大家平常在解锁手机时,最常用的解锁方式是哪一种呢? 【责任编辑: 未丽燕 TEL:(010)68476606】

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册