前言
读前须知:
一开始, 我们必须要保证你已然彻底明白相关的基础的数学知识, 这里面涵盖了运用最小二乘法去拟合曲二次曲面, 还有曲面的曲率详尽求解。要是仍然没有搞明白, 那么就仔细瞧瞧下面的链接。
【点云、图像】学习中 常见的数学知识及其中的关系与实战
更新中
(建议从一个标题上从上往下看,比较循序渐进)
其有补充内容, 即曲率, 它反映的是曲面在某一点处的弯曲程度, 此弯曲程度与该点及其邻近点的位置相关, 并且还和该点及其邻近点的法向量有关。
以及一些的常见操作:
爆肝5万字️ 点云数据处理基础(版)
先上结果:
实现思路
和常见的那种, 像划痕、斑点这样子, 能通过肉眼就看见的缺陷检测不一样, 凹凸性的缺陷很难用肉眼发现, 甚至得借助打光照射, 才能够看到凹槽,在这儿我们运用深度摄像机(普通相机加上深度信息), 去采集深度信息, 在这种情形下, 我们把呈现出来的图像称作深度图, 当然啦, 深度图也能够被转换成为点云。
这里我们仅对点云这种数据进行处理。
要求:对异形曲面微细缺陷识别(我6月份之前要完成的毕设)
这里缺陷主要指凸起和凹槽。
想法1
想法1: 要是在一个平面上有凹槽或者凸起出现, 那么先确立一个由大部分点拟合而成的平面, 接着针对那些不在这个平面的点云展开高程分析, 从而确立凹陷或者凸起的程度。
实际上并非会十分平, 所以想法1被排除掉了, 然而能够用来当作平面去做一个简易示例。
想法2
想法2:计算点云上每个点的领域曲率来描绘点的弯曲程度。
想法3
想法3: 计算点云上各个点的高斯曲率, 计算点云上各个点的平均曲率, 通过这两种曲率来描绘点的弯曲程度。
补充
机器学习——详解KD-Tree原理
补充1:获取兔子点云pcd
首先在3D 此下载ply点云模型。
示例:
import open3d as o3d import numpy as np #将ply转换成pcd def convert_ply_to_pcd(ply_file, pcd_file): # 读取PLY文件 point_cloud = o3d.io.read_point_cloud(ply_file) # 保存为PCD文件 o3d.io.write_point_cloud(pcd_file, point_cloud) # 使用示例 ply_file_path = r'bunny\reconstruction\bunny.ply' #填入ply文件的路径 pcd_file_path = r'bunny.pcd' #填入pcd文件的路径 convert_ply_to_pcd(ply_file_path, pcd_file_path)补充2:创建凹凸点云
见【点云】生成有凹凸的平面
的高斯函数部分。
实现 想法1
暂无
想法2
想法2:
在完成求取领域曲率之后, 我们针对其曲率规模予以一种划分且实施可视化。
这里进一步对这个领域曲率的定义进行详解。
首先,我们已经在这里的实战1了解到了领域曲率的求法。
基于邻域特征点提取和匹配的点云配准_李新春
只是呢这个定义, 我仅仅是在别的博客里头, 以及在下面的这篇论文当中, 才寻找到了定义, 然而并没有在wiki百科里, 寻觅到关联的阐述。
找了半天后依然无法解释其中原因,于是在参考了下面两篇博文后
如何理解矩阵特征值?
特征值的最大值与最小值
想出了这么一个合理的解释:
1、这个曲率所定义的优点在于, 它并非依赖于法向量的方向, 并且它的值域是, 这致使它相对容易去进行归一化以及可视化。
2、那么, 为何却用那最小的特征值去除以特征值的和, 而并非是采用最大的特征值去除以特征值的和的做法。这是为什么。
这是由于, 最小的特征值所对应的特征向量, 乃是曲面的法向量, 然而, 最大的特征值所对应的特征向量, 却是曲面的主方向。
倘若以最大的特征值去除以特征值和, 那么曲率的值便会正比例地和曲面的主方向的弯曲程度相关联, 然而却和曲面的法向方向的弯曲程度没有关联, 若是如此就必然会把曲面的凹凸变化给忽略掉, 进而致使曲率的计算出现不准确的情况。
若以最小的特征值去除特征值和, 那么曲率的值会与曲面法向方向的弯曲程度成正比例关系, 且与曲面主方向的弯曲程度没有关联。如此便能体现出曲面的凹凸变化情况, 进而提升曲率的计算精度。
因此, 做这样的操作, 是把最小的特征值除以特征值和, 并非用最大的特征值除以特征值和。这如此而为, 是为了能更好地形容曲面的局部形状, 而不是曲面的整体方向。
于是我们就可以坦然用这个定义来求取了。
代码
畏惧点云数目过多难以计算, 于是最先针对事例里的兔子点云开展了一次下采样 (怎样获取兔子点云届时再给出教程)。
import open3d as o3d import numpy as np def pca_compute(data, sort=True): #1、主成分分析 average_data = np.mean(data, axis=0) # 求每一列的平均值,即求各个特征的平均值 decentration_matrix = data - average_data # 去中心化矩阵 H = np.dot(decentration_matrix.T, decentration_matrix) # 求协方差矩阵 #协方差是衡量两个变量关系的统计量,协方差为正表示两个变量正相关,为负表示两个变量负相关 eigenvectors, eigenvalues, eigenvectors_T = np.linalg.svd(H) # 求特征值与特征向量 #H = UΣV^T #输出列向量、对角矩阵、行向量 if sort: sort = eigenvalues.argsort()[::-1] # 从大到小排序 .argsort()是升序排序,[::-1]是将数组反转,实现降序排序 eigenvalues = eigenvalues[sort] # 特征值 ## 使用索引来获取排序后的数组 return eigenvalues def caculate_surface_curvature(radius,pcd):#2、计算点云的表面曲率 cloud = pcd points = np.asarray(cloud.points) #点云转换为数组 点云数组形式为[[x1,y1,z1],[x2,y2,z2],...] kdtree = o3d.geometry.KDTreeFlann(cloud) #建立KDTree num_points = len(cloud.points) #点云中点的个数 curvature = [] # 储存表面曲率 for i in range(num_points): k, idx, _ = kdtree.search_radius_vector_3d(cloud.points[i], radius) #返回邻域点的个数和索引 neighbors = points[idx] #数组形式为[[x1,y1,z1],[x2,y2,z2],...] w = pca_compute(neighbors)#调用第1步 #由降序排序,w[2]为最小特征值 #np.zeros_like(w[2])生成与w[2]相同形状的全0数组 delt = np.divide(w[2], np.sum(w)) #根据公式求取领域曲率 curvature.append(delt) curvature = np.array(curvature, dtype=np.float64) return curvature def curvature_normal():#3、曲率归一化 从0-1/3归到0-1之间 curvature = caculate_surface_curvature(radius,pcd) #调用第2步 c_max = max(curvature) c_min = min(curvature) cur_normal = [(float(i) - c_min) / (c_max - c_min) for i in curvature] return cur_normal def draw(cur_max,cur_min,pcd):#4、绘图 cur_normal = curvature_normal()#调用第3步 pcd.paint_uniform_color([0.5,0.5,0.5]) #初始化所有颜色为灰色 for i in range(len(cur_normal)): if 0 < cur_normal[i] <= cur_min: #归一化后的曲率 np.asarray(pcd.colors)[i] = [1, 0, 0]#红 elif cur_min < cur_normal[i] <= cur_max: np.asarray(pcd.colors)[i] = [0, 1, 0]#绿 elif cur_max < cur_normal[i] <= 1: np.asarray(pcd.colors)[i] = [0, 0, 1]#蓝 # 可视化 o3d.visualization.draw_geometries([pcd]) cur_max = 0.7 cur_min = 0.3 #曲率分割基准 radius = 0.05 voxel_size = 0.01 #越小密度越大 pcd = o3d.io.read_point_cloud("bunny.pcd") print(pcd) pcd = pcd.voxel_down_sample(voxel_size) #下采样 draw(cur_max,cur_min,pcd)结果:
此长度, 宽度出现报错之时是能够不去管的, 有那么一点儿小小的强迫症的人, 是可以在可视化那儿变更成:
o3d.visualization.draw_geometries([pcd],window_name="可视化原始点云", width=800, height=800, left=50, top=50, mesh_show_back_face=False)红色为曲率较低,绿色曲率中等,蓝色曲率较高。
发觉在效果方面不太理想, 红色的某些部分看上去曲率也是很高的, 甚至还出现了一个在初始化时的灰点, 或许在求邻近点之际没有取到? 无法知晓。
想法3
首先我们在这里的高斯曲率和平均曲率求解有了一些认识。
附一张图:
代码
import open3d as o3d import numpy as np from scipy.optimize import curve_fit voxel_size = 0.01 #越小密度越大 radius = 0.07 pcd = o3d.io.read_point_cloud("bunny.pcd") pcd = pcd.voxel_down_sample(voxel_size) #下采样 cloud = pcd points = np.asarray(cloud.points) #点云转换为数组 点云数组形式为[[x1,y1,z1],[x2,y2,z2],...] kdtree = o3d.geometry.KDTreeFlann(cloud) #建立KDTree num_points = len(cloud.points) #点云中点的个数 pcd.paint_uniform_color([1, 0, 0]) # 初始化所有颜色为红色 # 定义非线性函数,这里假设是一个二次曲面 def func(x, a, b, c, d, e, f): return a * x[0]**2 + b * x[1]**2 + c * x[0] * x[1] + d * x[0] + e * x[1] + f def f(x, y): return popt[0]*x**2 +popt[1]*y**2 +popt[2]* x*y +popt[3]*x + popt[4]*y +popt[5] # 定义曲面的梯度函数,即一阶偏导数 def gradient(f, x, y): # 使用中心差分法近似求导 #参考https://cloud.tencent.com/developer/article/1685164 h = 1e-6 # 差分步长,可以根据精度要求调整 df_dx = (f(x + h, y) - f(x - h, y)) / (2 * h) # 对x求偏导 df_dy = (f(x, y + h) - f(x, y - h)) / (2 * h) # 对y求偏导 return df_dx, df_dy # 定义曲面的曲率函数,即二阶偏导数 def curvature(f, x, y): # 使用中心差分法近似求导 h = 1e-6 # 差分步长,可以根据精度要求调整 d2f_dx2 = (f(x + h, y) - 2 * f(x, y) + f(x - h, y)) / (h ** 2) # 对x求二阶偏导 d2f_dy2 = (f(x, y + h) - 2 * f(x, y) + f(x, y - h)) / (h ** 2) # 对y求二阶偏导 d2f_dxdy = (f(x + h, y + h) - f(x + h, y - h) - f(x - h, y + h) + f(x - h, y - h)) / (4 * h ** 2) # 对xy求混合偏导 # 根据公式计算高斯曲率K和平均曲率H df_dx, df_dy = gradient(f, x, y) # 调用梯度函数求一阶偏导 E = 1 + df_dx ** 2 F = df_dx * df_dy G = 1 + df_dy ** 2 L = d2f_dx2 / np.sqrt(1 + df_dx ** 2 + df_dy ** 2) #np.sqrt()表示开方 M = d2f_dxdy / np.sqrt(1 + df_dx ** 2 + df_dy ** 2) N = d2f_dy2 / np.sqrt(1 + df_dx ** 2 + df_dy ** 2) K = (L * N - M ** 2) / (E * G - F ** 2) # 高斯曲率 H = (E * N + G * L - 2 * F * M) / (2 * (E * G - F ** 2)) # 平均曲率 return K, H curvatures = [] for i in range(num_points): k, idx, _ = kdtree.search_radius_vector_3d(cloud.points[i], radius) #返回邻域点的个数和索引 neighbors = points[idx] #数组形式为[[x1,y1,z1],[x2,y2,z2],...] #print(k) Y = neighbors[:, 2] # 因变量 X = neighbors[:, [0,1]] # 自变量 [[2,3],[1,1],[8,9],[11,12],[4,5],[8,9]] 6*2 popt, pcov = curve_fit(func, xdata=X.T,ydata= Y) x = cloud.points[i][0] # 某一点的x坐标 y = cloud.points[i][1] # 某一点的y坐标 K, H = curvature(f, x, y) # 计算该点的曲率 curvatures.append([K,H]) print(curvatures) for i in range(len(curvatures)): if -0.05<curvatures[i][0] < 0.05 and -0.05<curvatures[i][1] <0.05: #平坦 np.asarray(pcd.colors)[i] = [0, 0, 0]#黑 elif -0.05<curvatures[i][0] < 0.05 and curvatures[i][1] >0.05: #凸 np.asarray(pcd.colors)[i] = [1, 0, 0]#红 elif -0.05<curvatures[i][0] < 0.05 and -0.05<curvatures[i][1] <0.05: #凹 np.asarray(pcd.colors)[i] = [0, 1, 0]#绿 elif curvatures[i][0] < -0.05 and curvatures[i][1] >0.05: #鞍形脊 大部分凸,少部分凹 np.asarray(pcd.colors)[i] = [0, 0, 1]#蓝 elif curvatures[i][0] < -0.05 and curvatures[i][1] <-0.05: #鞍形谷 大部分凹,少部分凸 np.asarray(pcd.colors)[i] = [0, 1, 1]#青 elif curvatures[i][0] > 0.05 and curvatures[i][1] >0.05: #峰 np.asarray(pcd.colors)[i] = [1, 0, 1]#紫 elif curvatures[i][0] > 0.05 and curvatures[i][1] <-0.05: #阱 np.asarray(pcd.colors)[i] = [1, 1, 0]#黄 #显示点云 o3d.visualization.draw_geometries([pcd])结果:
最后的成果好得出奇, 对每一个点都做了划分, 相较于想法1而言好出太多了。在这里暂且运用兔子点云施行测试, 后续要创建一些平面点云再度开展测试一番。
总结
要学习事物, 都并非一下子就能成功的, 确实是得一步步踏踏实实地去学, 才能够学懂弄明白。它是个不错的事物呀, 只有当你自身也掌握一些事物的时候, 它才会给出正确的回应, 所以是不能轻易相信它的。
后续测试
见【点云】生成有凹凸的平面测试部分
未完成:
1、返回面积、深度信息
最后更新
– 2024.7.17–
毕了业, 论文写完了, 最后那个返回面积与深度信息, 因内容量够了, 就懒得去实现了, 实现起来应当也简单, 要找到所有凹凸的那个颜色点的中心, 可以把位置求平均值得出缺陷中心之类的, 接着依此缺陷中心获取其深度信息, 面积要将那个颜色点求出类似最小包围盒之类的东西, 应该就能算作面积了。
呈现出的成果是, 将二维的图片扫描成为三维图片之后, 缺陷精准度能够精确至大概1.5左右像素的偏移, 扫描的高度是1.5m高, 扫描得出的结果如下:
最终的那块呈现为紫色的区域, 是属于缺陷的区域, 能够这么讲, 我所拥有的这一套算法, 只要对于参数进行的调教是良好的, 按理来说也是能够将其识别出来的。
其主要的实现方式是这样的, 先是进行线结构光扫描操作, 再接着开展三维建模工作, 最后去做那点云凹凸缺陷识别事宜。
线结构光扫描时首先线会打在三维物体上, 进而出现反射情况, 然后依据反射来获取深度, 于是数据集之中的数据包含一张有线的图, 还有一张无线的图, 接着把其图像背景裁剪成一条线图, 依据这个线图, 将不经过三维物体的线的坐标当作深度为0, 要是左右偏移了多少像素, 那么就会凹凸相应多少深度。
具体代码见:
具体论文见:基于的点云凹凸缺陷识别论文(毕设) (建议看)
自己建设的数据集: cap_1, 提取的代码是: ffdq, 链接为: (用于论文那种), 提取的代码是: am9m。
(大佬完成的检测系统拍出来的,他的上也有检测系统的代码)
扫描场景展示:
其中数据集cap_1扫描的是下面 没有放上白板前的图。
cap_2 则是我论文里实现的图,即上图
缺陷展示:
其实, 仅仅是识别出了最为显而易见的大洞, 其他的一些小的凹凸不平的缺陷, 要是在不进行滤波之前的状况下,也能够识别出两个或者三个, 不过, 也并非是特别精准的, 那就交付给你们去达成了。
Www.ufdrh.cn/Article/details/4734221.sHtML
Www.ufdrh.cn/Article/details/2488385.sHtML
Www.ufdrh.cn/Article/details/4638380.sHtML
Www.ufdrh.cn/Article/details/8654027.sHtML
Www.ufdrh.cn/Article/details/3727568.sHtML
Www.ufdrh.cn/Article/details/7382396.sHtML
Www.ufdrh.cn/Article/details/6050109.sHtML
Www.ufdrh.cn/Article/details/5595283.sHtML
Www.ufdrh.cn/Article/details/9183125.sHtML
Www.ufdrh.cn/Article/details/9915430.sHtML
Www.ufdrh.cn/Article/details/4642089.sHtML
Www.ufdrh.cn/Article/details/7289889.sHtML
Www.ufdrh.cn/Article/details/4207235.sHtML
Www.ufdrh.cn/Article/details/6896340.sHtML
Www.ufdrh.cn/Article/details/8888721.sHtML
Www.ufdrh.cn/Article/details/4969365.sHtML
Www.ufdrh.cn/Article/details/2926671.sHtML
Www.ufdrh.cn/Article/details/6876184.sHtML
Www.ufdrh.cn/Article/details/7557918.sHtML
Www.ufdrh.cn/Article/details/6835531.sHtML
Www.ufdrh.cn/Article/details/7094650.sHtML
Www.ufdrh.cn/Article/details/1077924.sHtML
Www.ufdrh.cn/Article/details/5836918.sHtML
Www.ufdrh.cn/Article/details/5443993.sHtML
Www.ufdrh.cn/Article/details/5368810.sHtML
Www.ufdrh.cn/Article/details/1283888.sHtML
Www.ufdrh.cn/Article/details/6296931.sHtML
Www.ufdrh.cn/Article/details/1929451.sHtML
Www.ufdrh.cn/Article/details/3216833.sHtML
Www.ufdrh.cn/Article/details/5787502.sHtML
Www.ufdrh.cn/Article/details/6027197.sHtML
Www.ufdrh.cn/Article/details/4808586.sHtML
Www.ufdrh.cn/Article/details/9068057.sHtML
Www.ufdrh.cn/Article/details/6700127.sHtML
Www.ufdrh.cn/Article/details/4734168.sHtML
Www.ufdrh.cn/Article/details/5966823.sHtML
Www.ufdrh.cn/Article/details/8865836.sHtML
Www.ufdrh.cn/Article/details/6254896.sHtML
Www.ufdrh.cn/Article/details/5347308.sHtML
Www.ufdrh.cn/Article/details/6764327.sHtML
Www.ufdrh.cn/Article/details/5662539.sHtML
Www.ufdrh.cn/Article/details/8127239.sHtML
Www.ufdrh.cn/Article/details/1148270.sHtML
Www.ufdrh.cn/Article/details/9468730.sHtML
Www.ufdrh.cn/Article/details/6567535.sHtML
Www.ufdrh.cn/Article/details/5576943.sHtML
Www.ufdrh.cn/Article/details/5576602.sHtML
Www.ufdrh.cn/Article/details/4105825.sHtML
Www.ufdrh.cn/Article/details/1318221.sHtML
Www.ufdrh.cn/Article/details/7231434.sHtML
Www.ufdrh.cn/Article/details/9438789.sHtML
Www.ufdrh.cn/Article/details/8226157.sHtML
Www.ufdrh.cn/Article/details/9791119.sHtML
Www.ufdrh.cn/Article/details/8310976.sHtML
Www.ufdrh.cn/Article/details/5500457.sHtML
Www.ufdrh.cn/Article/details/8670547.sHtML
Www.ufdrh.cn/Article/details/5789747.sHtML
Www.ufdrh.cn/Article/details/2067132.sHtML
Www.ufdrh.cn/Article/details/4760820.sHtML
Www.ufdrh.cn/Article/details/1663177.sHtML
Www.ufdrh.cn/Article/details/7066221.sHtML
Www.ufdrh.cn/Article/details/7113262.sHtML
Www.ufdrh.cn/Article/details/8740127.sHtML
Www.ufdrh.cn/Article/details/6488077.sHtML
Www.ufdrh.cn/Article/details/9911906.sHtML
Www.ufdrh.cn/Article/details/1519518.sHtML
Www.ufdrh.cn/Article/details/8643426.sHtML
Www.ufdrh.cn/Article/details/4767070.sHtML
Www.ufdrh.cn/Article/details/6630415.sHtML
Www.ufdrh.cn/Article/details/3206871.sHtML
Www.ufdrh.cn/Article/details/4227767.sHtML
Www.ufdrh.cn/Article/details/5128976.sHtML
Www.ufdrh.cn/Article/details/9406935.sHtML
Www.ufdrh.cn/Article/details/2951453.sHtML
Www.ufdrh.cn/Article/details/4348694.sHtML
Www.ufdrh.cn/Article/details/9544635.sHtML
Www.ufdrh.cn/Article/details/1909207.sHtML
Www.ufdrh.cn/Article/details/3550052.sHtML
Www.ufdrh.cn/Article/details/4574880.sHtML
Www.ufdrh.cn/Article/details/7559696.sHtML
Www.ufdrh.cn/Article/details/7962856.sHtML
Www.ufdrh.cn/Article/details/4385016.sHtML
Www.ufdrh.cn/Article/details/5782995.sHtML
Www.ufdrh.cn/Article/details/7705745.sHtML
Www.ufdrh.cn/Article/details/6184640.sHtML
Www.ufdrh.cn/Article/details/8038313.sHtML
Www.ufdrh.cn/Article/details/4372919.sHtML
Www.ufdrh.cn/Article/details/9659943.sHtML
Www.ufdrh.cn/Article/details/2990466.sHtML
Www.ufdrh.cn/Article/details/5483854.sHtML
Www.ufdrh.cn/Article/details/3334066.sHtML
Www.ufdrh.cn/Article/details/5070513.sHtML
Www.ufdrh.cn/Article/details/5495542.sHtML
Www.ufdrh.cn/Article/details/8362619.sHtML
Www.ufdrh.cn/Article/details/5223325.sHtML
Www.ufdrh.cn/Article/details/5466412.sHtML
Www.ufdrh.cn/Article/details/1316047.sHtML
Www.ufdrh.cn/Article/details/6235105.sHtML
Www.ufdrh.cn/Article/details/6206314.sHtML
Www.ufdrh.cn/Article/details/3350661.sHtML
Www.ufdrh.cn/Article/details/2415691.sHtML
Www.ufdrh.cn/Article/details/8614173.sHtML
Www.ufdrh.cn/Article/details/9542219.sHtML
Www.ufdrh.cn/Article/details/7318003.sHtML
Www.ufdrh.cn/Article/details/8683485.sHtML
Www.ufdrh.cn/Article/details/4034080.sHtML
Www.ufdrh.cn/Article/details/8986051.sHtML
Www.ufdrh.cn/Article/details/6472576.sHtML
Www.ufdrh.cn/Article/details/1844816.sHtML
Www.ufdrh.cn/Article/details/1729459.sHtML
Www.ufdrh.cn/Article/details/7437498.sHtML
Www.ufdrh.cn/Article/details/9163019.sHtML
Www.ufdrh.cn/Article/details/1918933.sHtML
Www.ufdrh.cn/Article/details/8338095.sHtML
Www.ufdrh.cn/Article/details/6390944.sHtML
Www.ufdrh.cn/Article/details/7278265.sHtML
Www.ufdrh.cn/Article/details/5684829.sHtML
Www.ufdrh.cn/Article/details/1351283.sHtML
Www.ufdrh.cn/Article/details/5789119.sHtML
Www.ufdrh.cn/Article/details/7800605.sHtML
Www.ufdrh.cn/Article/details/8572251.sHtML
Www.ufdrh.cn/Article/details/5765565.sHtML
Www.ufdrh.cn/Article/details/2218444.sHtML
Www.ufdrh.cn/Article/details/6254251.sHtML
Www.ufdrh.cn/Article/details/3141241.sHtML
Www.ufdrh.cn/Article/details/2730614.sHtML
Www.ufdrh.cn/Article/details/2431406.sHtML
Www.ufdrh.cn/Article/details/1440063.sHtML
Www.ufdrh.cn/Article/details/6845368.sHtML
Www.ufdrh.cn/Article/details/6009453.sHtML
Www.ufdrh.cn/Article/details/3948636.sHtML
Www.ufdrh.cn/Article/details/5343111.sHtML
Www.ufdrh.cn/Article/details/6060893.sHtML
Www.ufdrh.cn/Article/details/8181960.sHtML
Www.ufdrh.cn/Article/details/6944909.sHtML
Www.ufdrh.cn/Article/details/5867059.sHtML
Www.ufdrh.cn/Article/details/4544179.sHtML
Www.ufdrh.cn/Article/details/4087579.sHtML
Www.ufdrh.cn/Article/details/3787125.sHtML
Www.ufdrh.cn/Article/details/9637907.sHtML
Www.ufdrh.cn/Article/details/9384954.sHtML
Www.ufdrh.cn/Article/details/9253708.sHtML
Www.ufdrh.cn/Article/details/1595556.sHtML
Www.ufdrh.cn/Article/details/9575148.sHtML
Www.ufdrh.cn/Article/details/8272221.sHtML
Www.ufdrh.cn/Article/details/2251716.sHtML
Www.ufdrh.cn/Article/details/7580017.sHtML
Www.ufdrh.cn/Article/details/1318798.sHtML
Www.ufdrh.cn/Article/details/3579914.sHtML
Www.ufdrh.cn/Article/details/6016311.sHtML
Www.ufdrh.cn/Article/details/6983304.sHtML
Www.ufdrh.cn/Article/details/2318813.sHtML
Www.ufdrh.cn/Article/details/1193039.sHtML
Www.ufdrh.cn/Article/details/8776863.sHtML
Www.ufdrh.cn/Article/details/7633751.sHtML
Www.ufdrh.cn/Article/details/5098337.sHtML
Www.ufdrh.cn/Article/details/4766152.sHtML
Www.ufdrh.cn/Article/details/9166218.sHtML
Www.ufdrh.cn/Article/details/9019361.sHtML
Www.ufdrh.cn/Article/details/9804032.sHtML
Www.ufdrh.cn/Article/details/3427778.sHtML
Www.ufdrh.cn/Article/details/7120809.sHtML
Www.ufdrh.cn/Article/details/6102178.sHtML
Www.ufdrh.cn/Article/details/1860083.sHtML
Www.ufdrh.cn/Article/details/4341124.sHtML
Www.ufdrh.cn/Article/details/3961163.sHtML
Www.ufdrh.cn/Article/details/9580770.sHtML
Www.ufdrh.cn/Article/details/3887014.sHtML
Www.ufdrh.cn/Article/details/4274843.sHtML
Www.ufdrh.cn/Article/details/6468299.sHtML
Www.ufdrh.cn/Article/details/3605117.sHtML
Www.ufdrh.cn/Article/details/9183657.sHtML
Www.ufdrh.cn/Article/details/9920406.sHtML
Www.ufdrh.cn/Article/details/9017391.sHtML
Www.ufdrh.cn/Article/details/2851344.sHtML
Www.ufdrh.cn/Article/details/5343713.sHtML
Www.ufdrh.cn/Article/details/9063825.sHtML
Www.ufdrh.cn/Article/details/1172866.sHtML
Www.ufdrh.cn/Article/details/8743661.sHtML
Www.ufdrh.cn/Article/details/5205319.sHtML
Www.ufdrh.cn/Article/details/3189792.sHtML
Www.ufdrh.cn/Article/details/2533807.sHtML
Www.ufdrh.cn/Article/details/7146631.sHtML
Www.ufdrh.cn/Article/details/1534174.sHtML
Www.ufdrh.cn/Article/details/8401469.sHtML
Www.ufdrh.cn/Article/details/9377525.sHtML
Www.ufdrh.cn/Article/details/9879807.sHtML
Www.ufdrh.cn/Article/details/5703853.sHtML
Www.ufdrh.cn/Article/details/5083212.sHtML
Www.ufdrh.cn/Article/details/5670132.sHtML
Www.ufdrh.cn/Article/details/5318226.sHtML
Www.ufdrh.cn/Article/details/7938751.sHtML
Www.ufdrh.cn/Article/details/2216677.sHtML
Www.ufdrh.cn/Article/details/5171131.sHtML
Www.ufdrh.cn/Article/details/6223575.sHtML
Www.ufdrh.cn/Article/details/2519275.sHtML
Www.ufdrh.cn/Article/details/2028795.sHtML
Www.ufdrh.cn/Article/details/1321176.sHtML
Www.ufdrh.cn/Article/details/3203181.sHtML
Www.ufdrh.cn/Article/details/5008934.sHtML
Www.ufdrh.cn/Article/details/5652065.sHtML
Www.ufdrh.cn/Article/details/8958588.sHtML
Www.ufdrh.cn/Article/details/3001279.sHtML
Www.ufdrh.cn/Article/details/4338926.sHtML
Www.ufdrh.cn/Article/details/5697920.sHtML
Www.ufdrh.cn/Article/details/9737058.sHtML
Www.ufdrh.cn/Article/details/8397904.sHtML
Www.ufdrh.cn/Article/details/8932900.sHtML
Www.ufdrh.cn/Article/details/1293558.sHtML
Www.ufdrh.cn/Article/details/7461798.sHtML
Www.ufdrh.cn/Article/details/8335097.sHtML
Www.ufdrh.cn/Article/details/4928717.sHtML
Www.ufdrh.cn/Article/details/8816584.sHtML
Www.ufdrh.cn/Article/details/7603698.sHtML
Www.ufdrh.cn/Article/details/2815133.sHtML
Www.ufdrh.cn/Article/details/8408223.sHtML
Www.ufdrh.cn/Article/details/2119030.sHtML
Www.ufdrh.cn/Article/details/2850152.sHtML
Www.ufdrh.cn/Article/details/8404975.sHtML
Www.ufdrh.cn/Article/details/1233862.sHtML
Www.ufdrh.cn/Article/details/9682711.sHtML
Www.ufdrh.cn/Article/details/5190902.sHtML
Www.ufdrh.cn/Article/details/7403778.sHtML
Www.ufdrh.cn/Article/details/8393439.sHtML
Www.ufdrh.cn/Article/details/7380912.sHtML
Www.ufdrh.cn/Article/details/3294143.sHtML
Www.ufdrh.cn/Article/details/6929168.sHtML
Www.ufdrh.cn/Article/details/6758181.sHtML
Www.ufdrh.cn/Article/details/1774753.sHtML
Www.ufdrh.cn/Article/details/3582763.sHtML
Www.ufdrh.cn/Article/details/7947999.sHtML
Www.ufdrh.cn/Article/details/8951876.sHtML
Www.ufdrh.cn/Article/details/7538474.sHtML
Www.ufdrh.cn/Article/details/3086419.sHtML
Www.ufdrh.cn/Article/details/3726318.sHtML
Www.ufdrh.cn/Article/details/7219265.sHtML
Www.ufdrh.cn/Article/details/6142966.sHtML
Www.ufdrh.cn/Article/details/5790665.sHtML
Www.ufdrh.cn/Article/details/7929335.sHtML
Www.ufdrh.cn/Article/details/2881998.sHtML
Www.ufdrh.cn/Article/details/6230264.sHtML
Www.ufdrh.cn/Article/details/7432254.sHtML
Www.ufdrh.cn/Article/details/3766403.sHtML
Www.ufdrh.cn/Article/details/7114334.sHtML
Www.ufdrh.cn/Article/details/8989581.sHtML
Www.ufdrh.cn/Article/details/5134454.sHtML
Www.ufdrh.cn/Article/details/1932467.sHtML
Www.ufdrh.cn/Article/details/4840150.sHtML
Www.ufdrh.cn/Article/details/4095936.sHtML
Www.ufdrh.cn/Article/details/6246807.sHtML
Www.ufdrh.cn/Article/details/6487449.sHtML
Www.ufdrh.cn/Article/details/1286809.sHtML
Www.ufdrh.cn/Article/details/6293082.sHtML
Www.ufdrh.cn/Article/details/1775980.sHtML
Www.ufdrh.cn/Article/details/6713457.sHtML
Www.ufdrh.cn/Article/details/7717510.sHtML
Www.ufdrh.cn/Article/details/4622230.sHtML
Www.ufdrh.cn/Article/details/6719979.sHtML
Www.ufdrh.cn/Article/details/6846542.sHtML
Www.ufdrh.cn/Article/details/1048868.sHtML
Www.ufdrh.cn/Article/details/6052670.sHtML
Www.ufdrh.cn/Article/details/8565242.sHtML
Www.ufdrh.cn/Article/details/7769445.sHtML
Www.ufdrh.cn/Article/details/7345264.sHtML
Www.ufdrh.cn/Article/details/3977541.sHtML
Www.ufdrh.cn/Article/details/7304669.sHtML
Www.ufdrh.cn/Article/details/9483394.sHtML
Www.ufdrh.cn/Article/details/8804863.sHtML
Www.ufdrh.cn/Article/details/4462202.sHtML
Www.ufdrh.cn/Article/details/6827802.sHtML
Www.ufdrh.cn/Article/details/7106061.sHtML
Www.ufdrh.cn/Article/details/2555353.sHtML
Www.ufdrh.cn/Article/details/9213838.sHtML
Www.ufdrh.cn/Article/details/8641229.sHtML
Www.ufdrh.cn/Article/details/9087177.sHtML
Www.ufdrh.cn/Article/details/3764008.sHtML
Www.ufdrh.cn/Article/details/8300276.sHtML
Www.ufdrh.cn/Article/details/3720191.sHtML
Www.ufdrh.cn/Article/details/7241463.sHtML
Www.ufdrh.cn/Article/details/2426768.sHtML
Www.ufdrh.cn/Article/details/7037511.sHtML
Www.ufdrh.cn/Article/details/3030667.sHtML
Www.ufdrh.cn/Article/details/2502871.sHtML
Www.ufdrh.cn/Article/details/8548026.sHtML
Www.ufdrh.cn/Article/details/7147721.sHtML
Www.ufdrh.cn/Article/details/3026703.sHtML
Www.ufdrh.cn/Article/details/5890898.sHtML
Www.ufdrh.cn/Article/details/7262320.sHtML
Www.ufdrh.cn/Article/details/7556813.sHtML
Www.ufdrh.cn/Article/details/5082598.sHtML
Www.ufdrh.cn/Article/details/2012866.sHtML
Www.ufdrh.cn/Article/details/5725659.sHtML
Www.ufdrh.cn/Article/details/5980043.sHtML
Www.ufdrh.cn/Article/details/6052929.sHtML
Www.ufdrh.cn/Article/details/5784645.sHtML
Www.ufdrh.cn/Article/details/2881908.sHtML
Www.ufdrh.cn/Article/details/8356787.sHtML
Www.ufdrh.cn/Article/details/7004831.sHtML
Www.ufdrh.cn/Article/details/9686643.sHtML
Www.ufdrh.cn/Article/details/8170544.sHtML
Www.ufdrh.cn/Article/details/4066024.sHtML
Www.ufdrh.cn/Article/details/7686816.sHtML
Www.ufdrh.cn/Article/details/5340660.sHtML
Www.ufdrh.cn/Article/details/6576749.sHtML
Www.ufdrh.cn/Article/details/3988772.sHtML
Www.ufdrh.cn/Article/details/5888443.sHtML
Www.ufdrh.cn/Article/details/3758213.sHtML
Www.ufdrh.cn/Article/details/7001997.sHtML
Www.ufdrh.cn/Article/details/1850917.sHtML
Www.ufdrh.cn/Article/details/6673396.sHtML
Www.ufdrh.cn/Article/details/6290125.sHtML
Www.ufdrh.cn/Article/details/6068298.sHtML
Www.ufdrh.cn/Article/details/9711470.sHtML
Www.ufdrh.cn/Article/details/3496704.sHtML
Www.ufdrh.cn/Article/details/9916281.sHtML
Www.ufdrh.cn/Article/details/9780185.sHtML
Www.ufdrh.cn/Article/details/2416363.sHtML
Www.ufdrh.cn/Article/details/7731989.sHtML
Www.ufdrh.cn/Article/details/4430914.sHtML
Www.ufdrh.cn/Article/details/4165381.sHtML
Www.ufdrh.cn/Article/details/8227674.sHtML
Www.ufdrh.cn/Article/details/1918332.sHtML
Www.ufdrh.cn/Article/details/5990260.sHtML
Www.ufdrh.cn/Article/details/3430119.sHtML
Www.ufdrh.cn/Article/details/6486947.sHtML
Www.ufdrh.cn/Article/details/5594727.sHtML
Www.ufdrh.cn/Article/details/5059771.sHtML
Www.ufdrh.cn/Article/details/1314774.sHtML
Www.ufdrh.cn/Article/details/4969969.sHtML
Www.ufdrh.cn/Article/details/7401680.sHtML
Www.ufdrh.cn/Article/details/5312566.sHtML
Www.ufdrh.cn/Article/details/6236591.sHtML
Www.ufdrh.cn/Article/details/4751518.sHtML
Www.ufdrh.cn/Article/details/1103361.sHtML
Www.ufdrh.cn/Article/details/7725216.sHtML
Www.ufdrh.cn/Article/details/8911588.sHtML
Www.ufdrh.cn/Article/details/6222343.sHtML
Www.ufdrh.cn/Article/details/2338966.sHtML
Www.ufdrh.cn/Article/details/4204542.sHtML
Www.ufdrh.cn/Article/details/9885409.sHtML
Www.ufdrh.cn/Article/details/1045014.sHtML
Www.ufdrh.cn/Article/details/9212175.sHtML
Www.ufdrh.cn/Article/details/4439174.sHtML
Www.ufdrh.cn/Article/details/9806810.sHtML
Www.ufdrh.cn/Article/details/3764477.sHtML
Www.ufdrh.cn/Article/details/3855284.sHtML
Www.ufdrh.cn/Article/details/1994798.sHtML
Www.ufdrh.cn/Article/details/7704618.sHtML
Www.ufdrh.cn/Article/details/6464525.sHtML
Www.ufdrh.cn/Article/details/4234435.sHtML