人工智能网

 找回密码
 立即注册
楼主: Pallashadow

人类视觉不存在图像分割的问题

[复制链接]
 楼主| 发表于 2014-2-5 02:20:00 | 显示全部楼层
测试图片生成代码(matlab)

clc
clear all
close all
%% 切分文字图片
I=imread('C:\Program Files\MATLAB\R2010b\1.bmp');% 任意颜色m*n文字做成bmp图片,文字列数大于len,choice可取【行数/4】
I=rgb2gray(I);
I=double(I)/255;
col=find(all(I,1)~=1);%全空白列
row=find(all(I,2)~=1);%全空白行

youkong=intersect(col,setdiff(col,col-1));
zuokong=intersect(col,setdiff(col,col+1));
l2=floor(mean(youkong-zuokong));%文字宽度(像素)
shangkong=intersect(row,setdiff(row,row+1));
xiakong=intersect(row,setdiff(row,row-1));
l1=floor(mean(xiakong-shangkong));%文字高度

for r=1:length(shangkong)
    for c=1:length(zuokong)
        patch{r,c}=I(shangkong(r)+1:shangkong(r)+l1,zuokong(c)+1:zuokong(c)+l2);%切
    end
end
or=r;
%imshow(patch{1,5})
clear c
%% 生成测试图片
for l=1r-4
choice=l;%用于随机选择原始图片文字行
len=6;%文字数量
r(1)=15;
for n=1:len
    r(n+1)=r(n)*1.2;%邻字放大倍数
end
r=floor(r);%各字半径
ssiz=repmat(sum(r*4),[1,2]);%背景矩阵大小
center=ssiz/2;%中心坐标
%color=[0,0,0];
%circle2d(center(1),center(2),r(1),color);
b=0;%离心距离
M=zeros(ssiz(1));
for m=2:length(r);
    b=b+r(m-1)+r(m);%当前离心聚类
    c(1,=center+[0,b];%各字中心
    c(2,=center+[0,-b];
    c(3,=center+[b,0];
    c(4,=center+[-b,0];
    hold on   
    for n=1:4   
        It=imresize(patch{n+choice,m},[2*r(m)+1,2*r(m)+1]);%当前字图片
        %circle2d(c(n,1),c(n,2),r(m),color);        
        M((c(n,1)-r(m))c(n,1)+r(m)),(c(n,2)-r(m))c(n,2)+r(m)))=It;%字入图
    end
end
hold off
figure
imshow(M)
end
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 02:44:00 | 显示全部楼层

这个问题没法再明显了,任何生物,如果把图像分割作为图像识别的前提,那基本是死定了。

必须通过一个salience map定位到若干个感兴趣的点,对每个片段进行分类,分类是多次的,对若干次的分类结果做概率叠加。
这就要求训练集必须改变,训练集不是物体的整体,而是物体图片上经过salience map选择过的片段。这就要求训练量提升若干倍,以目前的运算和存储能力是比较困难的。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 03:03:00 | 显示全部楼层
我越来越觉得CV的进步是运算速度决定的,和算法没什么关系;目前的deep learning也不是什么了不起的新想法,它的基本原理1980年代末已经有了,CNN完全是1989年的,stacked autoencoder, DBN(Boltzmann machine)本质上也不是什么新东西,基本原理1980年代也有。只是最近依靠更强大的运算能力证明了它们而已。反观最近20年的发展,更高深更漂亮的如SIFT,SVM,在这个问题上似乎反而不如以前那些简单粗暴的算法有用。

我现在觉得人脑就是最简单粗暴的东西构成的,只是规模比较大而已。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 03:05:00 | 显示全部楼层
其实CNN的思想也就是截取片段的思想,但是没有做salience map,而是把看到的一切全卷积进来
回复 支持 反对

使用道具 举报

发表于 2014-2-5 03:31:00 | 显示全部楼层
点个赞
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 03:34:00 | 显示全部楼层

比如第一次观察以后,得到了一个关于各种状态s(比如“豹子”,“石头”,“羚羊”)的概率模型;那么第二次观察的点应该恰好能够使整个模型的熵最小化。
假设目前有三个相互竞争的状态,“豹子”,“石头”,“羚羊”,下一个观察点应该在【羚羊角】的位置,因为观察这个点可以区分“羚羊”和其他两者;这就需要针对每个状态做一个【熵减图谱】(观察何处使概率模型的熵减小,即观察何处能最大地证明或证伪某个或若干个假设)。

分类器的目的需要有两个,
1、不是根据全图像直接得到最终分类s【这是不可能的,分类器的能力和维数的指数成反比,而且图片可能不完整】,而是根据某个位置的片段【维数少,克服图像残缺】在一定程度上增加或降低分类s的概率。
2、根据某个位置的片段,计算出下次应该观察哪个区域,才能最大地区分出状态s,将结果叠加到salience map上。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 04:26:00 | 显示全部楼层
【图像识别中分类器的能力和维数的指数成反比】这个表达太诡异。应该说【观察若干个局部被观察整体更有效】。

这个论断无法严格从数学角度证实,但我认为它很可能是对的。我对CV不怎了解,但是这么严重的问题我觉得应该有人提出过才对。

比如对一个100维的物体图片有两种方法
1、直接扔给分类器
2、切成几个10维局部,根据salience不同,扔其中3个给分类器做概率叠加。

因为一个三维的反光源(物体)形成二维点阵(图像)的过程中会有很多变数。
1、旋转、缩放
2、遮挡
3、光源改变

旋转和缩放不是问题:如果这个物体传过来的图像是100维,10*10;那它沿一个轴旋转的变数就是sqrt(100)*3.14=31,10维是sqrt(10)*3.14/2=5。基本持平
遮挡:很小的遮挡可能使100维的数据完全无法被识别,而通过观察许多10维数据很可能幸免。
最严重的是光照:局部的灰度是共进共退的(比如共同位于光照面或背光面)。100维受光源改变影响比10维大无数倍。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-5 11:46:00 | 显示全部楼层
总结:【片段概率叠加法】的三个好处
1、抗遮挡
2、解决图像无法分割的问题
3、分类器计算量需求约与维数的平方成正比(以神经网络为例)
缺陷:
引入了salience map的概念,需要额外计算下一次观察的位置
可能有其他问题没想到
回复 支持 反对

使用道具 举报

发表于 2014-2-5 14:12:00 | 显示全部楼层
你的意思,是不是人的视觉有点像超分辨(super-resolution),人眼最终感知到的图像,是从很多帧图像的信息叠加的结果?
回复 支持 反对

使用道具 举报

发表于 2014-2-5 18:27:00 | 显示全部楼层
处了视觉中的物体信息,空间信息是怎么感知的?如何从顶叶送至海马的?物体在海马里是如何表征的,物体与其空间信息是同时到达海马的吗?它们在那里遭遇了什么?海马与额叶如何联系,它对信息的处理受额叶控制吗?额叶又是如何影响海马而将信息变成长期记忆的?。。。。P要带领我们进入大脑的世界吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|人工智能实验室

GMT+8, 2024-4-19 22:47 , Processed in 0.012758 second(s), 7 queries , Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表