发明名称 一种基于块压缩感知的秘密图像共享方法
摘要 一种基于块压缩感知的秘密图像共享方法,属于秘密图像共享技术领域。特征是:首先,读入秘密图像并对其进行分块,根据信道带宽及用户需求,选择合适的观测率并将得到的观测值量化编码,产生二进制比特序列。将该序列依次转换为十进制数,作为Shamir的(r,m)(r,m为正整数,且r≤m)门限方案中多项式的系数,产生m幅影子图像,通过不同的信道传给不同的参与者保管。接收端只需收到其中r幅影子图像的全部或部分信息,进行相应的逆操作,即可逐渐地重构出原秘密图像。本发明可以灵活适应信道带宽变化以及用户对重构图像质量需求的多样性,适用于不同信道带宽条件及对图像质量有可伸缩要求的应用环境中传输秘密图像信息。
申请公布号 CN103037223A 申请公布日期 2013.04.10
申请号 CN201210540639.X 申请日期 2012.12.14
申请人 太原科技大学 发明人 刘丽;王安红;李志宏;刘文杰;邢志伟
分类号 H04N7/26(2006.01)I;H04N7/30(2006.01)I 主分类号 H04N7/26(2006.01)I
代理机构 太原市科瑞达专利代理有限公司 14101 代理人 王思俊
主权项 1.一种基于块压缩感知的秘密图像共享方法,其特征在于具体操作步骤如下:Ⅰ.发送端的秘密隐藏部分,包括下列步骤:第一步,块压缩感知编码:⑴.读入一幅秘密图像,并将秘密图像分为多个互不重叠的、B×B大小的图像块,⑵.将每一个图像块排列为B<sup>2</sup>×1的列向量x<sub>i</sub>,i表示第i个图像块,⑶.生成一个n<sub>B</sub>×B<sup>2</sup>大小的正交独立同分布高斯随机矩阵作为块观测阵Φ<sub>B</sub>,其中<img file="FDA00002584766000011.GIF" wi="292" he="73" />(向下取整),MR为设定的观测率,⑷.对每一个图像块利用公式(1)进行BCS观测:y<sub>i</sub>=Φ<sub>B</sub>x<sub>i</sub>    (1)其中,y<sub>i</sub>是x<sub>i</sub>的观测值向量,大小为n<sub>B</sub>×1,Φ<sub>B</sub>是第i个图像块的观测矩阵,每一个图像块均使用相同的Φ<sub>B</sub>,⑸.所有y<sub>i</sub>组成大小为n<sub>B</sub>×N的观测值矩阵Y,其中N是所有图像块的个数,保存观测值矩阵Y,同时记录观测率MR;第二步,将Y按照矩阵逐行扫描方式展开成行向量y′;第三步,非均匀量化编码:⑴.寻找y′中所有元素绝对值的最大值max(|y′<sub>j</sub>|)(j=1,2,…,n<sub>B</sub>×N),利用公式(2)将y′中各元素值y′<sub>j</sub>限定在-2048~2048之间,并将此动态范围划分为4096个量化单位,即量化步长Δ=1,<img file="FDA00002584766000012.GIF" wi="569" he="189" />j=1,2,…,n<sub>B</sub>×N    (2)⑵.利用非均匀量化编码方法对各个元素y″<sub>j</sub>进行8比特量化编码,记为c<sub>j1</sub>c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>c<sub>j5</sub>c<sub>j6</sub>c<sub>j7</sub>c<sub>j8</sub>:a)确定极性码:如果y″<sub>j</sub>&gt;0,则编码输出c<sub>j1</sub>=1,否则,c<sub>j1</sub>=0,b)确定段落码:段落序号1:若0≤|y″<sub>j</sub>|&lt;16Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=000,量化间隔记为α=Δ,段落序号2:若16Δ≤|y″<sub>j</sub>|&lt;32Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=001,量化间隔记为α=Δ,段落序号3:若32Δ≤|y″<sub>j</sub>|&lt;64Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=010,量化间隔记为α=2Δ,段落序号4:若64Δ≤|y″<sub>j</sub>|&lt;128Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=011,量化间隔记为α=4Δ,段落序号5:若128Δ≤|y″<sub>j</sub>|&lt;256Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=100,量化间隔记为α=8Δ,段落序号6:若256Δ≤|y″<sub>j</sub>|&lt;512Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=101,量化间隔记为α=16Δ,段落序号7:若512Δ≤|y″<sub>j</sub>|&lt;1024Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=110,量化间隔记为α=32Δ,段落序号8:若1024Δ≤|y″<sub>j</sub>|&lt;2048Δ,段落码输出c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>=111,量化间隔记为α=64Δ,c)确定段内码:通过步骤(b)得到y″<sub>j</sub>所在段落的起始值及相应的量化间隔,利用公式(3)得到段内码:<img file="FDA00002584766000021.GIF" wi="1534" he="161" />第四步,将y″<sub>j</sub>的8比特量化编码c<sub>j1</sub>c<sub>j2</sub>c<sub>j3</sub>c<sub>j4</sub>c<sub>j5</sub>c<sub>j6</sub>c<sub>j7</sub>c<sub>j8</sub>转换成十进制数d<sub>j</sub>(j=1,2,…,n<sub>B</sub>×N),且d<sub>j</sub>∈[0,255],所有d<sub>j</sub>构成行向量<img file="FDA00002584766000022.GIF" wi="430" he="56" />第五步,利用Shamir的(r,m)门限方案,产生适合于信道传输的m个承载秘密图像信息的影子图像,并将这些影子图像送入信道中进行传输,分别分发给不同的接收者:⑴.从向量d中顺序选取r个没有共享的元素作为公式(4)的共享系数,q<sub>k</sub>(x)=(a<sub>0</sub>+a<sub>1</sub>x+a<sub>2</sub>x<sup>2</sup>+…+a<sub>r-1</sub>x<sup>r-1</sup>)mod2<sup>8</sup>,k=1,2,…,s    (4)其中a<sub>0</sub>,a<sub>1</sub>,…,a<sub>r-1</sub>是r个共享系数,<img file="FDA00002584766000023.GIF" wi="286" he="58" />(向上取整)为影子图像的像素个数,⑵.取x=1,2,…,m,分别计算出q<sub>k</sub>(1),q<sub>k</sub>(2),…,q<sub>k</sub>(m),并依顺序分别添加到m个行向量w<sub>1</sub>,w<sub>2</sub>,…,w<sub>m</sub>中(w<sub>1</sub>,w<sub>2</sub>,…,w<sub>m</sub>初始值为空),w<sub>1</sub>={q<sub>k</sub>(1)},w<sub>2</sub>={q<sub>k</sub>(2)},…,w<sub>m</sub>={q<sub>k</sub>(m)},k=1,2,…,s    (5)⑶.重复步骤(1)-(2),直到d中所有元素被处理完毕,⑷.将w<sub>1</sub>,w<sub>2</sub>,…,w<sub>m</sub>都转换为大小为任意的矩阵(大小可根据个人喜好来定),分别记为W<sub>1</sub>,W<sub>2</sub>,…,W<sub>m</sub>(分别表示m幅影子图像),将m幅影子图像通过不同的信道分发给m个接收者保存;Ⅱ.接收端的按需重构部分,包括下列步骤:第一步,利用不少于r(r≤m)个接收者提供的合法影子图像,重构共享系数:⑴.从r个接收者提供的合法影子图像矩阵中分别提取第k个(k=1,2,…,s)未被处理的像素{q<sub>k</sub>(i<sub>1</sub>),q<sub>k</sub>(i<sub>2</sub>),…,q<sub>k</sub>(i<sub>r</sub>)},⑵.用r个点(i<sub>1</sub>,q<sub>k</sub>(i<sub>1</sub>)),(i<sub>2</sub>,q<sub>k</sub>(i<sub>2</sub>)),…,(i<sub>r</sub>,q<sub>k</sub>(i<sub>r</sub>))构造r-1次方程组(6):<maths num="0001"><![CDATA[<math><mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>q</mi><mi>k</mi></msub><mrow><mo>(</mo><msub><mi>i</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msub><mi>a</mi><mn>0</mn></msub><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mo>&times;</mo><msub><mi>i</mi><mn>1</mn></msub><mo>+</mo><msub><mi>a</mi><mn>2</mn></msub><mo>&times;</mo><msubsup><mi>i</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>+</mo><msub><mi>a</mi><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&times;</mo><msubsup><mi>i</mi><mn>1</mn><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>mod</mi><msup><mn>2</mn><mn>8</mn></msup></mtd></mtr><mtr><mtd><msub><mi>q</mi><mi>k</mi></msub><mrow><mo>(</mo><msub><mi>i</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msub><mi>a</mi><mn>0</mn></msub><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mo>&times;</mo><msub><mi>i</mi><mn>2</mn></msub><mo>+</mo><msub><mi>a</mi><mn>2</mn></msub><mo>&times;</mo><msubsup><mi>i</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>+</mo><msub><mi>a</mi><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&times;</mo><msubsup><mi>i</mi><mn>2</mn><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>mod</mi><msup><mn>2</mn><mn>8</mn></msup></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>q</mi><mi>k</mi></msub><mrow><mo>(</mo><msub><mi>i</mi><mi>r</mi></msub><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><msub><mi>a</mi><mn>0</mn></msub><mo>+</mo><msub><mi>a</mi><mn>1</mn></msub><mo>&times;</mo><msub><mi>i</mi><mi>k</mi></msub><mo>+</mo><msub><mi>a</mi><mn>2</mn></msub><mo>&times;</mo><msubsup><mi>i</mi><mi>r</mi><mn>2</mn></msubsup><mo>+</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>+</mo><msub><mi>a</mi><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msub><mo>&times;</mo><msubsup><mi>i</mi><mi>r</mi><mrow><mi>r</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>mod</mi><msup><mn>2</mn><mn>8</mn></msup></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow></math>]]></maths>⑶.求解出a<sub>0</sub>,a<sub>1</sub>,…,a<sub>r-1</sub>,并依次存入向量d′中,⑷.重复(1)-(3),直到所有像素点被处理完毕;第二步,反量化过程:⑴.将d′中各元素d″<sub>j</sub>转换成8位二进制比特序列,记为c′<sub>j1</sub>c′<sub>j2</sub>c′<sub>j3</sub>c′<sub>j4</sub>c′<sub>j5</sub>c′<sub>j6</sub>c′<sub>j7</sub>c′<sub>j8</sub>,⑵.恢复极性:若c′<sub>j1</sub>=1,则极性e<sub>0</sub>=+1,否则,e<sub>0</sub>=-1,⑶.恢复d′<sub>j</sub>所在段落起始值和量化间隔:将c′<sub>j2</sub>c′<sub>j3</sub>c′<sub>j4</sub>转换为十进制数e<sub>1</sub>,则d′<sub>j</sub>所在段落序号为e<sub>1</sub>+1,记录该段起始值与量化间隔,⑷.将c′<sub>j5</sub>c′<sub>j6</sub>c′<sub>j7</sub>c′<sub>j8</sub>转换成十进制数e<sub>2</sub>,并利用公式(7)恢复数据元素<img file="FDA00002584766000032.GIF" wi="71" he="60" /><img file="FDA00002584766000033.GIF" wi="1519" he="64" />⑸.重复(1)-(4),直至处理完d′中所有元素,将恢复数据<img file="FDA00002584766000034.GIF" wi="48" he="60" />(j=1,2,…,n<sub>B</sub>×N)依次排列构成行向量y<sup>h</sup>中;第三步,将y<sup>h</sup>以行扫描的方式转换成n<sub>B</sub>×N的矩阵Y<sup>h</sup>;第四步,块压缩感知解码:⑴.解码时,利用已存储的与编码端相同的种子观测矩阵Φ<sub>B</sub>构造块对角矩阵Φ<sub>0</sub>:<img file="FDA00002584766000035.GIF" wi="1289" he="284" />⑵.通过公式(9)得到图像的初始解:<maths num="0002"><![CDATA[<math><mrow><msup><mi>X</mi><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></msup><mo>=</mo><msubsup><mi>&Phi;</mi><mn>0</mn><mi>T</mi></msubsup><msup><mi>Y</mi><mi>h</mi></msup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow></math>]]></maths>⑶.对X<sup>(j)</sup>进行维纳滤波,消除图像的块效应,其中j代表迭代次数,第一次迭代时为X<sup>(0)</sup>,⑷.对滤波后的X<sup>(j)</sup>中的每一个块<img file="FDA00002584766000037.GIF" wi="107" he="55" />通过公式(10)对其进行更新:<img file="FDA00002584766000038.GIF" wi="1422" he="68" />⑸.用每一个块更新后的<img file="FDA00002584766000039.GIF" wi="81" he="58" />构成<img file="FDA000025847660000310.GIF" wi="107" he="47" />并通过公式(11)对其进行Contourlet小波变换,得到<img file="FDA00002584766000041.GIF" wi="81" he="45" />的稀疏表示θ<sup>(j)</sup>:<img file="FDA00002584766000042.GIF" wi="1211" he="63" />其中,θ<sup>(j)</sup>为<img file="FDA00002584766000043.GIF" wi="81" he="45" />在Contourlet小波基下的系数,Ψ为Contourlet小波变换基,⑹.按照公式(12)对θ<sup>(j)</sup>进行双变量收缩阈值处理,得到更加稀疏的系数<img file="FDA00002584766000044.GIF" wi="89" he="48" /><img file="FDA00002584766000045.GIF" wi="1533" he="278" />其中,若p≤0,则(p)<sub>+</sub>=0,若p&gt;0,则(p)<sub>+</sub>=p,λ是一个收敛控制常数,<img file="FDA00002584766000046.GIF" wi="414" he="133" />是θ<sup>(j)</sup>的中位数估计值,<img file="FDA00002584766000047.GIF" wi="49" he="58" />是θ<sup>(j)</sup>的边缘方差,⑺.通过公式(13)对<img file="FDA00002584766000048.GIF" wi="65" he="46" />进行反变换(ICT),得到本次迭代的近似解:<img file="FDA00002584766000049.GIF" wi="1212" he="65" />⑻.对于<img file="FDA000025847660000410.GIF" wi="81" he="42" />中的每一个块<img file="FDA000025847660000411.GIF" wi="107" he="54" />通过公式(14)进行更新:<maths num="0003"><![CDATA[<math><mrow><msubsup><mi>X</mi><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msubsup><mo>=</mo><msubsup><mover><mi>X</mi><mo>&OverBar;</mo></mover><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></msubsup><mo>+</mo><msubsup><mi>&Phi;</mi><mi>B</mi><mi>T</mi></msubsup><mrow><mo>(</mo><msup><mi>Y</mi><mi>h</mi></msup><mo>-</mo><msub><mi>&Phi;</mi><mi>B</mi></msub><msubsup><mover><mi>X</mi><mo>&OverBar;</mo></mover><mi>i</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></msubsup><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>14</mn><mo>)</mo></mrow></mrow></math>]]></maths>⑼.重复进行以上步骤(3)-(8)进行迭代,直至得到的结果满足精度要求,即得到重构的秘密图像。
地址 030024 山西省太原市万柏林区瓦流路66号