java不能编写人脸识别这类软件吗

sprouting 发布于 10/14 21:47
阅读 919
收藏 0

解锁HarmonyOS核心技能,赢取限量周边好礼>>>

最近查了下人脸识别这一块的功能代码,发现GitHub上大部分的java编写的要不就是调用第三方的接口,要不就是调用人家封装好的c++代码,要不就是调用opencv做的简单封装,就没有纯粹的java编写的,难道java不能编写人脸识别这种功能吗?不应该啊

加载中
4
ArchitectureMaster
ArchitectureMaster

理论上可行,但事实上要看你在什么样的基础上进行。

好比有人说他用电话线0的和1编了一个QQ程序,计算机的原理不就是0和1吗?但其实根本做不到,因为这里的硬件你做不了,cpu也是集成了软件的硬件,这里的软件是指令集。所有的软件都需要基于操作系统,除非你连操作系统都做了、cpu也做了、主板的总线也做了、这是不可能的。你让一个精通硬件开发的工程师人家也需要基于一个mcu方案,没有硬件工程师成独立自己设计制造一个完整的mcu解决方案出来。

越是上层依赖就越重,java其实是属于非常上层的语言,java如果去做人脸是可以的,但只是理论上,但是底层的方法要自己实现。人脸识别的基础是图形的运算,而这需要的基础就是matrix矩阵运算,而opencv虽然有java版的只是调用opencv c类库的入口,而不可能原生用java来写一个。效率是一个问题,另一个问题就是java对于matrix运算支持并不好,而C++里面却有成熟的矩阵运算支持。

矩阵运算不是变成二维数组就行了。而是二维数组间的运算,而这是cv的基础。大量的这种运算,java这种半解释型的语言性能消耗会非常大。而且不必要的性能浪费是必然的。所以多数在java里实现是wrap一个C++类库的jar包,或者用jni何引用c++类库。

每一种语言都有自己的特点和善长的领域,强行给自己喜欢的语言贴金没必要,根据需要选择不同的语言做最善长的事情才是根本。

1
魔力猫
魔力猫

当然你可以自己写。之所以少,是因为早期搞研究识别的团队不用Java,自然技术路线延续也就缺乏Java版。就好像某团队之前一直用Fortran搞某个计算项目,几十年都是这么过来的,接下来预估也会继续下去,那除非Fortran的环境彻底没法用了,不然历史遗留这么多,不会迁移到别的语言的。

 

0
zn123
zn123

用python 多是因为他们简单好学,那帮科学家数学家 懒得学复杂的,很多现成东西可用;他的目的是出结果做实验用的;java 做出的东西要给普通人用的产品,要比较严谨,对做研究的人来说 太麻烦了;

0
gammey
gammey

可以的,而且应该并没有语言间产生的技术鸿沟。

0
10进制宇宙
10进制宇宙

一个语言已经有的轮子,换一种语言再写一遍,属于重新发明轮子。

如果没人愿意干这个发明轮子的活,那就没有呗。

0
F
Francesca

你把其他语言的东西翻译成java版的不就可以了吗?说白了还是现有的东西拿来用,不要做重复的没有意义的事情,你要真的闲也没人拦你啊,看你有没有精力弄了。

0
kakai
kakai

deeplearning4j

0
yytf
yytf

java不太适合做底层的东西

0
zazzle
zazzle

在  https://www.bugwhy.com 提问,我帮你找人

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部