1

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

 2 years ago
source link: https://www.oschina.net/question/2652412_2324108
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

sprouting 发布于 昨天 21:47
阅读 431

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

ArchitectureMaster

今天 09:56

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

好比有人说他用电话线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++类库。

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK