├── README.md ├── data_loader.py ├── evaluation.py ├── hg.py ├── images ├── card_keypoints.png ├── data1.png ├── data2.png ├── f1.png ├── hour.png ├── result1.png └── result2.png ├── images_kp ├── im_0.jpg ├── im_0.json ├── im_1.jpg ├── im_1.json ├── im_102.jpg ├── im_102.json ├── im_103.jpg ├── im_103.json ├── im_104.jpg ├── im_104.json ├── im_105.jpg ├── im_105.json ├── im_106.jpg ├── im_106.json ├── im_108.jpg ├── im_108.json ├── im_11.jpg ├── im_11.json ├── im_115.jpg ├── im_115.json ├── im_116.jpg ├── im_116.json ├── im_12.jpg ├── im_12.json ├── im_120.jpg ├── im_120.json ├── im_124.jpg ├── im_124.json ├── im_125.jpg ├── im_125.json ├── im_126.jpg ├── im_126.json ├── im_128.jpg ├── im_128.json ├── im_129.jpg ├── im_129.json ├── im_131.jpg ├── im_131.json ├── im_132.jpg ├── im_132.json ├── im_133.jpg ├── im_133.json ├── im_135.jpg ├── im_135.json ├── im_137.jpg ├── im_137.json ├── im_138.jpg ├── im_138.json ├── im_139.jpg ├── im_139.json ├── im_14.jpg ├── im_14.json ├── im_141.jpg ├── im_141.json ├── im_143.jpg ├── im_143.json ├── im_15.jpg ├── im_15.json ├── im_16.jpg ├── im_16.json ├── im_17.jpg ├── im_17.json ├── im_18.jpg ├── im_18.json ├── im_19.jpg ├── im_19.json ├── im_2.jpg ├── im_2.json ├── im_20.jpg ├── im_20.json ├── im_200.jpg ├── im_200.json ├── im_201.jpg ├── im_201.json ├── im_202.jpg ├── im_202.json ├── im_203.jpg ├── im_203.json ├── im_204.jpg ├── im_204.json ├── im_205.jpg ├── im_205.json ├── im_206.jpg ├── im_206.json ├── im_207.jpg ├── im_207.json ├── im_208.jpg ├── im_208.json ├── im_209.jpg ├── im_209.json ├── im_21.jpg ├── im_21.json ├── im_210.jpg ├── im_210.json ├── im_211.jpg ├── im_211.json ├── im_212.jpg ├── im_212.json ├── im_213.jpg ├── im_213.json ├── im_214.jpg ├── im_214.json ├── im_215.jpg ├── im_215.json ├── im_216.jpg ├── im_216.json ├── im_217.jpg ├── im_217.json ├── im_218.jpg ├── im_218.json ├── im_219.jpg ├── im_219.json ├── im_220.jpg ├── im_220.json ├── im_221.jpg ├── im_221.json ├── im_222.jpg ├── im_222.json ├── im_223.jpg ├── im_223.json ├── im_224.jpg ├── im_224.json ├── im_225.jpg ├── im_225.json ├── im_226.jpg ├── im_226.json ├── im_227.jpg ├── im_227.json ├── im_228.jpg ├── im_228.json ├── im_229.jpg ├── im_229.json ├── im_230.jpg ├── im_230.json ├── im_231.jpg ├── im_231.json ├── im_232.jpg ├── im_232.json ├── im_233.jpg ├── im_233.json ├── im_234.jpg ├── im_234.json ├── im_235.jpg ├── im_235.json ├── im_236.jpg ├── im_236.json ├── im_237.jpg ├── im_237.json ├── im_238.jpg ├── im_238.json ├── im_239.jpg ├── im_239.json ├── im_24.jpg ├── im_24.json ├── im_240.jpg ├── im_240.json ├── im_241.jpg ├── im_241.json ├── im_242.jpg ├── im_242.json ├── im_243.jpg ├── im_243.json ├── im_244.jpg ├── im_244.json ├── im_245.jpg ├── im_245.json ├── im_246.jpg ├── im_246.json ├── im_247.jpg ├── im_247.json ├── im_248.jpg ├── im_248.json ├── im_249.jpg ├── im_249.json ├── im_250.jpg ├── im_250.json ├── im_251.jpg ├── im_251.json ├── im_252.jpg ├── im_252.json ├── im_253.jpg ├── im_253.json ├── im_254.jpg ├── im_254.json ├── im_255.jpg ├── im_255.json ├── im_256.jpg ├── im_256.json ├── im_257.jpg ├── im_257.json ├── im_258.jpg ├── im_258.json ├── im_259.jpg ├── im_259.json ├── im_260.jpg ├── im_260.json ├── im_261.jpg ├── im_261.json ├── im_262.jpg ├── im_262.json ├── im_263.jpg ├── im_263.json ├── im_264.jpg ├── im_264.json ├── im_265.jpg ├── im_265.json ├── im_266.jpg ├── im_266.json ├── im_267.jpg ├── im_267.json ├── im_268.jpg ├── im_268.json ├── im_269.jpg ├── im_269.json ├── im_270.jpg ├── im_270.json ├── im_271.jpg ├── im_271.json ├── im_272.jpg ├── im_272.json ├── im_273.jpg ├── im_273.json ├── im_274.jpg ├── im_274.json ├── im_275.jpg ├── im_275.json ├── im_276.jpg ├── im_276.json ├── im_277.jpg ├── im_277.json ├── im_28.jpg ├── im_28.json ├── im_3.jpg ├── im_3.json ├── im_30.jpg ├── im_30.json ├── im_300.jpg ├── im_300.json ├── im_301.jpg ├── im_301.json ├── im_302.jpg ├── im_302.json ├── im_303.jpg ├── im_303.json ├── im_304.jpg ├── im_304.json ├── im_305.jpg ├── im_305.json ├── im_306.jpg ├── im_306.json ├── im_307.jpg ├── im_307.json ├── im_308.jpg ├── im_308.json ├── im_309.jpg ├── im_309.json ├── im_31.jpg ├── im_31.json ├── im_310.jpg ├── im_310.json ├── im_311.jpg ├── im_311.json ├── im_312.jpg ├── im_312.json ├── im_313.jpg ├── im_313.json ├── im_314.jpg ├── im_314.json ├── im_315.jpg ├── im_315.json ├── im_316.jpg ├── im_316.json ├── im_317.jpg ├── im_317.json ├── im_318.jpg ├── im_318.json ├── im_319.jpg ├── im_319.json ├── im_32.jpg ├── im_32.json ├── im_320.jpg ├── im_320.json ├── im_321.jpg ├── im_321.json ├── im_322.jpg ├── im_322.json ├── im_323.jpg ├── im_323.json ├── im_324.jpg ├── im_324.json ├── im_325.jpg ├── im_325.json ├── im_326.jpg ├── im_326.json ├── im_327.jpg ├── im_327.json ├── im_328.jpg ├── im_328.json ├── im_329.jpg ├── im_329.json ├── im_330.jpg ├── im_330.json ├── im_331.jpg ├── im_331.json ├── im_332.jpg ├── im_332.json ├── im_333.jpg ├── im_333.json ├── im_334.jpg ├── im_334.json ├── im_335.jpg ├── im_335.json ├── im_336.jpg ├── im_336.json ├── im_337.jpg ├── im_337.json ├── im_338.jpg ├── im_338.json ├── im_339.jpg ├── im_339.json ├── im_34.jpg ├── im_34.json ├── im_340.jpg ├── im_340.json ├── im_341.jpg ├── im_341.json ├── im_342.jpg ├── im_342.json ├── im_343.jpg ├── im_343.json ├── im_344.jpg ├── im_344.json ├── im_345.jpg ├── im_345.json ├── im_346.jpg ├── im_346.json ├── im_347.jpg ├── im_347.json ├── im_348.jpg ├── im_348.json ├── im_349.jpg ├── im_349.json ├── im_35.jpg ├── im_35.json ├── im_350.jpg ├── im_350.json ├── im_351.jpg ├── im_351.json ├── im_352.jpg ├── im_352.json ├── im_353.jpg ├── im_353.json ├── im_354.jpg ├── im_354.json ├── im_355.jpg ├── im_355.json ├── im_356.jpg ├── im_356.json ├── im_357.jpg ├── im_357.json ├── im_358.jpg ├── im_358.json ├── im_359.jpg ├── im_359.json ├── im_36.jpg ├── im_36.json ├── im_360.jpg ├── im_360.json ├── im_361.jpg ├── im_361.json ├── im_362.jpg ├── im_362.json ├── im_363.jpg ├── im_363.json ├── im_364.jpg ├── im_364.json ├── im_365.jpg ├── im_365.json ├── im_366.jpg ├── im_366.json ├── im_367.jpg ├── im_367.json ├── im_368.jpg ├── im_368.json ├── im_369.jpg ├── im_369.json ├── im_37.jpg ├── im_37.json ├── im_370.jpg ├── im_370.json ├── im_371.jpg ├── im_371.json ├── im_372.jpg ├── im_372.json ├── im_373.jpg ├── im_373.json ├── im_374.jpg ├── im_374.json ├── im_375.jpg ├── im_375.json ├── im_376.jpg ├── im_376.json ├── im_377.jpg ├── im_377.json ├── im_378.jpg ├── im_378.json ├── im_38.jpg ├── im_38.json ├── im_39.jpg ├── im_39.json ├── im_40.jpg ├── im_40.json ├── im_400.jpg ├── im_400.json ├── im_401.jpg ├── im_401.json ├── im_402.jpg ├── im_402.json ├── im_403.jpg ├── im_403.json ├── im_404.jpg ├── im_404.json ├── im_405.jpg ├── im_405.json ├── im_406.jpg ├── im_406.json ├── im_407.jpg ├── im_407.json ├── im_408.jpg ├── im_408.json ├── im_409.jpg ├── im_409.json ├── im_41.jpg ├── im_41.json ├── im_410.jpg ├── im_410.json ├── im_411.jpg ├── im_411.json ├── im_412.jpg ├── im_412.json ├── im_413.jpg ├── im_413.json ├── im_414.jpg ├── im_414.json ├── im_415.jpg ├── im_415.json ├── im_416.jpg ├── im_416.json ├── im_417.jpg ├── im_417.json ├── im_418.jpg ├── im_418.json ├── im_419.jpg ├── im_419.json ├── im_42.jpg ├── im_42.json ├── im_420.jpg ├── im_420.json ├── im_421.jpg ├── im_421.json ├── im_422.jpg ├── im_422.json ├── im_423.jpg ├── im_423.json ├── im_424.jpg ├── im_424.json ├── im_425.jpg ├── im_425.json ├── im_426.jpg ├── im_426.json ├── im_427.jpg ├── im_427.json ├── im_428.jpg ├── im_428.json ├── im_429.jpg ├── im_429.json ├── im_430.jpg ├── im_430.json ├── im_431.jpg ├── im_431.json ├── im_432.jpg ├── im_432.json ├── im_433.jpg ├── im_433.json ├── im_434.jpg ├── im_434.json ├── im_435.jpg ├── im_435.json ├── im_436.jpg ├── im_436.json ├── im_437.jpg ├── im_437.json ├── im_438.jpg ├── im_438.json ├── im_439.jpg ├── im_439.json ├── im_44.jpg ├── im_44.json ├── im_440.jpg ├── im_440.json ├── im_441.jpg ├── im_441.json ├── im_442.jpg ├── im_442.json ├── im_443.jpg ├── im_443.json ├── im_444.jpg ├── im_444.json ├── im_445.jpg ├── im_445.json ├── im_446.jpg ├── im_446.json ├── im_447.jpg ├── im_447.json ├── im_448.jpg ├── im_448.json ├── im_449.jpg ├── im_449.json ├── im_450.jpg ├── im_450.json ├── im_451.jpg ├── im_451.json ├── im_452.jpg ├── im_452.json ├── im_453.jpg ├── im_453.json ├── im_454.jpg ├── im_454.json ├── im_455.jpg ├── im_455.json ├── im_456.jpg ├── im_456.json ├── im_457.jpg ├── im_457.json ├── im_458.jpg ├── im_458.json ├── im_459.jpg ├── im_459.json ├── im_460.jpg ├── im_460.json ├── im_461.jpg ├── im_461.json ├── im_462.jpg ├── im_462.json ├── im_463.jpg ├── im_463.json ├── im_464.jpg ├── im_464.json ├── im_465.jpg ├── im_465.json ├── im_466.jpg ├── im_466.json ├── im_467.jpg ├── im_467.json ├── im_468.jpg ├── im_468.json ├── im_469.jpg ├── im_469.json ├── im_47.jpg ├── im_47.json ├── im_470.jpg ├── im_470.json ├── im_471.jpg ├── im_471.json ├── im_472.jpg ├── im_472.json ├── im_473.jpg ├── im_473.json ├── im_474.jpg ├── im_474.json ├── im_475.jpg ├── im_475.json ├── im_476.jpg ├── im_476.json ├── im_477.jpg ├── im_477.json ├── im_478.jpg ├── im_478.json ├── im_479.jpg ├── im_479.json ├── im_48.jpg ├── im_48.json ├── im_480.jpg ├── im_480.json ├── im_481.jpg ├── im_481.json ├── im_482.jpg ├── im_482.json ├── im_483.jpg ├── im_483.json ├── im_484.jpg ├── im_484.json ├── im_485.jpg ├── im_485.json ├── im_486.jpg ├── im_486.json ├── im_487.jpg ├── im_487.json ├── im_488.jpg ├── im_488.json ├── im_489.jpg ├── im_489.json ├── im_49.jpg ├── im_49.json ├── im_490.jpg ├── im_490.json ├── im_491.jpg ├── im_491.json ├── im_492.jpg ├── im_492.json ├── im_493.jpg ├── im_493.json ├── im_494.jpg ├── im_494.json ├── im_495.jpg ├── im_495.json ├── im_496.jpg ├── im_496.json ├── im_497.jpg ├── im_497.json ├── im_498.jpg ├── im_498.json ├── im_499.jpg ├── im_499.json ├── im_5.jpg ├── im_5.json ├── im_500.jpg ├── im_500.json ├── im_501.jpg ├── im_501.json ├── im_502.jpg ├── im_502.json ├── im_503.jpg ├── im_503.json ├── im_504.jpg ├── im_504.json ├── im_505.jpg ├── im_505.json ├── im_506.jpg ├── im_506.json ├── im_507.jpg ├── im_507.json ├── im_508.jpg ├── im_508.json ├── im_509.jpg ├── im_509.json ├── im_510.jpg ├── im_510.json ├── im_511.jpg ├── im_511.json ├── im_512.jpg ├── im_512.json ├── im_513.jpg ├── im_513.json ├── im_514.jpg ├── im_514.json ├── im_515.jpg ├── im_515.json ├── im_516.jpg ├── im_516.json ├── im_517.jpg ├── im_517.json ├── im_518.jpg ├── im_518.json ├── im_519.jpg ├── im_519.json ├── im_520.jpg ├── im_520.json ├── im_521.jpg ├── im_521.json ├── im_522.jpg ├── im_522.json ├── im_523.jpg ├── im_523.json ├── im_524.jpg ├── im_524.json ├── im_525.jpg ├── im_525.json ├── im_526.jpg ├── im_526.json ├── im_527.jpg ├── im_527.json ├── im_528.jpg ├── im_528.json ├── im_529.jpg ├── im_529.json ├── im_53.jpg ├── im_53.json ├── im_530.jpg ├── im_530.json ├── im_531.jpg ├── im_531.json ├── im_532.jpg ├── im_532.json ├── im_533.jpg ├── im_533.json ├── im_534.jpg ├── im_534.json ├── im_535.jpg ├── im_535.json ├── im_536.jpg ├── im_536.json ├── im_537.jpg ├── im_537.json ├── im_538.jpg ├── im_538.json ├── im_539.jpg ├── im_539.json ├── im_54.jpg ├── im_54.json ├── im_540.jpg ├── im_540.json ├── im_541.jpg ├── im_541.json ├── im_542.jpg ├── im_542.json ├── im_543.jpg ├── im_543.json ├── im_544.jpg ├── im_544.json ├── im_545.jpg ├── im_545.json ├── im_546.jpg ├── im_546.json ├── im_547.jpg ├── im_547.json ├── im_548.jpg ├── im_548.json ├── im_549.jpg ├── im_549.json ├── im_55.jpg ├── im_55.json ├── im_550.jpg ├── im_550.json ├── im_551.jpg ├── im_551.json ├── im_552.jpg ├── im_552.json ├── im_553.jpg ├── im_553.json ├── im_554.jpg ├── im_554.json ├── im_555.jpg ├── im_555.json ├── im_556.jpg ├── im_556.json ├── im_557.jpg ├── im_557.json ├── im_558.jpg ├── im_558.json ├── im_56.jpg ├── im_56.json ├── im_57.jpg ├── im_57.json ├── im_58.jpg ├── im_58.json ├── im_59.jpg ├── im_59.json ├── im_60.jpg ├── im_60.json ├── im_61.jpg ├── im_61.json ├── im_63.jpg ├── im_63.json ├── im_65.jpg ├── im_65.json ├── im_67.jpg ├── im_67.json ├── im_68.jpg ├── im_68.json ├── im_7.jpg ├── im_7.json ├── im_70.jpg ├── im_70.json ├── im_72.jpg ├── im_72.json ├── im_73.jpg ├── im_73.json ├── im_74.jpg ├── im_74.json ├── im_75.jpg ├── im_75.json ├── im_76.jpg ├── im_76.json ├── im_77.jpg ├── im_77.json ├── im_78.jpg ├── im_78.json ├── im_80.jpg ├── im_80.json ├── im_81.jpg ├── im_81.json ├── im_82.jpg ├── im_82.json ├── im_83.jpg ├── im_83.json ├── im_84.jpg ├── im_84.json ├── im_85.jpg ├── im_85.json ├── im_86.jpg ├── im_86.json ├── im_88.jpg ├── im_88.json ├── im_89.jpg ├── im_89.json ├── im_9.jpg ├── im_9.json ├── im_90.jpg ├── im_90.json ├── im_91.jpg ├── im_91.json ├── im_92.jpg ├── im_92.json ├── im_93.jpg ├── im_93.json ├── im_95.jpg ├── im_95.json ├── im_96.jpg ├── im_96.json ├── im_97.jpg ├── im_97.json ├── im_98.jpg ├── im_98.json ├── im_99.jpg └── im_99.json ├── kd_epoch_519_model.ckpt ├── models.py ├── test.py ├── train.py └── visualize.py /README.md: -------------------------------------------------------------------------------- 1 | # KeyPointsDetection 关键点识别网络 2 | 程序编写与测试:刘云飞 3 | 4 | 建议与合作联系邮箱:[liuyunfei.1314@163.com](mailto:liuyunfei.1314@163.com) 5 | 6 | #### 0x00 语言和工具 7 | 8 | 框架:PyTorch 1.2.0 9 | 10 | 语言:Python 3.7 11 | 12 | 在ubuntu 18.03测试通过 13 | 14 | #### 0x01 数据准备 15 | 16 | 标注数据类似下面,512x512 pixel 17 | 18 | 图片1 19 | 20 | 图片2 21 | 22 | 图片2 23 | 24 | 增加上2D高斯 点云 的Heatmap图如下 25 | 26 | ![热点图](images/card_keypoints.png) 27 | 28 | #### 0x02 训练 29 | 30 | 训练使用Houeglass模型,128*128进行训练 31 | 32 | 基本结构如下,漏斗式结构 33 | 34 | ![网络结构图](images/hour.png) 35 | 36 | #### 0x03 结果 37 | 38 | 下图左侧为检测到的四个点的heatmap,右侧为加上原图的效果,可以看到效果还不错~ 39 | 40 | 结果图例1 41 | 42 | ![结果1图](images/result1.png) 43 | 44 | 结果图例2 45 | 46 | ![结果2图](images/result2.png) 47 | 48 | 49 | 50 | #### 0x04 后续 51 | 52 | 人体关键点检测 53 | 54 | 人脸关键点检测 55 | 56 | -------------------------------------------------------------------------------- /data_loader.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | import pandas as pd 4 | import numpy as np 5 | from torch.utils.data import Dataset,DataLoader 6 | import copy 7 | import glob 8 | import json 9 | import cv2 10 | from PIL import Image 11 | import matplotlib.pyplot as plt 12 | 13 | # from train import config 14 | 15 | 16 | def plot_sample(x, y, axis): 17 | """ 18 | 19 | :param x: (9216,) 20 | :param y: (4,2) 21 | :param axis: 22 | :return: 23 | """ 24 | img = x.reshape(128, 128) 25 | axis.imshow(img, cmap='gray') 26 | axis.scatter(y[:,0], y[:,1], marker='x', s=10) 27 | 28 | def plot_demo(X,y): 29 | fig = plt.figure(figsize=(6, 6)) 30 | fig.subplots_adjust( 31 | left=0, right=1, bottom=0, top=1, hspace=0.05, wspace=0.05) 32 | 33 | for i in range(16): 34 | ax = fig.add_subplot(4, 4, i + 1, xticks=[], yticks=[]) 35 | plot_sample(X[i], y[i], ax) 36 | 37 | plt.show() 38 | 39 | 40 | class KFDataset(Dataset): 41 | def __init__(self,config,X=None,gts=None): 42 | """ 43 | 44 | :param X: (N,128*128) 45 | :param gts: (N,4,2) 46 | """ 47 | self.__X = X 48 | self.__gts = gts 49 | self.__sigma = config['sigma'] 50 | self.__debug_vis = config['debug_vis'] 51 | self.__fname = config['fname'] 52 | self.__is_test = config['is_test'] 53 | fnames = glob.glob(config['fname']+"*.jpg") 54 | self.__X = fnames 55 | gtnames = [name.replace("jpg","json") for name in fnames] 56 | self.__gts = gtnames 57 | 58 | 59 | 60 | def __len__(self): 61 | return len(self.__X) 62 | 63 | def __getitem__(self, item): 64 | H,W = 128,128 65 | x_name = self.__X[item] 66 | x = Image.open(x_name) 67 | x = x.resize((128,128),Image.ANTIALIAS) 68 | 69 | gt_name = self.__gts[item] 70 | gt = [] 71 | with open(gt_name,'r') as f: 72 | gt_json = json.load(f) 73 | gt.append(gt_json["shapes"][0]["points"][0]) 74 | gt.append(gt_json["shapes"][1]["points"][0]) 75 | gt.append(gt_json["shapes"][2]["points"][0]) 76 | gt.append(gt_json["shapes"][3]["points"][0]) 77 | gt = np.array(gt) 78 | gt = gt/4.0 79 | 80 | # gt 4x2, H 256, W 256 81 | # stride = 1 82 | heatmaps = self._putGaussianMaps(gt,H,W,1,self.__sigma) 83 | 84 | x = np.array(x) 85 | 86 | if self.__debug_vis == True: 87 | for i in range(heatmaps.shape[0]): 88 | x = cv2.cvtColor(x,cv2.COLOR_RGB2GRAY) 89 | img = copy.deepcopy(x).astype(np.uint8).reshape((H,W)) 90 | self.visualize_heatmap_target(img,copy.deepcopy(heatmaps),1) 91 | 92 | x = x.reshape((3,128,128)).astype(np.float32) 93 | x = x / 255. 94 | heatmaps = heatmaps.astype(np.float32) 95 | return x,heatmaps,gt 96 | 97 | def _putGaussianMap(self, center, visible_flag, crop_size_y, crop_size_x, stride, sigma): 98 | """ 99 | 根据一个中心点,生成一个heatmap 100 | :param center: 101 | :return: 102 | """ 103 | grid_y = int(crop_size_y / stride) # 256/1 104 | grid_x = int(crop_size_x / stride) # 256/1 105 | if visible_flag == False: 106 | return np.zeros((grid_y,grid_x)) 107 | start = stride / 2.0 - 0.5 108 | y_range = [i for i in range(grid_y)] 109 | x_range = [i for i in range(grid_x)] 110 | xx, yy = np.meshgrid(x_range, y_range) 111 | xx = xx * stride + start 112 | yy = yy * stride + start 113 | d2 = (xx - center[0]) ** 2 + (yy - center[1]) ** 2 114 | exponent = d2 / 2.0 / sigma / sigma 115 | heatmap = np.exp(-exponent) 116 | return heatmap 117 | 118 | def _putGaussianMaps(self,keypoints,crop_size_y, crop_size_x, stride, sigma): 119 | """ 120 | 121 | :param keypoints: (4,2) 122 | :param crop_size_y: int 128 123 | :param crop_size_x: int 128 124 | :param stride: int 1 125 | :param sigma: float 1e-4 126 | :return: 127 | """ 128 | all_keypoints = keypoints #4,2 129 | point_num = all_keypoints.shape[0] # 4 130 | heatmaps_this_img = [] 131 | for k in range(point_num): # 0,1,2,3 132 | flag = ~np.isnan(all_keypoints[k,0]) 133 | heatmap = self._putGaussianMap(all_keypoints[k],flag,crop_size_y,crop_size_x,stride,sigma) 134 | heatmap = heatmap[np.newaxis,...] 135 | heatmaps_this_img.append(heatmap) 136 | heatmaps_this_img = np.concatenate(heatmaps_this_img,axis=0) # (num_joint,crop_size_y/stride,crop_size_x/stride) 137 | return heatmaps_this_img 138 | 139 | def visualize_heatmap_target(self,oriImg,heatmap,stride): 140 | plt.subplot(2,2,1) 141 | plt.imshow(oriImg) 142 | plt.imshow(heatmap[0], alpha=.5) 143 | plt.subplot(2,2,2) 144 | plt.imshow(oriImg) 145 | plt.imshow(heatmap[1], alpha=.5) 146 | plt.subplot(2,2,3) 147 | plt.imshow(oriImg) 148 | plt.imshow(heatmap[2], alpha=.5) 149 | plt.subplot(2,2,4) 150 | plt.imshow(oriImg) 151 | plt.imshow(heatmap[3], alpha=.5) 152 | plt.show() 153 | 154 | if __name__ == '__main__': 155 | from train import config 156 | dataset = KFDataset(config) 157 | 158 | dataLoader = DataLoader(dataset=dataset,batch_size=8,shuffle=True) 159 | for i, (x, y ,gt) in enumerate(dataLoader): 160 | print(x.size()) 161 | print(y.size()) 162 | print(gt.size()) 163 | -------------------------------------------------------------------------------- /evaluation.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | import torch 4 | import numpy as np 5 | from torch.utils.data import DataLoader 6 | from torch.autograd import Variable 7 | import matplotlib.pyplot as plt 8 | 9 | from data_loader import KFDataset 10 | from models import KFSGNet 11 | from train import config,get_peak_points,get_mse 12 | 13 | 14 | def demo(img,heatmaps): 15 | """ 16 | 17 | :param img: (128,128) 18 | :param heatmaps: () 19 | :return: 20 | """ 21 | # img = img.reshape(96, 96) 22 | # axis.imshow(img, cmap='gray') 23 | # axis.scatter(y[:, 0], y[:, 1], marker='x', s=10) 24 | pass 25 | 26 | def evaluate(): 27 | # 加载模型 28 | net = KFSGNet() 29 | net.float().cuda() 30 | net.eval() 31 | #if (config['checkout'] != ''): 32 | # net.load_state_dict(torch.load(config['checkout'])) 33 | 34 | net.load_state_dict(torch.load("kd_epoch_519_model.ckpt")) 35 | dataset = KFDataset(config) 36 | 37 | dataLoader = DataLoader(dataset,1) 38 | for i,(images,_,gts) in enumerate(dataLoader): 39 | images = Variable(images).float().cuda() 40 | 41 | pred_heatmaps = net.forward(images) 42 | print(pred_heatmaps.cpu().data.numpy()) 43 | demo_img = images[0].cpu().data.numpy().reshape((128,128,3)) 44 | demo_img = (demo_img * 255.).astype(np.uint8) 45 | demo_heatmaps = pred_heatmaps[0].cpu().data.numpy()[np.newaxis,...] 46 | demo_pred_poins = get_peak_points(demo_heatmaps)[0] # (4,2) 47 | 48 | plt.figure(1) 49 | plt.subplot(2,2,1) 50 | plt.imshow(demo_heatmaps[0][0],alpha=.5) 51 | plt.subplot(2,2,2) 52 | plt.imshow(demo_heatmaps[0][1],alpha=.5) 53 | plt.subplot(2,2,3) 54 | plt.imshow(demo_heatmaps[0][2],alpha=.5) 55 | plt.subplot(2,2,4) 56 | plt.imshow(demo_heatmaps[0][3],alpha=.5) 57 | 58 | 59 | plt.figure(2) 60 | plt.imshow(demo_img,cmap='gray') 61 | plt.scatter(demo_pred_poins[:,0],demo_pred_poins[:,1]) 62 | plt.text(demo_pred_poins[0,0],demo_pred_poins[0,1],"P1",color='r') 63 | plt.text(demo_pred_poins[1,0],demo_pred_poins[1,1],"P2",color='r') 64 | plt.text(demo_pred_poins[2,0],demo_pred_poins[2,1],"P3",color='r') 65 | plt.text(demo_pred_poins[3,0],demo_pred_poins[3,1],"P4",color='r') 66 | 67 | plt.show() 68 | 69 | # loss = get_mse(demo_pred_poins[np.newaxis,...],gts) 70 | 71 | if __name__ == '__main__': 72 | evaluate() 73 | -------------------------------------------------------------------------------- /hg.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | """ pytorch实现:stacked hourglass network architecture""" 3 | 4 | import torch 5 | import torch.nn as nn 6 | from torch.nn import UpsamplingNearest2d,Upsample 7 | from torch.autograd import Variable 8 | 9 | class StackedHourGlass(nn.Module): 10 | def __init__(self,nFeats=256,nStack=8,nJoints=18): 11 | """ 12 | 输入: 256^2 13 | """ 14 | super(StackedHourGlass,self).__init__() 15 | self._nFeats = nFeats 16 | self._nStack = nStack 17 | self._nJoints = nJoints 18 | self.conv1 = nn.Conv2d(3,64,7,2,3) 19 | self.bn1 = nn.BatchNorm2d(64) 20 | self.relu1 = nn.ReLU(inplace=True) 21 | self.res1 = Residual(64,128) 22 | self.pool1 = nn.MaxPool2d(2,2) 23 | self.res2 = Residual(128,128) 24 | self.res3 = Residual(128,self._nFeats) #cmd:option('-nFeats', 256, 'Number of features in the hourglass') 25 | self._init_stacked_hourglass() 26 | 27 | def _init_stacked_hourglass(self): 28 | for i in range(self._nStack): 29 | setattr(self,'hg'+str(i),HourGlass(4,self._nFeats)) 30 | setattr(self,'hg'+str(i)+'_res1',Residual(self._nFeats,self._nFeats)) 31 | setattr(self,'hg'+str(i)+'_lin1',Lin(self._nFeats,self._nFeats)) 32 | setattr(self,'hg'+str(i)+'_conv_pred',nn.Conv2d(self._nFeats,self._nJoints,1)) 33 | if i < self._nStack - 1: 34 | setattr(self,'hg'+str(i)+'_conv1',nn.Conv2d(self._nFeats,self._nFeats,1)) 35 | setattr(self,'hg'+str(i)+'_conv2',nn.Conv2d(self._nJoints,self._nFeats,1)) 36 | 37 | def forward(self,x): 38 | # 初始图像处理 39 | x = self.relu1(self.bn1(self.conv1(x))) #(n,64,128,128) 40 | x = self.res1(x) #(n,128,128,128) 41 | x = self.pool1(x) #(n,128,64,64) 42 | x = self.res2(x) #(n,128,64,64) 43 | x = self.res3(x) #(n,256,64,64) 44 | 45 | out = [] 46 | inter = x 47 | 48 | for i in range(self._nStack): #cmd:option('-nStack', 8, 'Number of hourglasses to stack') 49 | hg = eval('self.hg'+str(i))(inter) 50 | # Residual layers at output resolution 51 | ll = hg 52 | ll = eval('self.hg'+str(i)+'_res1')(ll) 53 | # Linear layer to produce first set of predictions 54 | ll = eval('self.hg'+str(i)+'_lin1')(ll) 55 | # Predicted heatmaps 56 | tmpOut = eval('self.hg'+str(i)+'_conv_pred')(ll) 57 | out.append(tmpOut) 58 | # Add predictions back 59 | if i < self._nStack - 1: 60 | ll_ = eval('self.hg'+str(i)+'_conv1')(ll) 61 | tmpOut_ = eval('self.hg'+str(i)+'_conv2')(tmpOut) 62 | inter = inter + ll_ + tmpOut_ 63 | return out 64 | 65 | class HourGlass(nn.Module): 66 | """不改变特征图的高宽""" 67 | def __init__(self,n=4,f=256): 68 | """ 69 | :param n: hourglass模块的层级数目 70 | :param f: hourglass模块中的特征图数量 71 | :return: 72 | """ 73 | super(HourGlass,self).__init__() 74 | self._n = n 75 | self._f = f 76 | self._init_layers(self._n,self._f) 77 | 78 | def _init_layers(self,n,f): 79 | # 上分支 80 | setattr(self,'res'+str(n)+'_1',Residual(f,f)) 81 | # 下分支 82 | setattr(self,'pool'+str(n)+'_1',nn.MaxPool2d(2,2)) 83 | setattr(self,'res'+str(n)+'_2',Residual(f,f)) 84 | if n > 1: 85 | self._init_layers(n-1,f) 86 | else: 87 | self.res_center = Residual(f,f) 88 | setattr(self,'res'+str(n)+'_3',Residual(f,f)) 89 | # setattr(self,'SUSN'+str(n),UpsamplingNearest2d(scale_factor=2)) 90 | setattr(self,'SUSN'+str(n),Upsample(scale_factor=2)) 91 | 92 | 93 | def _forward(self,x,n,f): 94 | # 上分支 95 | up1 = x 96 | up1 = eval('self.res'+str(n)+'_1')(up1) 97 | # 下分支 98 | low1 = eval('self.pool'+str(n)+'_1')(x) 99 | low1 = eval('self.res'+str(n)+'_2')(low1) 100 | if n > 1: 101 | low2 = self._forward(low1,n-1,f) 102 | else: 103 | low2 = self.res_center(low1) 104 | low3 = low2 105 | low3 = eval('self.'+'res'+str(n)+'_3')(low3) 106 | up2 = eval('self.'+'SUSN'+str(n)).forward(low3) 107 | 108 | return up1+up2 109 | 110 | def forward(self,x): 111 | return self._forward(x,self._n,self._f) 112 | 113 | class Residual(nn.Module): 114 | """ 115 | 残差模块,并不改变特征图的宽高 116 | """ 117 | def __init__(self,ins,outs): 118 | super(Residual,self).__init__() 119 | # 卷积模块 120 | self.convBlock = nn.Sequential( 121 | nn.BatchNorm2d(ins), 122 | nn.ReLU(inplace=True), 123 | nn.Conv2d(ins,outs/2,1), 124 | nn.BatchNorm2d(outs/2), 125 | nn.ReLU(inplace=True), 126 | nn.Conv2d(outs/2,outs/2,3,1,1), 127 | nn.BatchNorm2d(outs/2), 128 | nn.ReLU(inplace=True), 129 | nn.Conv2d(outs/2,outs,1) 130 | ) 131 | # 跳层 132 | if ins != outs: 133 | self.skipConv = nn.Conv2d(ins,outs,1) 134 | self.ins = ins 135 | self.outs = outs 136 | def forward(self,x): 137 | residual = x 138 | x = self.convBlock(x) 139 | if self.ins != self.outs: 140 | residual = self.skipConv(residual) 141 | x += residual 142 | return x 143 | 144 | class Lin(nn.Module): 145 | def __init__(self,numIn,numout): 146 | super(Lin,self).__init__() 147 | self.conv = nn.Conv2d(numIn,numout,1) 148 | self.bn = nn.BatchNorm2d(numout) 149 | self.relu = nn.ReLU(inplace=True) 150 | def forward(self,x): 151 | return self.relu(self.bn(self.conv(x))) 152 | 153 | 154 | from torch.utils.data import Dataset,DataLoader 155 | import numpy as np 156 | import torch.optim as optim 157 | 158 | class tempDataset(Dataset): 159 | def __init__(self): 160 | self.X = np.random.randn(100,3,512,512) 161 | self.Y = np.random.randn(100,18,128,128) 162 | def __len__(self): 163 | return len(self.X) 164 | def __getitem__(self, item): 165 | # 这里返回的时候不要设置batch_size 166 | return self.X[item],self.Y[item] 167 | 168 | if __name__ == '__main__': 169 | from torch.nn import MSELoss 170 | critical = MSELoss() 171 | 172 | dataset = tempDataset() 173 | dataLoader = DataLoader(dataset=dataset) 174 | shg = StackedHourGlass() 175 | optimizer = optim.SGD(shg.parameters(), lr=0.01, momentum=0.9,weight_decay=1e-4) 176 | for i,(x,y) in enumerate(dataLoader): 177 | x = Variable(x,requires_grad=True).float() 178 | y = Variable(y).float() 179 | y_pred = shg.forward(x) 180 | loss = critical(y_pred[0],y[0]) 181 | print('loss : {}'.format(loss)) 182 | optimizer.zero_grad() 183 | loss.backward() 184 | optimizer.step() -------------------------------------------------------------------------------- /images/card_keypoints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/card_keypoints.png -------------------------------------------------------------------------------- /images/data1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/data1.png -------------------------------------------------------------------------------- /images/data2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/data2.png -------------------------------------------------------------------------------- /images/f1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/f1.png -------------------------------------------------------------------------------- /images/hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/hour.png -------------------------------------------------------------------------------- /images/result1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/result1.png -------------------------------------------------------------------------------- /images/result2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images/result2.png -------------------------------------------------------------------------------- /images_kp/im_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_0.jpg -------------------------------------------------------------------------------- /images_kp/im_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_1.jpg -------------------------------------------------------------------------------- /images_kp/im_102.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_102.jpg -------------------------------------------------------------------------------- /images_kp/im_103.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_103.jpg -------------------------------------------------------------------------------- /images_kp/im_104.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_104.jpg -------------------------------------------------------------------------------- /images_kp/im_105.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_105.jpg -------------------------------------------------------------------------------- /images_kp/im_106.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_106.jpg -------------------------------------------------------------------------------- /images_kp/im_108.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_108.jpg -------------------------------------------------------------------------------- /images_kp/im_11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_11.jpg -------------------------------------------------------------------------------- /images_kp/im_115.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_115.jpg -------------------------------------------------------------------------------- /images_kp/im_116.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_116.jpg -------------------------------------------------------------------------------- /images_kp/im_12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_12.jpg -------------------------------------------------------------------------------- /images_kp/im_120.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_120.jpg -------------------------------------------------------------------------------- /images_kp/im_124.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_124.jpg -------------------------------------------------------------------------------- /images_kp/im_125.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_125.jpg -------------------------------------------------------------------------------- /images_kp/im_126.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_126.jpg -------------------------------------------------------------------------------- /images_kp/im_128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_128.jpg -------------------------------------------------------------------------------- /images_kp/im_129.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_129.jpg -------------------------------------------------------------------------------- /images_kp/im_131.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_131.jpg -------------------------------------------------------------------------------- /images_kp/im_132.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_132.jpg -------------------------------------------------------------------------------- /images_kp/im_133.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_133.jpg -------------------------------------------------------------------------------- /images_kp/im_135.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_135.jpg -------------------------------------------------------------------------------- /images_kp/im_137.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_137.jpg -------------------------------------------------------------------------------- /images_kp/im_138.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_138.jpg -------------------------------------------------------------------------------- /images_kp/im_139.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_139.jpg -------------------------------------------------------------------------------- /images_kp/im_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_14.jpg -------------------------------------------------------------------------------- /images_kp/im_141.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_141.jpg -------------------------------------------------------------------------------- /images_kp/im_143.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_143.jpg -------------------------------------------------------------------------------- /images_kp/im_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_15.jpg -------------------------------------------------------------------------------- /images_kp/im_16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_16.jpg -------------------------------------------------------------------------------- /images_kp/im_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_17.jpg -------------------------------------------------------------------------------- /images_kp/im_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_18.jpg -------------------------------------------------------------------------------- /images_kp/im_18.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3.16.7", 3 | "flags": {}, 4 | "shapes": [ 5 | { 6 | "label": "point1", 7 | "line_color": null, 8 | "fill_color": null, 9 | "points": [ 10 | [ 11 | 353.4210526315789, 12 | 311.6315789473684 13 | ] 14 | ], 15 | "shape_type": "point", 16 | "flags": {} 17 | }, 18 | { 19 | "label": "point2", 20 | "line_color": null, 21 | "fill_color": null, 22 | "points": [ 23 | [ 24 | 166.05263157894734, 25 | 321.10526315789474 26 | ] 27 | ], 28 | "shape_type": "point", 29 | "flags": {} 30 | }, 31 | { 32 | "label": "point3", 33 | "line_color": null, 34 | "fill_color": null, 35 | "points": [ 36 | [ 37 | 163.9473684210526, 38 | 206.89473684210526 39 | ] 40 | ], 41 | "shape_type": "point", 42 | "flags": {} 43 | }, 44 | { 45 | "label": "point4", 46 | "line_color": null, 47 | "fill_color": null, 48 | "points": [ 49 | [ 50 | 344.4736842105263, 51 | 199.52631578947367 52 | ] 53 | ], 54 | "shape_type": "point", 55 | "flags": {} 56 | } 57 | ], 58 | "lineColor": [ 59 | 0, 60 | 255, 61 | 0, 62 | 128 63 | ], 64 | "fillColor": [ 65 | 255, 66 | 0, 67 | 0, 68 | 128 69 | ], 70 | "imagePath": "im_18.jpg", 71 | "imageData": "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", 72 | "imageHeight": 512, 73 | "imageWidth": 512 74 | } -------------------------------------------------------------------------------- /images_kp/im_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_19.jpg -------------------------------------------------------------------------------- /images_kp/im_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_2.jpg -------------------------------------------------------------------------------- /images_kp/im_20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_20.jpg -------------------------------------------------------------------------------- /images_kp/im_200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_200.jpg -------------------------------------------------------------------------------- /images_kp/im_201.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_201.jpg -------------------------------------------------------------------------------- /images_kp/im_202.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_202.jpg -------------------------------------------------------------------------------- /images_kp/im_203.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_203.jpg -------------------------------------------------------------------------------- /images_kp/im_204.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_204.jpg -------------------------------------------------------------------------------- /images_kp/im_205.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_205.jpg -------------------------------------------------------------------------------- /images_kp/im_206.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_206.jpg -------------------------------------------------------------------------------- /images_kp/im_207.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_207.jpg -------------------------------------------------------------------------------- /images_kp/im_208.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_208.jpg -------------------------------------------------------------------------------- /images_kp/im_209.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_209.jpg -------------------------------------------------------------------------------- /images_kp/im_21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_21.jpg -------------------------------------------------------------------------------- /images_kp/im_210.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_210.jpg -------------------------------------------------------------------------------- /images_kp/im_211.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_211.jpg -------------------------------------------------------------------------------- /images_kp/im_212.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_212.jpg -------------------------------------------------------------------------------- /images_kp/im_213.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_213.jpg -------------------------------------------------------------------------------- /images_kp/im_214.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_214.jpg -------------------------------------------------------------------------------- /images_kp/im_215.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_215.jpg -------------------------------------------------------------------------------- /images_kp/im_216.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_216.jpg -------------------------------------------------------------------------------- /images_kp/im_217.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_217.jpg -------------------------------------------------------------------------------- /images_kp/im_218.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_218.jpg -------------------------------------------------------------------------------- /images_kp/im_219.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_219.jpg -------------------------------------------------------------------------------- /images_kp/im_220.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_220.jpg -------------------------------------------------------------------------------- /images_kp/im_221.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_221.jpg -------------------------------------------------------------------------------- /images_kp/im_222.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_222.jpg -------------------------------------------------------------------------------- /images_kp/im_223.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_223.jpg -------------------------------------------------------------------------------- /images_kp/im_224.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_224.jpg -------------------------------------------------------------------------------- /images_kp/im_225.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_225.jpg -------------------------------------------------------------------------------- /images_kp/im_226.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_226.jpg -------------------------------------------------------------------------------- /images_kp/im_227.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_227.jpg -------------------------------------------------------------------------------- /images_kp/im_228.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_228.jpg -------------------------------------------------------------------------------- /images_kp/im_229.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_229.jpg -------------------------------------------------------------------------------- /images_kp/im_230.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_230.jpg -------------------------------------------------------------------------------- /images_kp/im_231.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_231.jpg -------------------------------------------------------------------------------- /images_kp/im_232.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_232.jpg -------------------------------------------------------------------------------- /images_kp/im_233.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_233.jpg -------------------------------------------------------------------------------- /images_kp/im_234.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_234.jpg -------------------------------------------------------------------------------- /images_kp/im_235.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_235.jpg -------------------------------------------------------------------------------- /images_kp/im_236.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_236.jpg -------------------------------------------------------------------------------- /images_kp/im_237.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_237.jpg -------------------------------------------------------------------------------- /images_kp/im_238.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_238.jpg -------------------------------------------------------------------------------- /images_kp/im_239.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_239.jpg -------------------------------------------------------------------------------- /images_kp/im_24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_24.jpg -------------------------------------------------------------------------------- /images_kp/im_240.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_240.jpg -------------------------------------------------------------------------------- /images_kp/im_241.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_241.jpg -------------------------------------------------------------------------------- /images_kp/im_242.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_242.jpg -------------------------------------------------------------------------------- /images_kp/im_243.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_243.jpg -------------------------------------------------------------------------------- /images_kp/im_244.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_244.jpg -------------------------------------------------------------------------------- /images_kp/im_245.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_245.jpg -------------------------------------------------------------------------------- /images_kp/im_246.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_246.jpg -------------------------------------------------------------------------------- /images_kp/im_247.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_247.jpg -------------------------------------------------------------------------------- /images_kp/im_248.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_248.jpg -------------------------------------------------------------------------------- /images_kp/im_249.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_249.jpg -------------------------------------------------------------------------------- /images_kp/im_250.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_250.jpg -------------------------------------------------------------------------------- /images_kp/im_251.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_251.jpg -------------------------------------------------------------------------------- /images_kp/im_252.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_252.jpg -------------------------------------------------------------------------------- /images_kp/im_253.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_253.jpg -------------------------------------------------------------------------------- /images_kp/im_254.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_254.jpg -------------------------------------------------------------------------------- /images_kp/im_255.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_255.jpg -------------------------------------------------------------------------------- /images_kp/im_256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_256.jpg -------------------------------------------------------------------------------- /images_kp/im_257.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_257.jpg -------------------------------------------------------------------------------- /images_kp/im_258.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_258.jpg -------------------------------------------------------------------------------- /images_kp/im_259.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_259.jpg -------------------------------------------------------------------------------- /images_kp/im_260.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_260.jpg -------------------------------------------------------------------------------- /images_kp/im_261.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_261.jpg -------------------------------------------------------------------------------- /images_kp/im_262.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_262.jpg -------------------------------------------------------------------------------- /images_kp/im_263.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_263.jpg -------------------------------------------------------------------------------- /images_kp/im_264.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_264.jpg -------------------------------------------------------------------------------- /images_kp/im_265.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_265.jpg -------------------------------------------------------------------------------- /images_kp/im_266.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_266.jpg -------------------------------------------------------------------------------- /images_kp/im_267.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_267.jpg -------------------------------------------------------------------------------- /images_kp/im_268.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_268.jpg -------------------------------------------------------------------------------- /images_kp/im_269.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_269.jpg -------------------------------------------------------------------------------- /images_kp/im_270.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_270.jpg -------------------------------------------------------------------------------- /images_kp/im_271.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_271.jpg -------------------------------------------------------------------------------- /images_kp/im_272.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_272.jpg -------------------------------------------------------------------------------- /images_kp/im_273.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_273.jpg -------------------------------------------------------------------------------- /images_kp/im_274.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_274.jpg -------------------------------------------------------------------------------- /images_kp/im_275.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_275.jpg -------------------------------------------------------------------------------- /images_kp/im_276.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_276.jpg -------------------------------------------------------------------------------- /images_kp/im_277.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_277.jpg -------------------------------------------------------------------------------- /images_kp/im_28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_28.jpg -------------------------------------------------------------------------------- /images_kp/im_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_3.jpg -------------------------------------------------------------------------------- /images_kp/im_30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_30.jpg -------------------------------------------------------------------------------- /images_kp/im_300.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_300.jpg -------------------------------------------------------------------------------- /images_kp/im_301.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_301.jpg -------------------------------------------------------------------------------- /images_kp/im_302.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_302.jpg -------------------------------------------------------------------------------- /images_kp/im_303.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_303.jpg -------------------------------------------------------------------------------- /images_kp/im_304.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_304.jpg -------------------------------------------------------------------------------- /images_kp/im_305.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_305.jpg -------------------------------------------------------------------------------- /images_kp/im_306.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_306.jpg -------------------------------------------------------------------------------- /images_kp/im_307.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_307.jpg -------------------------------------------------------------------------------- /images_kp/im_308.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_308.jpg -------------------------------------------------------------------------------- /images_kp/im_309.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_309.jpg -------------------------------------------------------------------------------- /images_kp/im_31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_31.jpg -------------------------------------------------------------------------------- /images_kp/im_310.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_310.jpg -------------------------------------------------------------------------------- /images_kp/im_311.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_311.jpg -------------------------------------------------------------------------------- /images_kp/im_312.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_312.jpg -------------------------------------------------------------------------------- /images_kp/im_313.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_313.jpg -------------------------------------------------------------------------------- /images_kp/im_314.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_314.jpg -------------------------------------------------------------------------------- /images_kp/im_315.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_315.jpg -------------------------------------------------------------------------------- /images_kp/im_316.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_316.jpg -------------------------------------------------------------------------------- /images_kp/im_317.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_317.jpg -------------------------------------------------------------------------------- /images_kp/im_318.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_318.jpg -------------------------------------------------------------------------------- /images_kp/im_319.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_319.jpg -------------------------------------------------------------------------------- /images_kp/im_32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_32.jpg -------------------------------------------------------------------------------- /images_kp/im_320.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_320.jpg -------------------------------------------------------------------------------- /images_kp/im_321.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_321.jpg -------------------------------------------------------------------------------- /images_kp/im_322.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_322.jpg -------------------------------------------------------------------------------- /images_kp/im_323.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_323.jpg -------------------------------------------------------------------------------- /images_kp/im_324.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_324.jpg -------------------------------------------------------------------------------- /images_kp/im_325.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_325.jpg -------------------------------------------------------------------------------- /images_kp/im_326.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_326.jpg -------------------------------------------------------------------------------- /images_kp/im_327.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_327.jpg -------------------------------------------------------------------------------- /images_kp/im_328.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_328.jpg -------------------------------------------------------------------------------- /images_kp/im_329.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_329.jpg -------------------------------------------------------------------------------- /images_kp/im_330.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_330.jpg -------------------------------------------------------------------------------- /images_kp/im_331.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_331.jpg -------------------------------------------------------------------------------- /images_kp/im_332.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_332.jpg -------------------------------------------------------------------------------- /images_kp/im_333.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_333.jpg -------------------------------------------------------------------------------- /images_kp/im_334.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_334.jpg -------------------------------------------------------------------------------- /images_kp/im_335.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_335.jpg -------------------------------------------------------------------------------- /images_kp/im_336.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_336.jpg -------------------------------------------------------------------------------- /images_kp/im_337.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_337.jpg -------------------------------------------------------------------------------- /images_kp/im_338.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_338.jpg -------------------------------------------------------------------------------- /images_kp/im_339.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_339.jpg -------------------------------------------------------------------------------- /images_kp/im_34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_34.jpg -------------------------------------------------------------------------------- /images_kp/im_340.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_340.jpg -------------------------------------------------------------------------------- /images_kp/im_341.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_341.jpg -------------------------------------------------------------------------------- /images_kp/im_342.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_342.jpg -------------------------------------------------------------------------------- /images_kp/im_343.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_343.jpg -------------------------------------------------------------------------------- /images_kp/im_344.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_344.jpg -------------------------------------------------------------------------------- /images_kp/im_345.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_345.jpg -------------------------------------------------------------------------------- /images_kp/im_346.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_346.jpg -------------------------------------------------------------------------------- /images_kp/im_347.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_347.jpg -------------------------------------------------------------------------------- /images_kp/im_348.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_348.jpg -------------------------------------------------------------------------------- /images_kp/im_349.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_349.jpg -------------------------------------------------------------------------------- /images_kp/im_35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_35.jpg -------------------------------------------------------------------------------- /images_kp/im_350.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_350.jpg -------------------------------------------------------------------------------- /images_kp/im_351.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_351.jpg -------------------------------------------------------------------------------- /images_kp/im_352.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_352.jpg -------------------------------------------------------------------------------- /images_kp/im_353.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_353.jpg -------------------------------------------------------------------------------- /images_kp/im_354.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_354.jpg -------------------------------------------------------------------------------- /images_kp/im_355.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_355.jpg -------------------------------------------------------------------------------- /images_kp/im_356.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_356.jpg -------------------------------------------------------------------------------- /images_kp/im_357.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_357.jpg -------------------------------------------------------------------------------- /images_kp/im_358.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_358.jpg -------------------------------------------------------------------------------- /images_kp/im_359.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_359.jpg -------------------------------------------------------------------------------- /images_kp/im_36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_36.jpg -------------------------------------------------------------------------------- /images_kp/im_360.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_360.jpg -------------------------------------------------------------------------------- /images_kp/im_361.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_361.jpg -------------------------------------------------------------------------------- /images_kp/im_362.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_362.jpg -------------------------------------------------------------------------------- /images_kp/im_363.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_363.jpg -------------------------------------------------------------------------------- /images_kp/im_364.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_364.jpg -------------------------------------------------------------------------------- /images_kp/im_365.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_365.jpg -------------------------------------------------------------------------------- /images_kp/im_366.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_366.jpg -------------------------------------------------------------------------------- /images_kp/im_367.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_367.jpg -------------------------------------------------------------------------------- /images_kp/im_368.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_368.jpg -------------------------------------------------------------------------------- /images_kp/im_369.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_369.jpg -------------------------------------------------------------------------------- /images_kp/im_37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_37.jpg -------------------------------------------------------------------------------- /images_kp/im_370.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_370.jpg -------------------------------------------------------------------------------- /images_kp/im_371.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_371.jpg -------------------------------------------------------------------------------- /images_kp/im_372.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_372.jpg -------------------------------------------------------------------------------- /images_kp/im_373.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_373.jpg -------------------------------------------------------------------------------- /images_kp/im_374.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_374.jpg -------------------------------------------------------------------------------- /images_kp/im_375.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_375.jpg -------------------------------------------------------------------------------- /images_kp/im_376.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_376.jpg -------------------------------------------------------------------------------- /images_kp/im_377.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_377.jpg -------------------------------------------------------------------------------- /images_kp/im_378.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_378.jpg -------------------------------------------------------------------------------- /images_kp/im_38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_38.jpg -------------------------------------------------------------------------------- /images_kp/im_39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_39.jpg -------------------------------------------------------------------------------- /images_kp/im_40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_40.jpg -------------------------------------------------------------------------------- /images_kp/im_400.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_400.jpg -------------------------------------------------------------------------------- /images_kp/im_401.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_401.jpg -------------------------------------------------------------------------------- /images_kp/im_402.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_402.jpg -------------------------------------------------------------------------------- /images_kp/im_403.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_403.jpg -------------------------------------------------------------------------------- /images_kp/im_404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_404.jpg -------------------------------------------------------------------------------- /images_kp/im_405.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_405.jpg -------------------------------------------------------------------------------- /images_kp/im_406.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_406.jpg -------------------------------------------------------------------------------- /images_kp/im_407.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_407.jpg -------------------------------------------------------------------------------- /images_kp/im_408.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_408.jpg -------------------------------------------------------------------------------- /images_kp/im_409.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_409.jpg -------------------------------------------------------------------------------- /images_kp/im_41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_41.jpg -------------------------------------------------------------------------------- /images_kp/im_410.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_410.jpg -------------------------------------------------------------------------------- /images_kp/im_411.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_411.jpg -------------------------------------------------------------------------------- /images_kp/im_412.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_412.jpg -------------------------------------------------------------------------------- /images_kp/im_413.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_413.jpg -------------------------------------------------------------------------------- /images_kp/im_414.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_414.jpg -------------------------------------------------------------------------------- /images_kp/im_415.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_415.jpg -------------------------------------------------------------------------------- /images_kp/im_416.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_416.jpg -------------------------------------------------------------------------------- /images_kp/im_417.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_417.jpg -------------------------------------------------------------------------------- /images_kp/im_418.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_418.jpg -------------------------------------------------------------------------------- /images_kp/im_419.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_419.jpg -------------------------------------------------------------------------------- /images_kp/im_42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_42.jpg -------------------------------------------------------------------------------- /images_kp/im_42.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3.16.7", 3 | "flags": {}, 4 | "shapes": [ 5 | { 6 | "label": "point1", 7 | "line_color": null, 8 | "fill_color": null, 9 | "points": [ 10 | [ 11 | 238.68421052631578, 12 | 162.68421052631578 13 | ] 14 | ], 15 | "shape_type": "point", 16 | "flags": {} 17 | }, 18 | { 19 | "label": "point2", 20 | "line_color": null, 21 | "fill_color": null, 22 | "points": [ 23 | [ 24 | 100.78947368421052, 25 | 231.1052631578947 26 | ] 27 | ], 28 | "shape_type": "point", 29 | "flags": {} 30 | }, 31 | { 32 | "label": "point3", 33 | "line_color": null, 34 | "fill_color": null, 35 | "points": [ 36 | [ 37 | 64.4736842105263, 38 | 162.15789473684208 39 | ] 40 | ], 41 | "shape_type": "point", 42 | "flags": {} 43 | }, 44 | { 45 | "label": "point4", 46 | "line_color": null, 47 | "fill_color": null, 48 | "points": [ 49 | [ 50 | 195.0, 51 | 100.57894736842104 52 | ] 53 | ], 54 | "shape_type": "point", 55 | "flags": {} 56 | } 57 | ], 58 | "lineColor": [ 59 | 0, 60 | 255, 61 | 0, 62 | 128 63 | ], 64 | "fillColor": [ 65 | 255, 66 | 0, 67 | 0, 68 | 128 69 | ], 70 | "imagePath": "im_42.jpg", 71 | "imageData": "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", 72 | "imageHeight": 512, 73 | "imageWidth": 512 74 | } -------------------------------------------------------------------------------- /images_kp/im_420.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_420.jpg -------------------------------------------------------------------------------- /images_kp/im_421.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_421.jpg -------------------------------------------------------------------------------- /images_kp/im_422.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_422.jpg -------------------------------------------------------------------------------- /images_kp/im_423.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_423.jpg -------------------------------------------------------------------------------- /images_kp/im_424.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_424.jpg -------------------------------------------------------------------------------- /images_kp/im_425.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_425.jpg -------------------------------------------------------------------------------- /images_kp/im_426.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_426.jpg -------------------------------------------------------------------------------- /images_kp/im_427.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_427.jpg -------------------------------------------------------------------------------- /images_kp/im_428.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_428.jpg -------------------------------------------------------------------------------- /images_kp/im_429.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_429.jpg -------------------------------------------------------------------------------- /images_kp/im_430.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_430.jpg -------------------------------------------------------------------------------- /images_kp/im_431.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_431.jpg -------------------------------------------------------------------------------- /images_kp/im_432.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_432.jpg -------------------------------------------------------------------------------- /images_kp/im_433.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_433.jpg -------------------------------------------------------------------------------- /images_kp/im_434.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_434.jpg -------------------------------------------------------------------------------- /images_kp/im_435.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_435.jpg -------------------------------------------------------------------------------- /images_kp/im_436.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_436.jpg -------------------------------------------------------------------------------- /images_kp/im_437.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_437.jpg -------------------------------------------------------------------------------- /images_kp/im_438.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_438.jpg -------------------------------------------------------------------------------- /images_kp/im_439.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_439.jpg -------------------------------------------------------------------------------- /images_kp/im_44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_44.jpg -------------------------------------------------------------------------------- /images_kp/im_440.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_440.jpg -------------------------------------------------------------------------------- /images_kp/im_441.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_441.jpg -------------------------------------------------------------------------------- /images_kp/im_442.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_442.jpg -------------------------------------------------------------------------------- /images_kp/im_443.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_443.jpg -------------------------------------------------------------------------------- /images_kp/im_444.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_444.jpg -------------------------------------------------------------------------------- /images_kp/im_445.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_445.jpg -------------------------------------------------------------------------------- /images_kp/im_446.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_446.jpg -------------------------------------------------------------------------------- /images_kp/im_447.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_447.jpg -------------------------------------------------------------------------------- /images_kp/im_448.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_448.jpg -------------------------------------------------------------------------------- /images_kp/im_449.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_449.jpg -------------------------------------------------------------------------------- /images_kp/im_450.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_450.jpg -------------------------------------------------------------------------------- /images_kp/im_451.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_451.jpg -------------------------------------------------------------------------------- /images_kp/im_452.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_452.jpg -------------------------------------------------------------------------------- /images_kp/im_453.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_453.jpg -------------------------------------------------------------------------------- /images_kp/im_454.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_454.jpg -------------------------------------------------------------------------------- /images_kp/im_455.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_455.jpg -------------------------------------------------------------------------------- /images_kp/im_456.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_456.jpg -------------------------------------------------------------------------------- /images_kp/im_457.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_457.jpg -------------------------------------------------------------------------------- /images_kp/im_458.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_458.jpg -------------------------------------------------------------------------------- /images_kp/im_459.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_459.jpg -------------------------------------------------------------------------------- /images_kp/im_460.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_460.jpg -------------------------------------------------------------------------------- /images_kp/im_461.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_461.jpg -------------------------------------------------------------------------------- /images_kp/im_462.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_462.jpg -------------------------------------------------------------------------------- /images_kp/im_463.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_463.jpg -------------------------------------------------------------------------------- /images_kp/im_464.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_464.jpg -------------------------------------------------------------------------------- /images_kp/im_465.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_465.jpg -------------------------------------------------------------------------------- /images_kp/im_466.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_466.jpg -------------------------------------------------------------------------------- /images_kp/im_467.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_467.jpg -------------------------------------------------------------------------------- /images_kp/im_468.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_468.jpg -------------------------------------------------------------------------------- /images_kp/im_469.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_469.jpg -------------------------------------------------------------------------------- /images_kp/im_47.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_47.jpg -------------------------------------------------------------------------------- /images_kp/im_470.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_470.jpg -------------------------------------------------------------------------------- /images_kp/im_471.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_471.jpg -------------------------------------------------------------------------------- /images_kp/im_472.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_472.jpg -------------------------------------------------------------------------------- /images_kp/im_473.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_473.jpg -------------------------------------------------------------------------------- /images_kp/im_474.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_474.jpg -------------------------------------------------------------------------------- /images_kp/im_475.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_475.jpg -------------------------------------------------------------------------------- /images_kp/im_476.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_476.jpg -------------------------------------------------------------------------------- /images_kp/im_477.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_477.jpg -------------------------------------------------------------------------------- /images_kp/im_478.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_478.jpg -------------------------------------------------------------------------------- /images_kp/im_479.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_479.jpg -------------------------------------------------------------------------------- /images_kp/im_48.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_48.jpg -------------------------------------------------------------------------------- /images_kp/im_480.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_480.jpg -------------------------------------------------------------------------------- /images_kp/im_481.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_481.jpg -------------------------------------------------------------------------------- /images_kp/im_482.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_482.jpg -------------------------------------------------------------------------------- /images_kp/im_483.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_483.jpg -------------------------------------------------------------------------------- /images_kp/im_484.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_484.jpg -------------------------------------------------------------------------------- /images_kp/im_485.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_485.jpg -------------------------------------------------------------------------------- /images_kp/im_486.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_486.jpg -------------------------------------------------------------------------------- /images_kp/im_487.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_487.jpg -------------------------------------------------------------------------------- /images_kp/im_488.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_488.jpg -------------------------------------------------------------------------------- /images_kp/im_489.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_489.jpg -------------------------------------------------------------------------------- /images_kp/im_49.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_49.jpg -------------------------------------------------------------------------------- /images_kp/im_490.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_490.jpg -------------------------------------------------------------------------------- /images_kp/im_491.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_491.jpg -------------------------------------------------------------------------------- /images_kp/im_492.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_492.jpg -------------------------------------------------------------------------------- /images_kp/im_493.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_493.jpg -------------------------------------------------------------------------------- /images_kp/im_494.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_494.jpg -------------------------------------------------------------------------------- /images_kp/im_495.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_495.jpg -------------------------------------------------------------------------------- /images_kp/im_496.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_496.jpg -------------------------------------------------------------------------------- /images_kp/im_497.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_497.jpg -------------------------------------------------------------------------------- /images_kp/im_498.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_498.jpg -------------------------------------------------------------------------------- /images_kp/im_499.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_499.jpg -------------------------------------------------------------------------------- /images_kp/im_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_5.jpg -------------------------------------------------------------------------------- /images_kp/im_500.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_500.jpg -------------------------------------------------------------------------------- /images_kp/im_501.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_501.jpg -------------------------------------------------------------------------------- /images_kp/im_502.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_502.jpg -------------------------------------------------------------------------------- /images_kp/im_503.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_503.jpg -------------------------------------------------------------------------------- /images_kp/im_504.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_504.jpg -------------------------------------------------------------------------------- /images_kp/im_505.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_505.jpg -------------------------------------------------------------------------------- /images_kp/im_506.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_506.jpg -------------------------------------------------------------------------------- /images_kp/im_507.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_507.jpg -------------------------------------------------------------------------------- /images_kp/im_508.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_508.jpg -------------------------------------------------------------------------------- /images_kp/im_509.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_509.jpg -------------------------------------------------------------------------------- /images_kp/im_510.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_510.jpg -------------------------------------------------------------------------------- /images_kp/im_511.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_511.jpg -------------------------------------------------------------------------------- /images_kp/im_512.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_512.jpg -------------------------------------------------------------------------------- /images_kp/im_513.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_513.jpg -------------------------------------------------------------------------------- /images_kp/im_514.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_514.jpg -------------------------------------------------------------------------------- /images_kp/im_515.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_515.jpg -------------------------------------------------------------------------------- /images_kp/im_516.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_516.jpg -------------------------------------------------------------------------------- /images_kp/im_517.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_517.jpg -------------------------------------------------------------------------------- /images_kp/im_518.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_518.jpg -------------------------------------------------------------------------------- /images_kp/im_519.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_519.jpg -------------------------------------------------------------------------------- /images_kp/im_520.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_520.jpg -------------------------------------------------------------------------------- /images_kp/im_521.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_521.jpg -------------------------------------------------------------------------------- /images_kp/im_522.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_522.jpg -------------------------------------------------------------------------------- /images_kp/im_523.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_523.jpg -------------------------------------------------------------------------------- /images_kp/im_524.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_524.jpg -------------------------------------------------------------------------------- /images_kp/im_525.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_525.jpg -------------------------------------------------------------------------------- /images_kp/im_526.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_526.jpg -------------------------------------------------------------------------------- /images_kp/im_527.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_527.jpg -------------------------------------------------------------------------------- /images_kp/im_528.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_528.jpg -------------------------------------------------------------------------------- /images_kp/im_529.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_529.jpg -------------------------------------------------------------------------------- /images_kp/im_53.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_53.jpg -------------------------------------------------------------------------------- /images_kp/im_530.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_530.jpg -------------------------------------------------------------------------------- /images_kp/im_531.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_531.jpg -------------------------------------------------------------------------------- /images_kp/im_532.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_532.jpg -------------------------------------------------------------------------------- /images_kp/im_533.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_533.jpg -------------------------------------------------------------------------------- /images_kp/im_534.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_534.jpg -------------------------------------------------------------------------------- /images_kp/im_535.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_535.jpg -------------------------------------------------------------------------------- /images_kp/im_536.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_536.jpg -------------------------------------------------------------------------------- /images_kp/im_537.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_537.jpg -------------------------------------------------------------------------------- /images_kp/im_538.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_538.jpg -------------------------------------------------------------------------------- /images_kp/im_539.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_539.jpg -------------------------------------------------------------------------------- /images_kp/im_54.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_54.jpg -------------------------------------------------------------------------------- /images_kp/im_540.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_540.jpg -------------------------------------------------------------------------------- /images_kp/im_541.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_541.jpg -------------------------------------------------------------------------------- /images_kp/im_542.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_542.jpg -------------------------------------------------------------------------------- /images_kp/im_543.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_543.jpg -------------------------------------------------------------------------------- /images_kp/im_544.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_544.jpg -------------------------------------------------------------------------------- /images_kp/im_545.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_545.jpg -------------------------------------------------------------------------------- /images_kp/im_546.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_546.jpg -------------------------------------------------------------------------------- /images_kp/im_547.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_547.jpg -------------------------------------------------------------------------------- /images_kp/im_548.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_548.jpg -------------------------------------------------------------------------------- /images_kp/im_549.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_549.jpg -------------------------------------------------------------------------------- /images_kp/im_55.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_55.jpg -------------------------------------------------------------------------------- /images_kp/im_550.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_550.jpg -------------------------------------------------------------------------------- /images_kp/im_551.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_551.jpg -------------------------------------------------------------------------------- /images_kp/im_552.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_552.jpg -------------------------------------------------------------------------------- /images_kp/im_553.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_553.jpg -------------------------------------------------------------------------------- /images_kp/im_554.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_554.jpg -------------------------------------------------------------------------------- /images_kp/im_555.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_555.jpg -------------------------------------------------------------------------------- /images_kp/im_556.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_556.jpg -------------------------------------------------------------------------------- /images_kp/im_557.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_557.jpg -------------------------------------------------------------------------------- /images_kp/im_558.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_558.jpg -------------------------------------------------------------------------------- /images_kp/im_56.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_56.jpg -------------------------------------------------------------------------------- /images_kp/im_57.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_57.jpg -------------------------------------------------------------------------------- /images_kp/im_58.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_58.jpg -------------------------------------------------------------------------------- /images_kp/im_59.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_59.jpg -------------------------------------------------------------------------------- /images_kp/im_60.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_60.jpg -------------------------------------------------------------------------------- /images_kp/im_61.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_61.jpg -------------------------------------------------------------------------------- /images_kp/im_63.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_63.jpg -------------------------------------------------------------------------------- /images_kp/im_65.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_65.jpg -------------------------------------------------------------------------------- /images_kp/im_67.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_67.jpg -------------------------------------------------------------------------------- /images_kp/im_68.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_68.jpg -------------------------------------------------------------------------------- /images_kp/im_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_7.jpg -------------------------------------------------------------------------------- /images_kp/im_70.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_70.jpg -------------------------------------------------------------------------------- /images_kp/im_72.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_72.jpg -------------------------------------------------------------------------------- /images_kp/im_73.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_73.jpg -------------------------------------------------------------------------------- /images_kp/im_74.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_74.jpg -------------------------------------------------------------------------------- /images_kp/im_75.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_75.jpg -------------------------------------------------------------------------------- /images_kp/im_76.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_76.jpg -------------------------------------------------------------------------------- /images_kp/im_77.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_77.jpg -------------------------------------------------------------------------------- /images_kp/im_78.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_78.jpg -------------------------------------------------------------------------------- /images_kp/im_80.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_80.jpg -------------------------------------------------------------------------------- /images_kp/im_81.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_81.jpg -------------------------------------------------------------------------------- /images_kp/im_82.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_82.jpg -------------------------------------------------------------------------------- /images_kp/im_83.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_83.jpg -------------------------------------------------------------------------------- /images_kp/im_84.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_84.jpg -------------------------------------------------------------------------------- /images_kp/im_85.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_85.jpg -------------------------------------------------------------------------------- /images_kp/im_86.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_86.jpg -------------------------------------------------------------------------------- /images_kp/im_88.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_88.jpg -------------------------------------------------------------------------------- /images_kp/im_89.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_89.jpg -------------------------------------------------------------------------------- /images_kp/im_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_9.jpg -------------------------------------------------------------------------------- /images_kp/im_90.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_90.jpg -------------------------------------------------------------------------------- /images_kp/im_91.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_91.jpg -------------------------------------------------------------------------------- /images_kp/im_91.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3.16.7", 3 | "flags": {}, 4 | "shapes": [ 5 | { 6 | "label": "point1", 7 | "line_color": null, 8 | "fill_color": null, 9 | "points": [ 10 | [ 11 | 422.36842105263156, 12 | 120.05263157894736 13 | ] 14 | ], 15 | "shape_type": "point", 16 | "flags": {} 17 | }, 18 | { 19 | "label": "point2", 20 | "line_color": null, 21 | "fill_color": null, 22 | "points": [ 23 | [ 24 | 301.84210526315786, 25 | 244.26315789473682 26 | ] 27 | ], 28 | "shape_type": "point", 29 | "flags": {} 30 | }, 31 | { 32 | "label": "point3", 33 | "line_color": null, 34 | "fill_color": null, 35 | "points": [ 36 | [ 37 | 220.26315789473682, 38 | 166.36842105263156 39 | ] 40 | ], 41 | "shape_type": "point", 42 | "flags": {} 43 | }, 44 | { 45 | "label": "point4", 46 | "line_color": null, 47 | "fill_color": null, 48 | "points": [ 49 | [ 50 | 340.7894736842105, 51 | 49.52631578947368 52 | ] 53 | ], 54 | "shape_type": "point", 55 | "flags": {} 56 | } 57 | ], 58 | "lineColor": [ 59 | 0, 60 | 255, 61 | 0, 62 | 128 63 | ], 64 | "fillColor": [ 65 | 255, 66 | 0, 67 | 0, 68 | 128 69 | ], 70 | "imagePath": "im_91.jpg", 71 | "imageData": "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", 72 | "imageHeight": 512, 73 | "imageWidth": 512 74 | } -------------------------------------------------------------------------------- /images_kp/im_92.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_92.jpg -------------------------------------------------------------------------------- /images_kp/im_93.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_93.jpg -------------------------------------------------------------------------------- /images_kp/im_95.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_95.jpg -------------------------------------------------------------------------------- /images_kp/im_96.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_96.jpg -------------------------------------------------------------------------------- /images_kp/im_97.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_97.jpg -------------------------------------------------------------------------------- /images_kp/im_98.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_98.jpg -------------------------------------------------------------------------------- /images_kp/im_99.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/images_kp/im_99.jpg -------------------------------------------------------------------------------- /kd_epoch_519_model.ckpt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lyffly/KeyPointsDetection/669e3540efdc1758b0173aeefccd200b741ffa4e/kd_epoch_519_model.ckpt -------------------------------------------------------------------------------- /models.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import torch 3 | import torch.nn as nn 4 | from torch.nn import Upsample 5 | from torch.autograd import Variable 6 | 7 | class HourGlass(nn.Module): 8 | """不改变特征图的高宽""" 9 | def __init__(self,n=4,f=128): 10 | """ 11 | :param n: hourglass模块的层级数目 12 | :param f: hourglass模块中的特征图数量 13 | :return: 14 | """ 15 | super(HourGlass,self).__init__() 16 | self._n = n 17 | self._f = f 18 | self._init_layers(self._n,self._f) 19 | 20 | def _init_layers(self,n,f): 21 | # 上分支 22 | setattr(self,'res'+str(n)+'_1',Residual(f,f)) 23 | # 下分支 24 | setattr(self,'pool'+str(n)+'_1',nn.MaxPool2d(2,2)) 25 | setattr(self,'res'+str(n)+'_2',Residual(f,f)) 26 | if n > 1: 27 | self._init_layers(n-1,f) 28 | else: 29 | self.res_center = Residual(f,f) 30 | setattr(self,'res'+str(n)+'_3',Residual(f,f)) 31 | setattr(self,'unsample'+str(n),Upsample(scale_factor=2)) 32 | 33 | 34 | def _forward(self,x,n,f): 35 | # 上分支 36 | up1 = x 37 | up1 = eval('self.res'+str(n)+'_1')(up1) 38 | # 下分支 39 | low1 = eval('self.pool'+str(n)+'_1')(x) 40 | low1 = eval('self.res'+str(n)+'_2')(low1) 41 | if n > 1: 42 | low2 = self._forward(low1,n-1,f) 43 | else: 44 | low2 = self.res_center(low1) 45 | low3 = low2 46 | low3 = eval('self.'+'res'+str(n)+'_3')(low3) 47 | up2 = eval('self.'+'unsample'+str(n)).forward(low3) 48 | 49 | return up1+up2 50 | 51 | def forward(self,x): 52 | return self._forward(x,self._n,self._f) 53 | 54 | class Residual(nn.Module): 55 | """ 56 | 残差模块,并不改变特征图的宽高 57 | """ 58 | def __init__(self,ins,outs): 59 | super(Residual,self).__init__() 60 | # 卷积模块 61 | self.convBlock = nn.Sequential( 62 | nn.BatchNorm2d(ins), 63 | nn.ReLU(inplace=True), 64 | nn.Conv2d(ins,int(outs/2),1), 65 | nn.BatchNorm2d(int(outs/2)), 66 | nn.ReLU(inplace=True), 67 | nn.Conv2d(int(outs/2),int(outs/2),3,1,1), 68 | nn.BatchNorm2d(int(outs/2)), 69 | nn.ReLU(inplace=True), 70 | nn.Conv2d(int(outs/2),outs,1) 71 | ) 72 | # 跳层 73 | if ins != outs: 74 | self.skipConv = nn.Conv2d(ins,outs,1) 75 | self.ins = ins 76 | self.outs = outs 77 | def forward(self,x): 78 | residual = x 79 | x = self.convBlock(x) 80 | if self.ins != self.outs: 81 | residual = self.skipConv(residual) 82 | x += residual 83 | return x 84 | 85 | class Lin(nn.Module): 86 | def __init__(self,numIn=128,numout=4): 87 | super(Lin,self).__init__() 88 | self.conv = nn.Conv2d(numIn,numout,1) 89 | self.bn = nn.BatchNorm2d(numout) 90 | self.relu = nn.ReLU(inplace=True) 91 | def forward(self,x): 92 | return self.relu(self.bn(self.conv(x))) 93 | 94 | 95 | class KFSGNet(nn.Module): 96 | 97 | def __init__(self): 98 | super(KFSGNet,self).__init__() 99 | self.__conv1 = nn.Conv2d(3,64,1) 100 | self.__relu1 = nn.ReLU(inplace=True) 101 | self.__conv2 = nn.Conv2d(64,128,1) 102 | self.__relu2 = nn.ReLU(inplace=True) 103 | self.__hg = HourGlass() 104 | self.__lin = Lin() 105 | def forward(self,x): 106 | x = self.__relu1(self.__conv1(x)) 107 | x = self.__relu2(self.__conv2(x)) 108 | x = self.__hg(x) 109 | x = self.__lin(x) 110 | return x 111 | 112 | 113 | from torch.utils.data import Dataset,DataLoader 114 | import numpy as np 115 | import torch.optim as optim 116 | 117 | class tempDataset(Dataset): 118 | def __init__(self): 119 | self.X = np.random.randn(100,3,256,256) 120 | self.Y = np.random.randn(100,4,256,256) 121 | def __len__(self): 122 | return len(self.X) 123 | def __getitem__(self, item): 124 | # 这里返回的时候不要设置batch_size 125 | return self.X[item],self.Y[item] 126 | 127 | if __name__ == '__main__': 128 | from torch.nn import MSELoss 129 | critical = MSELoss() 130 | 131 | dataset = tempDataset() 132 | dataLoader = DataLoader(dataset=dataset,batch_size=4) 133 | shg = KFSGNet().cuda() 134 | optimizer = optim.SGD(shg.parameters(), lr=0.001, momentum=0.9,weight_decay=1e-4) 135 | 136 | for e in range(200): 137 | for i,(x,y) in enumerate(dataLoader): 138 | x = Variable(x,requires_grad=True).float().cuda() 139 | y = Variable(y).float().cuda() 140 | y_pred = shg.forward(x) 141 | loss = critical(y_pred[0],y[0]) 142 | print('loss : {}'.format(loss.data)) 143 | optimizer.zero_grad() 144 | loss.backward() 145 | optimizer.step() -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | import torch 4 | import numpy as np 5 | from torch.utils.data import DataLoader 6 | from torch.autograd import Variable 7 | import matplotlib.pyplot as plt 8 | import pandas as pd 9 | 10 | from data_loader import KFDataset 11 | from models import KFSGNet 12 | from train import config,get_peak_points 13 | import cv2 14 | import time 15 | 16 | 17 | def toTensor(img): 18 | assert type(img) == np.ndarray,'the img type is {}, but ndarry expected'.format(type(img)) 19 | #img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 20 | img = torch.from_numpy(img.transpose((2, 0, 1))) 21 | #img = torch.from_numpy(img) 22 | return img.float().div(255).unsqueeze(0) # 255也可以改为256 23 | 24 | def test(): 25 | # 加载模型 26 | net = KFSGNet() 27 | net.float().cuda() 28 | net.eval() 29 | if (config['checkout'] != ''): 30 | net.load_state_dict(torch.load(config['checkout'])) 31 | 32 | all_result = [] 33 | 34 | camera = cv2.VideoCapture(0) 35 | 36 | if not camera.isOpened(): 37 | print("camera is not ready !!!!!") 38 | exit(0) 39 | 40 | while True: 41 | ret,frame = camera.read() 42 | if ret is None: 43 | break 44 | image = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB) 45 | 46 | height=len(image) 47 | width=len(image[0]) 48 | 49 | t0 = time.time() 50 | 51 | image = image[0:height,0:height] 52 | 53 | image_resized = cv2.resize(image,(256,256)) 54 | 55 | image1 = Variable(toTensor(image_resized)).cuda() 56 | pred_heatmaps = net(image1) 57 | #print(pred_heatmaps.shape) 58 | 59 | #cv2.imshow("heatmap",pred_heatmaps.cpu().data.numpy()[0][0]) 60 | 61 | 62 | pred_points = get_peak_points(pred_heatmaps.cpu().data.numpy()) #(N,4,2) 63 | pred_points = pred_points.reshape((pred_points.shape[0],-1)) #(N,8) 64 | 65 | print(pred_points) 66 | 67 | image_resized = cv2.cvtColor(image_resized,cv2.COLOR_RGB2BGR) 68 | 69 | cv2.imshow("result",image_resized) 70 | cv2.waitKey(1) 71 | 72 | 73 | if __name__ == '__main__': 74 | test() -------------------------------------------------------------------------------- /train.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import torch 3 | from torch.autograd import Variable 4 | from torch.backends import cudnn 5 | import torch.nn as nn 6 | import torch.optim as optim 7 | from torch.utils.data import DataLoader 8 | import numpy as np 9 | import pprint 10 | 11 | from data_loader import KFDataset 12 | from models import KFSGNet 13 | 14 | config = dict() 15 | config['lr'] = 0.0000009 16 | config['momentum'] = 0.9 17 | config['weight_decay'] = 1e-4 18 | config['epoch_num'] = 100 19 | config['batch_size'] = 40 20 | config['sigma'] = 5.0 21 | config['debug_vis'] = False 22 | 23 | config['fname'] = 'images_kp/' 24 | config['is_test'] = False 25 | 26 | config['save_freq'] = 10 27 | config['checkout'] = 'kd_epoch_429_model.ckpt' 28 | config['start_epoch'] = 429 29 | config['load_pretrained_weights'] = True 30 | config['eval_freq'] = 5 31 | config['debug'] = False 32 | config['featurename2id'] = { 33 | 'point1_x':0, 34 | 'point1_y':1, 35 | 'point2_x':2, 36 | 'point2_y':3, 37 | 'point3_x':4, 38 | 'point3_y':5, 39 | 'point4_x':6, 40 | 'point4_y':7 41 | } 42 | 43 | 44 | def get_peak_points(heatmaps): 45 | """ 46 | 47 | :param heatmaps: numpy array (N,4,256,256) 48 | :return:numpy array (N,4,2) # 49 | """ 50 | N,C,H,W = heatmaps.shape # N= batch size C=4 hotmaps 51 | all_peak_points = [] 52 | for i in range(N): 53 | peak_points = [] 54 | for j in range(C): 55 | yy,xx = np.where(heatmaps[i,j] == heatmaps[i,j].max()) 56 | y = yy[0] 57 | x = xx[0] 58 | peak_points.append([x,y]) 59 | all_peak_points.append(peak_points) 60 | all_peak_points = np.array(all_peak_points) 61 | return all_peak_points 62 | 63 | def get_mse(pred_points,gts,indices_valid=None): 64 | """ 65 | 66 | :param pred_points: numpy (N,4,2) 67 | :param gts: numpy (N,4,2) 68 | :return: 69 | """ 70 | pred_points = pred_points[indices_valid[0],indices_valid[1],:] 71 | gts = gts[indices_valid[0],indices_valid[1],:] 72 | pred_points = Variable(torch.from_numpy(pred_points).float(),requires_grad=False) 73 | gts = Variable(torch.from_numpy(gts).float(),requires_grad=False) 74 | criterion = nn.MSELoss() 75 | loss = criterion(pred_points,gts) 76 | return loss 77 | 78 | # 计算mask ?? 79 | def calculate_mask(heatmaps_target): 80 | """ 81 | 82 | :param heatmaps_target: Variable (N,4,256,256) 83 | :return: Variable (N,4,256,256) 84 | """ 85 | N,C,_,_ = heatmaps_targets.size() #N =8 C = 4 86 | N_idx = [] 87 | C_idx = [] 88 | for n in range(N): # 0-7 89 | for c in range(C): # 0-3 90 | max_v = heatmaps_targets[n,c,:,:].max().item() 91 | if max_v != 0.0: 92 | N_idx.append(n) 93 | C_idx.append(c) 94 | mask = Variable(torch.zeros(heatmaps_targets.size())) 95 | mask[N_idx,C_idx,:,:] = 1.0 96 | mask = mask.float().cuda() 97 | return mask,[N_idx,C_idx] 98 | 99 | if __name__ == '__main__': 100 | pprint.pprint(config) 101 | torch.manual_seed(0) 102 | cudnn.benchmark = True 103 | net = KFSGNet() 104 | net.float().cuda() 105 | net.train() 106 | criterion = nn.MSELoss() 107 | #criterion2 = nn.P() 108 | #optimizer = optim.SGD(net.parameters(), lr=config['lr'], momentum=config['momentum'] , weight_decay=config['weight_decay']) 109 | #optimizer = optim.Adam(net.parameters(),lr=config['lr'], weight_decay=config['weight_decay']) 110 | optimizer = optim.RMSprop(net.parameters(),lr=config['lr'], 111 | weight_decay=config['weight_decay'], 112 | momentum=config['momentum']) 113 | # 定义 Dataset 114 | trainDataset = KFDataset(config) 115 | #trainDataset.load() 116 | # 定义 data loader 117 | trainDataLoader = DataLoader(trainDataset,config['batch_size'],True,num_workers=8) 118 | sample_num = len(trainDataset) 119 | 120 | if config['load_pretrained_weights']: 121 | if (config['checkout'] != ''): 122 | net.load_state_dict(torch.load(config['checkout'])) 123 | 124 | for epoch in range(config['start_epoch'],config['epoch_num']+config['start_epoch']): 125 | running_loss = 0.0 126 | for i, (inputs, heatmaps_targets, gts) in enumerate(trainDataLoader): 127 | inputs = Variable(inputs).cuda() 128 | heatmaps_targets = Variable(heatmaps_targets).cuda() 129 | mask,indices_valid = calculate_mask(heatmaps_targets) 130 | 131 | optimizer.zero_grad() 132 | outputs = net(inputs) 133 | outputs = outputs #* mask 134 | heatmaps_targets = heatmaps_targets #* mask 135 | loss = criterion(outputs, heatmaps_targets) 136 | loss.backward() 137 | optimizer.step() 138 | 139 | # 统计最大值与最小值 140 | v_max = torch.max(outputs) 141 | v_min = torch.min(outputs) 142 | 143 | # 评估 144 | all_peak_points = get_peak_points(heatmaps_targets.cpu().data.numpy()) 145 | loss_coor = get_mse(all_peak_points, gts.numpy(),indices_valid) 146 | 147 | print('[ Epoch {:005d} -> {:005d} / {} ] loss : {:15} loss_coor : {:15} max : {:10} min : {}'.format( 148 | epoch, i * config['batch_size'], 149 | sample_num, loss.item(),loss_coor.item(),v_max.item(),v_min.item())) 150 | 151 | 152 | 153 | if (epoch+1) % config['save_freq'] == 0 or epoch == config['epoch_num'] - 1: 154 | torch.save(net.state_dict(),'kd_epoch_{}_model.ckpt'.format(epoch)) 155 | 156 | -------------------------------------------------------------------------------- /visualize.py: -------------------------------------------------------------------------------- 1 | from graphviz import Digraph 2 | import torch 3 | from torch.autograd import Variable 4 | 5 | 6 | def make_dot(var, params=None): 7 | """ Produces Graphviz representation of PyTorch autograd graph 8 | 9 | Blue nodes are the Variables that require grad, orange are Tensors 10 | saved for backward in torch.autograd.Function 11 | 12 | Args: 13 | var: output Variable 14 | params: dict of (name, Variable) to add names to node that 15 | require grad (TODO: make optional) 16 | """ 17 | if params is not None: 18 | assert isinstance(params.values()[0], Variable) 19 | param_map = {id(v): k for k, v in params.items()} 20 | 21 | node_attr = dict(style='filled', 22 | shape='box', 23 | align='left', 24 | fontsize='12', 25 | ranksep='0.1', 26 | height='0.2') 27 | dot = Digraph(node_attr=node_attr, graph_attr=dict(size="12,12")) 28 | seen = set() 29 | 30 | def size_to_str(size): 31 | return '('+(', ').join(['%d' % v for v in size])+')' 32 | 33 | def add_nodes(var): 34 | if var not in seen: 35 | if torch.is_tensor(var): 36 | dot.node(str(id(var)), size_to_str(var.size()), fillcolor='orange') 37 | elif hasattr(var, 'variable'): 38 | u = var.variable 39 | name = param_map[id(u)] if params is not None else '' 40 | node_name = '%s\n %s' % (name, size_to_str(u.size())) 41 | dot.node(str(id(var)), node_name, fillcolor='lightblue') 42 | else: 43 | dot.node(str(id(var)), str(type(var).__name__)) 44 | seen.add(var) 45 | if hasattr(var, 'next_functions'): 46 | for u in var.next_functions: 47 | if u[0] is not None: 48 | dot.edge(str(id(u[0])), str(id(var))) 49 | add_nodes(u[0]) 50 | if hasattr(var, 'saved_tensors'): 51 | for t in var.saved_tensors: 52 | dot.edge(str(id(t)), str(id(var))) 53 | add_nodes(t) 54 | add_nodes(var.grad_fn) 55 | return dot 56 | 57 | if __name__ == '__main__': 58 | from models import KFSGNet 59 | from torch.autograd import Variable 60 | import torch 61 | 62 | net = KFSGNet() 63 | x = Variable(torch.randn((1,3,512,512))) 64 | y = net(x) 65 | g = make_dot(y) 66 | print(net) 67 | g.view() 68 | pass --------------------------------------------------------------------------------