diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/.gitignore" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/.gitignore"
new file mode 100644
index 00000000..2acb0de8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/.gitignore"
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../../../:\Users\Andox\Desktop\pet_recognition\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/inspectionProfiles/Project_Default.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/inspectionProfiles/Project_Default.xml"
new file mode 100644
index 00000000..fed7a5d0
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/inspectionProfiles/Project_Default.xml"
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/inspectionProfiles/profiles_settings.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/inspectionProfiles/profiles_settings.xml"
new file mode 100644
index 00000000..105ce2da
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/inspectionProfiles/profiles_settings.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/misc.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/misc.xml"
new file mode 100644
index 00000000..d1e22ecb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/misc.xml"
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/modules.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/modules.xml"
new file mode 100644
index 00000000..ee1accfe
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/modules.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/pet_recognition.iml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/pet_recognition.iml"
new file mode 100644
index 00000000..4a58d545
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/.idea/pet_recognition.iml"
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162253573.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162253573.png"
new file mode 100644
index 00000000..7bfe1fec
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162253573.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162401819.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162401819.png"
new file mode 100644
index 00000000..07858f12
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162401819.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980-1600246273279.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980-1600246273279.png"
new file mode 100644
index 00000000..239253a0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980-1600246273279.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980-1600246332541.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980-1600246332541.png"
new file mode 100644
index 00000000..239253a0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980-1600246332541.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980.png"
new file mode 100644
index 00000000..239253a0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/image-20200916162423980.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_164947-1600246321788.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_164947-1600246321788.png"
new file mode 100644
index 00000000..264d40de
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_164947-1600246321788.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_164947.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_164947.png"
new file mode 100644
index 00000000..264d40de
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_164947.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_165005-1600246308546.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_165005-1600246308546.png"
new file mode 100644
index 00000000..ad3a1149
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_165005-1600246308546.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_165005.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_165005.png"
new file mode 100644
index 00000000..ad3a1149
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.assets/snipaste20200916_165005.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.md" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.md"
new file mode 100644
index 00000000..ff814255
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/README/README.md"
@@ -0,0 +1,37 @@
+# 团队简介:
+
+团队名:元组
+
+团队成员均为传智专修学院在校学生,基础编程能力扎实,团队协同一心,有着高效的问题解决能力,对工智能,机器学习有相应的理解与编码能力。
+
+联系方式:
+
+电话:杨:15779506628 廖:15008167363
+
+邮箱:avenir157@163.com
+
+
+
+
+
+# 项目介绍:
+
+本项目是一个猫脸识别的案例,通过已经训练好的模型检测已存在的猫咪图片,用卷积神经网络做对图片做回归算法,提其特征,获取猫脸的花纹的主要关键点,识别出是哪一只猫,本模型可以用于走失小猫的检测与寻找。
+
+
+
+# 项目截图:
+
+### 项目截图1
+
+
+
+
+
+### 项目截图2
+
+### 
+
+项目截图3
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/._pet_recognition" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/._pet_recognition"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/._pet_recognition" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.DS_Store" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.DS_Store"
new file mode 100644
index 00000000..a5b28df1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.DS_Store" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.gitignore" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.gitignore"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.gitignore" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.ipynb_checkpoints" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.ipynb_checkpoints"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._.ipynb_checkpoints" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._DARK" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._DARK"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._DARK" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._Dockerfile" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._Dockerfile"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._Dockerfile" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._bin_can" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._bin_can"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._bin_can" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._cat_yolo_detect_recog.ipynb" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._cat_yolo_detect_recog.ipynb"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._cat_yolo_detect_recog.ipynb" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._models" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._models"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._models" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._recog.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._recog.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._recog.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._requirements.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._requirements.txt"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._requirements.txt" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._src" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._src"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._src" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._test_images" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._test_images"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._test_images" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._train.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._train.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/._train.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/.ipynb_checkpoints/._cat_yolo_detect_recog-checkpoint.ipynb" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/.ipynb_checkpoints/._cat_yolo_detect_recog-checkpoint.ipynb"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/.ipynb_checkpoints/._cat_yolo_detect_recog-checkpoint.ipynb" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.fuck" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.fuck"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.fuck" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.gen" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.gen"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.gen" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.gpl" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.gpl"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.gpl" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.meta" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.meta"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.meta" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.mit" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.mit"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.mit" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.v1" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.v1"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._LICENSE.v1" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._Makefile" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._Makefile"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._Makefile" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._README.md" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._README.md"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._README.md" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._dummy" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._dummy"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._dummy" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._examples" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._examples"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._examples" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._include" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._include"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._include" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._order" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._order"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._order" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._python" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._python"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._python" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._scripts" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._scripts"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._scripts" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._src" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._src"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/._src" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._alexnet.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._alexnet.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._alexnet.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cat-dog-obj.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cat-dog-obj.data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cat-dog-obj.data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cat-dog-yolov3-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cat-dog-yolov3-tiny.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cat-dog-yolov3-tiny.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cifar.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cifar.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cifar.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cifar.test.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cifar.test.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._cifar.test.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._coco.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._coco.data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._coco.data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._combine9k.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._combine9k.data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._combine9k.data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet19.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet19.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet19.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet19_448.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet19_448.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet19_448.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet53.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet53.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet53.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet53_448.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet53_448.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet53_448.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet9000.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet9000.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._darknet9000.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._densenet201.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._densenet201.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._densenet201.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction.conv.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction.conv.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction.conv.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction22k.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction22k.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._extraction22k.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._go.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._go.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._go.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._go.test.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._go.test.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._go.test.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._gru.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._gru.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._gru.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet1k.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet1k.data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet1k.data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet22k.dataset" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet22k.dataset"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet22k.dataset" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet9k.hierarchy.dataset" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet9k.hierarchy.dataset"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._imagenet9k.hierarchy.dataset" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._jnet-conv.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._jnet-conv.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._jnet-conv.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._openimages.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._openimages.data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._openimages.data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet101.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet101.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet101.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet152.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet152.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet152.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet18.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet18.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet18.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet34.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet34.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet34.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet50.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet50.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnet50.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext101-32x4d.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext101-32x4d.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext101-32x4d.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext152-32x4d.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext152-32x4d.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext152-32x4d.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext50.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext50.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._resnext50.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._rnn.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._rnn.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._rnn.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._rnn.train.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._rnn.train.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._rnn.train.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._strided.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._strided.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._strided.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._t1.test.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._t1.test.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._t1.test.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._tiny.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._tiny.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._vgg-16.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._vgg-16.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._vgg-16.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._vgg-conv.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._vgg-conv.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._vgg-conv.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._voc.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._voc.data"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._voc.data" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._writing.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._writing.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._writing.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolo9000.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolo9000.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolo9000.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov1-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov1-tiny.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov1-tiny.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov1.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov1.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov1.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-tiny-voc.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-tiny-voc.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-tiny-voc.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-tiny.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-tiny.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-voc.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-voc.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2-voc.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov2.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-openimages.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-openimages.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-openimages.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-spp.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-spp.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-spp.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-tiny.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-tiny.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-voc.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-voc.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3-voc.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3.cfg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/cfg/._yolov3.cfg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.labels" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.labels"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.labels" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.names"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.names" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.tree" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.tree"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._9k.tree" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._coco.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._coco.names"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._coco.names" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._coco9k.map" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._coco9k.map"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._coco9k.map" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._dog.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._dog.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._dog.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._eagle.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._eagle.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._eagle.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._giraffe.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._giraffe.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._giraffe.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._goal.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._goal.txt"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._goal.txt" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._horses.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._horses.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._horses.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._imagenet.labels.list" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._imagenet.labels.list"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._imagenet.labels.list" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._imagenet.shortnames.list" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._imagenet.shortnames.list"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._imagenet.shortnames.list" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._inet9k.map" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._inet9k.map"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._inet9k.map" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._kite.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._kite.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._kite.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._labels" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._labels"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._labels" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._openimages.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._openimages.names"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._openimages.names" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._person.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._person.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._person.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._scream.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._scream.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._scream.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._voc.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._voc.names"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/._voc.names" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._100_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._101_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._102_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._103_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._104_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._105_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._106_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._107_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._108_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._109_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._110_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._111_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._112_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._113_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._114_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._115_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._116_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._117_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._118_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._119_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._120_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._121_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._122_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._123_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._124_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._125_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._126_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._32_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._33_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._34_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._35_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._36_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._37_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._38_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._39_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._40_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._41_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._42_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._43_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._44_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._45_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._46_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._47_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._48_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._49_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._50_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._51_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._52_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._53_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._54_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._55_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._56_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._57_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._58_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._59_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._60_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._61_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._62_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._63_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._64_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._65_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._66_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._67_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._68_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._69_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._70_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._71_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._72_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._73_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._74_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._75_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._76_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._77_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._78_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._79_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._80_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._81_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._82_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._83_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._84_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._85_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._86_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._87_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._88_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._89_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._90_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._91_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._92_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._93_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._94_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._95_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._96_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._97_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._98_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_0.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_1.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_2.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_3.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_4.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_5.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_6.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_7.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._99_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._make_labels.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._make_labels.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/data/labels/._make_labels.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/dummy/._m.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/dummy/._m.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/dummy/._m.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._art.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._art.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._art.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._attention.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._attention.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._attention.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._captcha.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._captcha.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._captcha.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._cifar.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._cifar.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._cifar.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._classifier.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._classifier.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._classifier.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._coco.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._coco.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._coco.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._darknet.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._darknet.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._darknet.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector-scipy-opencv.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector-scipy-opencv.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector-scipy-opencv.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._detector.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._dice.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._dice.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._dice.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._go.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._go.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._go.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._instance-segmenter.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._instance-segmenter.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._instance-segmenter.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._lsd.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._lsd.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._lsd.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._nightmare.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._nightmare.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._nightmare.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._regressor.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._regressor.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._regressor.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._rnn.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._rnn.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._rnn.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._rnn_vid.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._rnn_vid.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._rnn_vid.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._segmenter.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._segmenter.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._segmenter.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._super.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._super.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._super.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._swag.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._swag.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._swag.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._tag.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._tag.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._tag.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._voxel.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._voxel.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._voxel.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._writing.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._writing.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._writing.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._yolo.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._yolo.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/examples/._yolo.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/include/._darknet.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/include/._darknet.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/include/._darknet.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-obj.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-obj.names"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-obj.names" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-test.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-test.txt"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-test.txt" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-train.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-train.txt"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/order/._cat-dog-train.txt" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/.___pycache__" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/.___pycache__"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/.___pycache__" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._darknet.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._darknet.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._darknet.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._libdarknet.so" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._libdarknet.so"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._libdarknet.so" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._proverbot.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._proverbot.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/._proverbot.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/__pycache__/._darknet.cpython-36.pyc" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/__pycache__/._darknet.cpython-36.pyc"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/__pycache__/._darknet.cpython-36.pyc" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/__pycache__/._darknet.cpython-37.pyc" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/__pycache__/._darknet.cpython-37.pyc"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/python/__pycache__/._darknet.cpython-37.pyc" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._dice_label.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._dice_label.sh"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._dice_label.sh" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._gen_tactic.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._gen_tactic.sh"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._gen_tactic.sh" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._get_coco_dataset.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._get_coco_dataset.sh"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._get_coco_dataset.sh" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._imagenet_label.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._imagenet_label.sh"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._imagenet_label.sh" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._voc_label.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._voc_label.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/scripts/._voc_label.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activation_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activations.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activations.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activations.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activations.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activations.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._activations.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._avgpool_layer_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._batchnorm_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._batchnorm_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._batchnorm_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._batchnorm_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._batchnorm_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._batchnorm_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._blas_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._box.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._box.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._box.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._box.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._box.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._box.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._classifier.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._classifier.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._classifier.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._col2im_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._compare.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._compare.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._compare.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._connected_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._connected_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._connected_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._connected_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._connected_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._connected_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._convolutional_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cost_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cost_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cost_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cost_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cost_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cost_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crnn_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crnn_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crnn_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crnn_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crnn_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crnn_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._crop_layer_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cuda.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cuda.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cuda.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cuda.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cuda.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._cuda.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._data.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._data.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._data.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._data.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._data.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._data.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._deconvolutional_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._demo.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._demo.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._demo.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._demo.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._demo.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._demo.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._detection_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._detection_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._detection_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._detection_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._detection_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._detection_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._dropout_layer_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gemm.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gemm.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gemm.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gemm.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gemm.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gemm.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gru_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gru_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gru_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gru_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gru_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._gru_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._im2col_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image_opencv.cpp" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image_opencv.cpp"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._image_opencv.cpp" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._iseg_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._iseg_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._iseg_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._iseg_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._iseg_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._iseg_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._l2norm_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._l2norm_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._l2norm_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._l2norm_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._l2norm_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._l2norm_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._list.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._list.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._list.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._list.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._list.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._list.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._local_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._local_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._local_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._local_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._local_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._local_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._logistic_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._logistic_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._logistic_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._logistic_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._logistic_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._logistic_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._lstm_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._lstm_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._lstm_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._lstm_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._lstm_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._lstm_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._matrix.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._matrix.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._matrix.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._matrix.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._matrix.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._matrix.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer_kernels.cu"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._maxpool_layer_kernels.cu" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._network.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._network.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._network.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._network.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._network.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._network.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._normalization_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._normalization_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._normalization_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._normalization_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._normalization_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._normalization_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._option_list.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._option_list.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._option_list.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._option_list.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._option_list.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._option_list.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._parser.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._parser.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._parser.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._parser.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._parser.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._parser.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._region_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._region_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._region_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._region_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._region_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._region_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._reorg_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._reorg_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._reorg_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._reorg_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._reorg_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._reorg_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._rnn_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._rnn_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._rnn_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._rnn_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._rnn_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._rnn_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._route_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._route_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._route_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._route_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._route_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._route_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._shortcut_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._shortcut_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._shortcut_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._shortcut_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._shortcut_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._shortcut_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._softmax_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._softmax_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._softmax_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._softmax_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._softmax_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._softmax_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._stb_image.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._stb_image.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._stb_image.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._stb_image_write.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._stb_image_write.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._stb_image_write.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._tree.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._tree.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._tree.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._tree.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._tree.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._tree.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._upsample_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._upsample_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._upsample_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._upsample_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._upsample_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._upsample_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._utils.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._utils.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._utils.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._utils.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._utils.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._utils.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._yolo_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._yolo_layer.c"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._yolo_layer.c" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._yolo_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._yolo_layer.h"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/DARK/src/._yolo_layer.h" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/bin_can/._script.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/bin_can/._script.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/bin_can/._script.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/models/._standard.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/models/._standard.xml"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/models/._standard.xml" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/.___init__.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/.___init__.py"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/.___init__.py" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/.___pycache__" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/.___pycache__"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/.___pycache__" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/__pycache__/.___init__.cpython-36.pyc" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/__pycache__/.___init__.cpython-36.pyc"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/src/__pycache__/.___init__.cpython-36.pyc" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/test_images/._cat.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/test_images/._cat.jpg"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/test_images/._cat.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/test_images/._mult_cat.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/test_images/._mult_cat.png"
new file mode 100644
index 00000000..fe6c41cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/__MACOSX/pet_recognition/test_images/._mult_cat.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.DS_Store" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.DS_Store"
new file mode 100644
index 00000000..5008ddfc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.DS_Store" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.gitignore" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.gitignore"
new file mode 100644
index 00000000..a81c8ee1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.gitignore"
@@ -0,0 +1,138 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/.gitignore" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/.gitignore"
new file mode 100644
index 00000000..f679d583
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/.gitignore"
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../../../../:\Users\Andox\Desktop\pet_recognition\pet_recognition\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/inspectionProfiles/Project_Default.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/inspectionProfiles/Project_Default.xml"
new file mode 100644
index 00000000..fed7a5d0
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/inspectionProfiles/Project_Default.xml"
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/inspectionProfiles/profiles_settings.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/inspectionProfiles/profiles_settings.xml"
new file mode 100644
index 00000000..105ce2da
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/inspectionProfiles/profiles_settings.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/misc.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/misc.xml"
new file mode 100644
index 00000000..d1e22ecb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/misc.xml"
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/modules.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/modules.xml"
new file mode 100644
index 00000000..ee1accfe
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/modules.xml"
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/pet_recognition.iml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/pet_recognition.iml"
new file mode 100644
index 00000000..4a58d545
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/pet_recognition.iml"
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/vcs.xml" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/vcs.xml"
new file mode 100644
index 00000000..c2365ab1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/.idea/vcs.xml"
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE"
new file mode 100644
index 00000000..a50f7d70
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE"
@@ -0,0 +1,12 @@
+ YOLO LICENSE
+ Version 2, July 29 2016
+
+THIS SOFTWARE LICENSE IS PROVIDED "ALL CAPS" SO THAT YOU KNOW IT IS SUPER
+SERIOUS AND YOU DON'T MESS AROUND WITH COPYRIGHT LAW BECAUSE YOU WILL GET IN
+TROUBLE HERE ARE SOME OTHER BUZZWORDS COMMONLY IN THESE THINGS WARRANTIES
+LIABILITY CONTRACT TORT LIABLE CLAIMS RESTRICTION MERCHANTABILITY. NOW HERE'S
+THE REAL LICENSE:
+
+0. Darknet is public domain.
+1. Do whatever you want with it.
+2. Stop emailing me about it!
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.fuck" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.fuck"
new file mode 100644
index 00000000..8b1a9d81
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.fuck"
@@ -0,0 +1,13 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+Copyright (C) 2004 Sam Hocevar
+
+Everyone is permitted to copy and distribute verbatim or modified
+copies of this license document, and changing it is allowed as long
+as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.gen" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.gen"
new file mode 100644
index 00000000..c5411327
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.gen"
@@ -0,0 +1,91 @@
+RNN LICENSE Version 3, June 21 2017
+
+Copyright (c) 1990, 1989, 1999 Free87337 May 48 THIRD PARTIES OR ANY OTHER THE
+COMPLAIN OR CONSEQUENTIAL DAMAGES AND REGARDLESS OF WHETHER IN CONTRACT, TO THE
+EXTENT REPAIR OR AGENTS (NOT THE IN ANY EVENT). THE SOFTWARE WILL BE
+UNINTERRUPTED OR ERROR-FREE OR ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF ALL THE WORK (GOVERNED CODE) HIM RESPONSES, OR OF FINES,
+SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR ANY OTHER OR OTHER HARL UNDER NO
+CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE),
+PATENT PERMITTED BY THE INSTAGRAM PARENT STATE OR TORT (INCLUDING NEGLIGENCE),
+PRODUCT LIABILITY OR OTHERWISE, ARISING OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR ANYTHING PROVIDED IN THIS PRODUCT, COMMIS AND SERVICES
+ARE LICENSED SOFTWARE AND ANY RESULE OR ANY OTHER THE COPYRIGHT HOLDERS BE
+LIABLE FOR ANY SPECIAL, INCIDENTAL, CASE, SUCH WARRANTIES, EXPRESS OR IMPLIED,
+INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COPYRIGHT HOLDERS AND/OR ANY
+PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+EXPRESS OR DISTRIBUTE THAT ALL CLAIMS ARE SHALL CREATE DERAVE BE LIABLE TO YOU
+WILL HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+6\. TERMINATION. TO THE EXTENT PERMITTED BY LAW, NO USE OF THE COVERED CODE IS
+WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
+SERVICING, REPAIR OR COULT OR IN ANY WAY OUT OF THE USE OF THE WEBSITES OR
+SERVICE WILL BE CONSEQUENTIAL DAMAGES OF ANY KIND HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+
+This paragraph Agreement constitutes the entire agreement between the parties
+with respect to the Work licensed here. However, if you place the name of the
+fact that the arbitration was the consultation of the parties as a "patent is".
+Subject to the terms and conditions of this License, Contributor has knowledge
+that a license under a third party may also be used to endorse or promote
+products derived from the Work, and there is no warranty on the Software and
+Science Fees. For the purposes of this Agreement, attach the following
+disclaimers (without liabilities of written notice to the Subject Software) in a
+manner that a product is under common control with you. The Free Software
+Foundation may publish revised and/or new versions of the License for the
+Modifications made by the applicable terms. The Recipient shall promptly retain
+the covered works for any reason be entered in any federal or state or login
+Restricted Laws appearing in the United States or any of its own information
+that is not disabled from a derivative work except as expressly permitted in
+this License, to the extent that they are in receiving the Software and Source
+Code or any exercise of the rights granted to You by this License or a
+Contributor made by the Licensor or are authorized to make a reasonable
+retirement by the courts of the courts located in Santa Clara County, California
+printed and related to the Work or “Company” and Apache Software Foundation. If
+the Licensor shall be entitled to reflect your rights to use the Software and
+the Software to exercise the rights granted to the recipient without a
+requirement to exercise the rights granted by the Agreement to the provision
+will begin will appear in such cases, you will use such information without such
+corporation shall be an officer with respect to any part of the Software or any
+portion thereof. Capitalized terms are included in the Initial Contributor and
+under no circumstances will license the Service at any time and for any direct,
+indirect, special, incidental, or consequential damages of or assist in
+connection with any Services or the registration purposes only to the extent
+that it includes any or all means including the processing of which you download
+any derivative work. Any of the purchases’ transmission purposes are made
+available, if any, in other circumstances, we may review the copyright notice.
+In the event that this Agreement is required to give us strict content. The
+inclusion of the other party hereunder may also notify you Intellectual Property
+Rights to any third party. This means that the Source Code exists of the Work
+will not charge a program available to you at any time. You must include a
+prominent statement that the Software is governed under a particular version of
+this Agreement. You must include a provision to the extent that there is no
+warranty for the content of others. You agree that the Recipient was appointed
+as a Contributor, (c) are effective until terminated by hereunder, then the
+registration are not disabled and not limited to, submit any Customer Data
+without the updated use of the Software and that no fee is released. You grant
+to Use Other Arbitration Rules for Diagnostic or Services may use or modify the
+Apple Software and Consolidated Apple Software or Services. The Company may have
+full risk as a product of the Compatible Source. A Contribution by the Licensor
+or by the updated Software under the following conditions we can redistribute
+any General Provision of this Agreement. If the Program is used in accordance
+with the terms of this Agreement, Customer may provide advertisements from your
+devices that clause you can your employer or a transaction or country that has
+been controlled by the arbitrator, that they will be useful of this Agreement.
+The term "Open Source Software is available in connection with the program, and
+you may not protect the combination of the Covered Code. You should like to
+select a user's rights to charge a copy of this License. I are Contributor's
+confidentiality of the exercise of the rights granted herein. Such a covered
+work is released as a consequence, the Licensor shall be eligible for a purpose
+or subcontractor of the person or entity to the user of the user, then the word
+"Application" means having the original fee for any reason; and that no patent
+license to more than fifty stated close of the license term. The terms of this
+License will the license terms and conditions set forth in Section 2.2 (OPEC)
+and You will not use the Software or any set of responsibility for any resulting
+information that the Original Code warrants that you have the right to disclose
+these information (or in the notification; or (iii) late use of the software or
+any third party to the three (50) days before such belief to the extent that it
+includes a court court obtains the rights granted by this License.
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.gpl" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.gpl"
new file mode 100644
index 00000000..9cecc1d4
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.gpl"
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {one line to give the program's name and a brief idea of what it does.}
+ Copyright (C) {year} {name of author}
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ {project} Copyright (C) {year} {fullname}
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.meta" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.meta"
new file mode 100644
index 00000000..6728bd28
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.meta"
@@ -0,0 +1,8 @@
+ META-LICENSE
+ Version 1, June 21 2017
+
+Any and all licenses may be applied to the software either individually
+or in concert. Any issues, ambiguities, paradoxes, or metaphysical quandries
+arising from this combination should be discussed with a local faith leader,
+hermit, or guru. The Oxford comma shall be used.
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.mit" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.mit"
new file mode 100644
index 00000000..5bd806ce
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.mit"
@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2017 Joseph Redmon
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.v1" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.v1"
new file mode 100644
index 00000000..5b8709ac
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/LICENSE.v1"
@@ -0,0 +1,13 @@
+ YOLO LICENSE
+ Version 1, July 10 2015
+
+THIS SOFTWARE LICENSE IS PROVIDED "ALL CAPS" SO THAT YOU KNOW IT IS SUPER
+SERIOUS AND YOU DON'T MESS AROUND WITH COPYRIGHT LAW BECAUSE YOU WILL GET IN
+TROUBLE HERE ARE SOME OTHER BUZZWORDS COMMONLY IN THESE THINGS WARRANTIES
+LIABILITY CONTRACT TORT LIABLE CLAIMS RESTRICTION MERCHANTABILITY SUBJECT TO
+THE FOLLOWING CONDITIONS:
+
+1. #yolo
+2. #swag
+3. #blazeit
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/Makefile" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/Makefile"
new file mode 100644
index 00000000..63e15e65
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/Makefile"
@@ -0,0 +1,105 @@
+GPU=0
+CUDNN=0
+OPENCV=0
+OPENMP=0
+DEBUG=0
+
+ARCH= -gencode arch=compute_30,code=sm_30 \
+ -gencode arch=compute_35,code=sm_35 \
+ -gencode arch=compute_50,code=[sm_50,compute_50] \
+ -gencode arch=compute_52,code=[sm_52,compute_52]
+# -gencode arch=compute_20,code=[sm_20,sm_21] \ This one is deprecated?
+
+# This is what I use, uncomment if you know your arch and want to specify
+# ARCH= -gencode arch=compute_52,code=compute_52
+
+VPATH=./src/:./examples
+SLIB=libdarknet.so
+ALIB=libdarknet.a
+EXEC=darknet
+OBJDIR=./obj/
+
+CC=gcc
+CPP=g++
+NVCC=nvcc
+AR=ar
+ARFLAGS=rcs
+OPTS=-Ofast
+LDFLAGS= -lm -pthread
+COMMON= -Iinclude/ -Isrc/
+CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC
+
+ifeq ($(OPENMP), 1)
+CFLAGS+= -fopenmp
+endif
+
+ifeq ($(DEBUG), 1)
+OPTS=-O0 -g
+endif
+
+CFLAGS+=$(OPTS)
+
+ifeq ($(OPENCV), 1)
+COMMON+= -DOPENCV
+CFLAGS+= -DOPENCV
+LDFLAGS+= `pkg-config --libs opencv` -lstdc++
+COMMON+= `pkg-config --cflags opencv`
+endif
+
+ifeq ($(GPU), 1)
+COMMON+= -DGPU -I/usr/local/cuda/include/
+CFLAGS+= -DGPU
+LDFLAGS+= -L/usr/local/cuda/lib64 -lcuda -lcudart -lcublas -lcurand
+endif
+
+ifeq ($(CUDNN), 1)
+COMMON+= -DCUDNN
+CFLAGS+= -DCUDNN
+LDFLAGS+= -lcudnn
+endif
+
+OBJ=gemm.o utils.o cuda.o deconvolutional_layer.o convolutional_layer.o list.o image.o activations.o im2col.o col2im.o blas.o crop_layer.o dropout_layer.o maxpool_layer.o softmax_layer.o data.o matrix.o network.o connected_layer.o cost_layer.o parser.o option_list.o detection_layer.o route_layer.o upsample_layer.o box.o normalization_layer.o avgpool_layer.o layer.o local_layer.o shortcut_layer.o logistic_layer.o activation_layer.o rnn_layer.o gru_layer.o crnn_layer.o demo.o batchnorm_layer.o region_layer.o reorg_layer.o tree.o lstm_layer.o l2norm_layer.o yolo_layer.o iseg_layer.o image_opencv.o
+EXECOBJA=captcha.o lsd.o super.o art.o tag.o cifar.o go.o rnn.o segmenter.o regressor.o classifier.o coco.o yolo.o detector.o nightmare.o instance-segmenter.o darknet.o
+ifeq ($(GPU), 1)
+LDFLAGS+= -lstdc++
+OBJ+=convolutional_kernels.o deconvolutional_kernels.o activation_kernels.o im2col_kernels.o col2im_kernels.o blas_kernels.o crop_layer_kernels.o dropout_layer_kernels.o maxpool_layer_kernels.o avgpool_layer_kernels.o
+endif
+
+EXECOBJ = $(addprefix $(OBJDIR), $(EXECOBJA))
+OBJS = $(addprefix $(OBJDIR), $(OBJ))
+DEPS = $(wildcard src/*.h) Makefile include/darknet.h
+
+all: obj backup results $(SLIB) $(ALIB) $(EXEC)
+#all: obj results $(SLIB) $(ALIB) $(EXEC)
+
+
+$(EXEC): $(EXECOBJ) $(ALIB)
+ $(CC) $(COMMON) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(ALIB)
+
+$(ALIB): $(OBJS)
+ $(AR) $(ARFLAGS) $@ $^
+
+$(SLIB): $(OBJS)
+ $(CC) $(CFLAGS) -shared $^ -o $@ $(LDFLAGS)
+
+$(OBJDIR)%.o: %.cpp $(DEPS)
+ $(CPP) $(COMMON) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)%.o: %.c $(DEPS)
+ $(CC) $(COMMON) $(CFLAGS) -c $< -o $@
+
+$(OBJDIR)%.o: %.cu $(DEPS)
+ $(NVCC) $(ARCH) $(COMMON) --compiler-options "$(CFLAGS)" -c $< -o $@
+
+obj:
+ mkdir -p obj
+backup:
+ mkdir -p backup
+results:
+ mkdir -p results
+
+.PHONY: clean
+
+clean:
+ rm -rf $(OBJS) $(SLIB) $(ALIB) $(EXEC) $(EXECOBJ) $(OBJDIR)/*
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/README.md" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/README.md"
new file mode 100644
index 00000000..b0e028e4
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/README.md"
@@ -0,0 +1,14 @@
+
+
+# Darknet #
+Darknet is an open source neural network framework written in C and CUDA. It is fast, easy to install, and supports CPU and GPU computation.
+
+Yolo v4 paper: https://arxiv.org/abs/2004.10934
+
+Yolo v4 source code: https://github.com/AlexeyAB/darknet
+
+Useful links: https://medium.com/@alexeyab84/yolov4-the-most-accurate-real-time-neural-network-on-ms-coco-dataset-73adfd3602fe?source=friends_link&sk=6039748846bbcf1d960c3061542591d7
+
+For more information see the [Darknet project website](http://pjreddie.com/darknet).
+
+For questions or issues please use the [Google Group](https://groups.google.com/forum/#!forum/darknet).
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/alexnet.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/alexnet.cfg"
new file mode 100644
index 00000000..e2ed4bb8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/alexnet.cfg"
@@ -0,0 +1,96 @@
+[net]
+# Training
+# batch=128
+# subdivisions=1
+# Testing
+batch=1
+subdivisions=1
+height=227
+width=227
+channels=3
+momentum=0.9
+decay=0.0005
+max_crop=256
+
+learning_rate=0.01
+policy=poly
+power=4
+max_batches=800000
+
+angle=7
+hue = .1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+filters=96
+size=11
+stride=4
+pad=0
+activation=relu
+
+[maxpool]
+size=3
+stride=2
+padding=0
+
+[convolutional]
+filters=256
+size=5
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=3
+stride=2
+padding=0
+
+[convolutional]
+filters=384
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=384
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=3
+stride=2
+padding=0
+
+[connected]
+output=4096
+activation=relu
+
+[dropout]
+probability=.5
+
+[connected]
+output=4096
+activation=relu
+
+[dropout]
+probability=.5
+
+[connected]
+output=1000
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cat-dog-obj.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cat-dog-obj.data"
new file mode 100644
index 00000000..b38fe8e8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cat-dog-obj.data"
@@ -0,0 +1,5 @@
+classes = 2
+train = DARK/order/cat-dog-train.txt
+valid = DARK/order/cat-dog-test.txt
+names = DARK/order/cat-dog-obj.names
+backup = DARK/backup/
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cat-dog-yolov3-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cat-dog-yolov3-tiny.cfg"
new file mode 100644
index 00000000..445d3769
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cat-dog-yolov3-tiny.cfg"
@@ -0,0 +1,182 @@
+[net]
+# Testing
+batch=24
+subdivisions=8
+# Training
+# batch=64
+# subdivisions=2
+width=416
+height=416
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=1
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+###########
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters= 21
+activation=linear
+
+
+
+[yolo]
+mask = 3,4,5
+anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
+classes=2
+num=6
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 8
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters= 21
+activation=linear
+
+[yolo]
+mask = 0,1,2
+anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
+classes=2
+num=6
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cifar.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cifar.cfg"
new file mode 100644
index 00000000..b2f69f53
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cifar.cfg"
@@ -0,0 +1,121 @@
+[net]
+batch=128
+subdivisions=1
+height=28
+width=28
+channels=3
+max_crop=32
+min_crop=32
+
+hue=.1
+saturation=.75
+exposure=.75
+
+learning_rate=0.4
+policy=poly
+power=4
+max_batches = 5000
+momentum=0.9
+decay=0.0005
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[dropout]
+probability=.5
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[dropout]
+probability=.5
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[dropout]
+probability=.5
+
+[convolutional]
+filters=10
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[avgpool]
+
+[softmax]
+groups=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cifar.test.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cifar.test.cfg"
new file mode 100644
index 00000000..18b6c54c
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/cifar.test.cfg"
@@ -0,0 +1,117 @@
+[net]
+batch=128
+subdivisions=1
+height=32
+width=32
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.4
+policy=poly
+power=4
+max_batches = 50000
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[dropout]
+probability=.5
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[dropout]
+probability=.5
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[dropout]
+probability=.5
+
+[convolutional]
+filters=10
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[avgpool]
+
+[softmax]
+groups=1
+temperature=3
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/coco.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/coco.data"
new file mode 100644
index 00000000..bf6808e7
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/coco.data"
@@ -0,0 +1,6 @@
+classes= 80
+train = order/cat-dog-train.txt
+valid = order/cat-dog-test.txt
+#valid = data/coco_val_5k.list
+names = data/coco.names
+backup = backup/
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/combine9k.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/combine9k.data"
new file mode 100644
index 00000000..06a3e76a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/combine9k.data"
@@ -0,0 +1,10 @@
+classes= 9418
+#train = /home/pjreddie/data/coco/trainvalno5k.txt
+train = data/combine9k.train.list
+valid = /home/pjreddie/data/imagenet/det.val.files
+labels = data/9k.labels
+names = data/9k.names
+backup = backup/
+map = data/inet9k.map
+eval = imagenet
+results = results
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet.cfg"
new file mode 100644
index 00000000..375107f7
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet.cfg"
@@ -0,0 +1,120 @@
+[net]
+# Training
+# batch=128
+# subdivisions=1
+# Testing
+batch=1
+subdivisions=1
+height=256
+width=256
+min_crop=128
+max_crop=448
+channels=3
+momentum=0.9
+decay=0.0005
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet19.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet19.cfg"
new file mode 100644
index 00000000..28ac9669
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet19.cfg"
@@ -0,0 +1,205 @@
+[net]
+# Training
+#batch=128
+#subdivisions=2
+
+# Testing
+ batch=1
+ subdivisions=1
+
+height=256
+width=256
+min_crop=128
+max_crop=448
+channels=3
+momentum=0.9
+decay=0.0005
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet19_448.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet19_448.cfg"
new file mode 100644
index 00000000..c6df7306
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet19_448.cfg"
@@ -0,0 +1,197 @@
+[net]
+batch=128
+subdivisions=4
+height=448
+width=448
+max_crop=512
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.001
+policy=poly
+power=4
+max_batches=100000
+
+angle=7
+hue = .1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet53.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet53.cfg"
new file mode 100644
index 00000000..7b6d5766
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet53.cfg"
@@ -0,0 +1,566 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet53_448.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet53_448.cfg"
new file mode 100644
index 00000000..dedab1b9
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet53_448.cfg"
@@ -0,0 +1,559 @@
+[net]
+# Training - start training with darknet53.weights
+# batch=128
+# subdivisions=8
+
+# Testing
+batch=1
+subdivisions=1
+
+height=448
+width=448
+channels=3
+min_crop=448
+max_crop=512
+
+learning_rate=0.001
+policy=poly
+power=4
+max_batches=100000
+momentum=0.9
+decay=0.0005
+
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet9000.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet9000.cfg"
new file mode 100644
index 00000000..9dd2dfbb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/darknet9000.cfg"
@@ -0,0 +1,205 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+# Testing
+batch = 1
+subdivisions = 1
+height=448
+width=448
+max_crop=512
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.001
+policy=poly
+power=4
+max_batches=100000
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=9418
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+tree=data/9k.tree
+
+[cost]
+type=masked
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/densenet201.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/densenet201.cfg"
new file mode 100644
index 00000000..65b4aecc
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/densenet201.cfg"
@@ -0,0 +1,1951 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+max_crop=448
+channels=3
+momentum=0.9
+decay=0.0005
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=1600000
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[route]
+layers=-1,-3
+
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction.cfg"
new file mode 100644
index 00000000..66cb15f8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction.cfg"
@@ -0,0 +1,209 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+
+# Testing
+batch=1
+subdivisions=1
+
+height=224
+width=224
+max_crop=320
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=1600000
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=192
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[avgpool]
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction.conv.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction.conv.cfg"
new file mode 100644
index 00000000..2a7d09ec
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction.conv.cfg"
@@ -0,0 +1,179 @@
+[net]
+batch=1
+subdivisions=1
+height=256
+width=256
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.5
+policy=poly
+power=6
+max_batches=500000
+
+[convolutional]
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=192
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[avgpool]
+
+[connected]
+output=1000
+activation=leaky
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction22k.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction22k.cfg"
new file mode 100644
index 00000000..b5f54090
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/extraction22k.cfg"
@@ -0,0 +1,206 @@
+[net]
+batch=128
+subdivisions=1
+height=224
+width=224
+max_crop=320
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.01
+max_batches = 0
+policy=steps
+steps=444000,590000,970000
+scales=.5,.2,.1
+
+#policy=sigmoid
+#gamma=.00008
+#step=100000
+#max_batches=200000
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=192
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[avgpool]
+
+[connected]
+output=21842
+activation=leaky
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/go.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/go.cfg"
new file mode 100644
index 00000000..c730092f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/go.cfg"
@@ -0,0 +1,132 @@
+[net]
+batch=512
+subdivisions=1
+height=19
+width=19
+channels=1
+momentum=0.9
+decay=0.0005
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=10000000
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=1
+size=1
+stride=1
+pad=1
+activation=linear
+
+[reorg]
+extra=1
+stride=1
+
+[softmax]
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/go.test.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/go.test.cfg"
new file mode 100644
index 00000000..1e4e4380
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/go.test.cfg"
@@ -0,0 +1,132 @@
+[net]
+batch=1
+subdivisions=1
+height=19
+width=19
+channels=1
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.01
+policy=poly
+power=4
+max_batches=100000
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+batch_normalize=1
+
+[convolutional]
+filters=1
+size=1
+stride=1
+pad=1
+activation=linear
+
+[reorg]
+extra=1
+stride=1
+
+[softmax]
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/gru.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/gru.cfg"
new file mode 100644
index 00000000..60642212
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/gru.cfg"
@@ -0,0 +1,29 @@
+[net]
+inputs=256
+momentum=0.9
+decay=0.0
+subdivisions=1
+batch = 1
+time_steps=1
+learning_rate=.002
+adam=1
+
+policy=constant
+power=4
+max_batches=1000000
+
+[gru]
+output = 256
+
+[gru]
+output = 256
+
+[gru]
+output = 256
+
+[connected]
+output=256
+activation=linear
+
+[softmax]
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet1k.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet1k.data"
new file mode 100644
index 00000000..6634a274
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet1k.data"
@@ -0,0 +1,8 @@
+classes=1000
+train = /data/imagenet/imagenet1k.train.list
+valid = /data/imagenet/imagenet1k.valid.list
+backup = /home/pjreddie/backup/
+labels = data/imagenet.labels.list
+names = data/imagenet.shortnames.list
+top=5
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet22k.dataset" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet22k.dataset"
new file mode 100644
index 00000000..e25ef007
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet22k.dataset"
@@ -0,0 +1,9 @@
+classes=21842
+train = /data/imagenet/imagenet22k.train.list
+valid = /data/imagenet/imagenet22k.valid.list
+#valid = /data/imagenet/imagenet1k.valid.list
+backup = /home/pjreddie/backup/
+labels = data/imagenet.labels.list
+names = data/imagenet.shortnames.list
+top = 5
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet9k.hierarchy.dataset" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet9k.hierarchy.dataset"
new file mode 100644
index 00000000..41fb71b0
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/imagenet9k.hierarchy.dataset"
@@ -0,0 +1,9 @@
+classes=9418
+train = data/9k.train.list
+valid = /data/imagenet/imagenet1k.valid.list
+leaves = data/imagenet1k.labels
+backup = /home/pjreddie/backup/
+labels = data/9k.labels
+names = data/9k.names
+top=5
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/jnet-conv.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/jnet-conv.cfg"
new file mode 100644
index 00000000..056f82aa
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/jnet-conv.cfg"
@@ -0,0 +1,118 @@
+[net]
+batch=1
+subdivisions=1
+height=10
+width=10
+channels=3
+learning_rate=0.01
+momentum=0.9
+decay=0.0005
+
+[convolutional]
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+stride=2
+size=2
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+stride=2
+size=2
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+stride=2
+size=2
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+stride=2
+size=2
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+stride=2
+size=2
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/openimages.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/openimages.data"
new file mode 100644
index 00000000..fa80e5ab
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/openimages.data"
@@ -0,0 +1,8 @@
+classes= 601
+train = /home/pjreddie/data/openimsv4/openimages.train.list
+#valid = coco_testdev
+valid = data/coco_val_5k.list
+names = data/openimages.names
+backup = /home/pjreddie/backup/
+eval=coco
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet101.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet101.cfg"
new file mode 100644
index 00000000..de458820
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet101.cfg"
@@ -0,0 +1,990 @@
+[net]
+# Training
+# batch=128
+# subdivisions=2
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+# Conv 4
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+#Conv 5
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+
+
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+
+[cost]
+type=sse
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet152.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet152.cfg"
new file mode 100644
index 00000000..e8e3297a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet152.cfg"
@@ -0,0 +1,1460 @@
+[net]
+# Training
+# batch=128
+# subdivisions=8
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+max_crop=448
+channels=3
+momentum=0.9
+decay=0.0005
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=1600000
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+# Conv 4
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+#Conv 5
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+
+
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet18.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet18.cfg"
new file mode 100644
index 00000000..275f4bdb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet18.cfg"
@@ -0,0 +1,228 @@
+[net]
+# Training
+# batch=128
+# subdivisions=1
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Strided Residual Block
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+
+# Strided Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+
+# Strided Residual Block
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+
+
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet34.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet34.cfg"
new file mode 100644
index 00000000..9f68f096
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet34.cfg"
@@ -0,0 +1,392 @@
+[net]
+# Training
+# batch=128
+# subdivisions=2
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Strided Residual Block
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Strided Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+# Residual Block
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+activation=leaky
+from=-3
+
+
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet50.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet50.cfg"
new file mode 100644
index 00000000..d0d7c511
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnet50.cfg"
@@ -0,0 +1,510 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+# Conv 4
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+#Conv 5
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext101-32x4d.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext101-32x4d.cfg"
new file mode 100644
index 00000000..8538ccc3
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext101-32x4d.cfg"
@@ -0,0 +1,1053 @@
+[net]
+# Training
+# batch=128
+# subdivisions=8
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=4096
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=4096
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=4096
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext152-32x4d.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext152-32x4d.cfg"
new file mode 100644
index 00000000..48279fd2
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext152-32x4d.cfg"
@@ -0,0 +1,1562 @@
+[net]
+# Training
+# batch=128
+# subdivisions=16
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=4096
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=4096
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+groups = 32
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=4096
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext50.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext50.cfg"
new file mode 100644
index 00000000..12aebdf6
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/resnext50.cfg"
@@ -0,0 +1,523 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+min_crop=128
+max_crop=448
+
+burn_in=1000
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=800000
+momentum=0.9
+decay=0.0005
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+groups=32
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+
+# Conv 4
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+groups=32
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+#Conv 5
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+groups=32
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+groups=32
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=2048
+size=1
+stride=1
+pad=1
+activation=linear
+
+[shortcut]
+from=-4
+activation=leaky
+
+[avgpool]
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[softmax]
+groups=1
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/rnn.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/rnn.cfg"
new file mode 100644
index 00000000..61b202f3
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/rnn.cfg"
@@ -0,0 +1,38 @@
+[net]
+subdivisions=1
+inputs=256
+batch = 1
+momentum=0.9
+decay=0.001
+max_batches = 2000
+time_steps=1
+learning_rate=0.1
+policy=steps
+steps=1000,1500
+scales=.1,.1
+
+[rnn]
+batch_normalize=1
+output = 1024
+hidden=1024
+activation=leaky
+
+[rnn]
+batch_normalize=1
+output = 1024
+hidden=1024
+activation=leaky
+
+[rnn]
+batch_normalize=1
+output = 1024
+hidden=1024
+activation=leaky
+
+[connected]
+output=256
+activation=leaky
+
+[softmax]
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/rnn.train.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/rnn.train.cfg"
new file mode 100644
index 00000000..b9748990
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/rnn.train.cfg"
@@ -0,0 +1,38 @@
+[net]
+subdivisions=1
+inputs=256
+batch = 128
+momentum=0.9
+decay=0.001
+max_batches = 2000
+time_steps=576
+learning_rate=0.1
+policy=steps
+steps=1000,1500
+scales=.1,.1
+
+[rnn]
+batch_normalize=1
+output = 1024
+hidden=1024
+activation=leaky
+
+[rnn]
+batch_normalize=1
+output = 1024
+hidden=1024
+activation=leaky
+
+[rnn]
+batch_normalize=1
+output = 1024
+hidden=1024
+activation=leaky
+
+[connected]
+output=256
+activation=leaky
+
+[softmax]
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/strided.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/strided.cfg"
new file mode 100644
index 00000000..2f745085
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/strided.cfg"
@@ -0,0 +1,182 @@
+[net]
+batch=128
+subdivisions=4
+height=256
+width=256
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.01
+policy=steps
+scales=.1,.1,.1
+steps=200000,300000,400000
+max_batches=800000
+
+
+[crop]
+crop_height=224
+crop_width=224
+flip=1
+angle=0
+saturation=1
+exposure=1
+shift=.2
+
+[convolutional]
+filters=64
+size=7
+stride=2
+pad=1
+activation=ramp
+
+[convolutional]
+filters=192
+size=3
+stride=2
+pad=1
+activation=ramp
+
+[convolutional]
+filters=128
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=3
+stride=2
+pad=1
+activation=ramp
+
+[convolutional]
+filters=128
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=128
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=512
+size=3
+stride=2
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=256
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=1024
+size=3
+stride=2
+pad=1
+activation=ramp
+
+[convolutional]
+filters=512
+size=1
+stride=1
+pad=1
+activation=ramp
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=ramp
+
+[maxpool]
+size=3
+stride=2
+
+[connected]
+output=4096
+activation=ramp
+
+[dropout]
+probability=0.5
+
+[connected]
+output=1000
+activation=ramp
+
+[softmax]
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/t1.test.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/t1.test.cfg"
new file mode 100644
index 00000000..b3628114
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/t1.test.cfg"
@@ -0,0 +1,117 @@
+[net]
+batch=1
+subdivisions=1
+height=224
+width=224
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.0005
+policy=steps
+steps=200,400,600,20000,30000
+scales=2.5,2,2,.1,.1
+max_batches = 40000
+
+[convolutional]
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[connected]
+output= 1470
+activation=linear
+
+[detection]
+classes=20
+coords=4
+rescore=1
+side=7
+num=2
+softmax=0
+sqrt=1
+jitter=.2
+
+object_scale=1
+noobject_scale=.5
+class_scale=1
+coord_scale=5
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/tiny.cfg"
new file mode 100644
index 00000000..f97327cf
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/tiny.cfg"
@@ -0,0 +1,174 @@
+[net]
+# Train
+batch=128
+subdivisions=1
+# Test
+# batch=1
+# subdivisions=1
+height=224
+width=224
+channels=3
+momentum=0.9
+decay=0.0005
+max_crop=320
+
+learning_rate=0.1
+policy=poly
+power=4
+max_batches=1600000
+
+angle=7
+hue=.1
+saturation=.75
+exposure=.75
+aspect=.75
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1000
+size=1
+stride=1
+pad=1
+activation=linear
+
+[avgpool]
+
+[softmax]
+groups=1
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/vgg-16.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/vgg-16.cfg"
new file mode 100644
index 00000000..c73b17b6
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/vgg-16.cfg"
@@ -0,0 +1,157 @@
+[net]
+# Training
+# batch=128
+# subdivisions=4
+
+# Testing
+batch=1
+subdivisions=1
+
+height=256
+width=256
+channels=3
+learning_rate=0.00001
+momentum=0.9
+decay=0.0005
+
+[crop]
+crop_height=224
+crop_width=224
+flip=1
+exposure=1
+saturation=1
+angle=0
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[connected]
+output=4096
+activation=relu
+
+[dropout]
+probability=.5
+
+[connected]
+output=4096
+activation=relu
+
+[dropout]
+probability=.5
+
+[connected]
+output=1000
+activation=linear
+
+[softmax]
+groups=1
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/vgg-conv.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/vgg-conv.cfg"
new file mode 100644
index 00000000..21e1d724
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/vgg-conv.cfg"
@@ -0,0 +1,121 @@
+[net]
+batch=1
+subdivisions=1
+width=224
+height=224
+channels=3
+learning_rate=0.00001
+momentum=0.9
+decay=0.0005
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=64
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=128
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=256
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[convolutional]
+filters=512
+size=3
+stride=1
+pad=1
+activation=relu
+
+[maxpool]
+size=2
+stride=2
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/voc.data" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/voc.data"
new file mode 100644
index 00000000..7807b5d2
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/voc.data"
@@ -0,0 +1,6 @@
+classes= 20
+train = /home/pjreddie/data/voc/train.txt
+valid = /home/pjreddie/data/voc/2007_test.txt
+names = data/voc.names
+backup = backup
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/writing.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/writing.cfg"
new file mode 100644
index 00000000..1ed899bc
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/writing.cfg"
@@ -0,0 +1,41 @@
+[net]
+batch=128
+subdivisions=2
+height=256
+width=256
+channels=3
+learning_rate=0.00000001
+momentum=0.9
+decay=0.0005
+seen=0
+
+[convolutional]
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=1
+size=3
+stride=1
+pad=1
+activation=logistic
+
+[cost]
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolo9000.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolo9000.cfg"
new file mode 100644
index 00000000..e745f78a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolo9000.cfg"
@@ -0,0 +1,218 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=8
+batch=1
+subdivisions=1
+height=544
+width=544
+channels=3
+momentum=0.9
+decay=0.0005
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+hue=.1
+saturation=.75
+exposure=.75
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+filters=28269
+size=1
+stride=1
+pad=1
+activation=linear
+
+[region]
+anchors = 0.77871, 1.14074, 3.00525, 4.31277, 9.22725, 9.61974
+bias_match=1
+classes=9418
+coords=4
+num=3
+softmax=1
+jitter=.2
+rescore=1
+
+object_scale=5
+noobject_scale=1
+class_scale=1
+coord_scale=1
+
+thresh = .6
+absolute=1
+random=1
+
+tree=data/9k.tree
+map = data/coco9k.map
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov1-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov1-tiny.cfg"
new file mode 100644
index 00000000..a5e7b492
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov1-tiny.cfg"
@@ -0,0 +1,130 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=8
+height=448
+width=448
+channels=3
+momentum=0.9
+decay=0.0005
+
+saturation=.75
+exposure=.75
+hue = .1
+
+learning_rate=0.0005
+policy=steps
+steps=200,400,600,800,20000,30000
+scales=2.5,2,2,2,.1,.1
+max_batches = 40000
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[connected]
+output= 1470
+activation=linear
+
+[detection]
+classes=20
+coords=4
+rescore=1
+side=7
+num=2
+softmax=0
+sqrt=1
+jitter=.2
+
+object_scale=1
+noobject_scale=.5
+class_scale=1
+coord_scale=5
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov1.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov1.cfg"
new file mode 100644
index 00000000..06cf6e67
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov1.cfg"
@@ -0,0 +1,261 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=8
+height=448
+width=448
+channels=3
+momentum=0.9
+decay=0.0005
+saturation=1.5
+exposure=1.5
+hue=.1
+
+learning_rate=0.0005
+policy=steps
+steps=200,400,600,20000,30000
+scales=2.5,2,2,.1,.1
+max_batches = 40000
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=7
+stride=2
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=192
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+#######
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=2
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[local]
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[dropout]
+probability=.5
+
+[connected]
+output= 1715
+activation=linear
+
+[detection]
+classes=20
+coords=4
+rescore=1
+side=7
+num=3
+softmax=0
+sqrt=1
+jitter=.2
+
+object_scale=1
+noobject_scale=.5
+class_scale=1
+coord_scale=5
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-tiny-voc.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-tiny-voc.cfg"
new file mode 100644
index 00000000..c4c127cd
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-tiny-voc.cfg"
@@ -0,0 +1,138 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=2
+width=416
+height=416
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+max_batches = 40200
+policy=steps
+steps=-1,100,20000,30000
+scales=.1,10,.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=1
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+###########
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=125
+activation=linear
+
+[region]
+anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11, 16.62,10.52
+bias_match=1
+classes=20
+coords=4
+num=5
+softmax=1
+jitter=.2
+rescore=1
+
+object_scale=5
+noobject_scale=1
+class_scale=1
+coord_scale=1
+
+absolute=1
+thresh = .6
+random=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-tiny.cfg"
new file mode 100644
index 00000000..81d0ac45
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-tiny.cfg"
@@ -0,0 +1,139 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=2
+width=416
+height=416
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=1
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+###########
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=425
+activation=linear
+
+[region]
+anchors = 0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828
+bias_match=1
+classes=80
+coords=4
+num=5
+softmax=1
+jitter=.2
+rescore=0
+
+object_scale=5
+noobject_scale=1
+class_scale=1
+coord_scale=1
+
+absolute=1
+thresh = .6
+random=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-voc.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-voc.cfg"
new file mode 100644
index 00000000..dbf2de28
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2-voc.cfg"
@@ -0,0 +1,258 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=8
+height=416
+width=416
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 80200
+policy=steps
+steps=40000,60000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+
+#######
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[route]
+layers=-9
+
+[convolutional]
+batch_normalize=1
+size=1
+stride=1
+pad=1
+filters=64
+activation=leaky
+
+[reorg]
+stride=2
+
+[route]
+layers=-1,-4
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=125
+activation=linear
+
+
+[region]
+anchors = 1.3221, 1.73145, 3.19275, 4.00944, 5.05587, 8.09892, 9.47112, 4.84053, 11.2364, 10.0071
+bias_match=1
+classes=20
+coords=4
+num=5
+softmax=1
+jitter=.3
+rescore=1
+
+object_scale=5
+noobject_scale=1
+class_scale=1
+coord_scale=1
+
+absolute=1
+thresh = .6
+random=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2.cfg"
new file mode 100644
index 00000000..088edf81
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov2.cfg"
@@ -0,0 +1,258 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=8
+width=608
+height=608
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+
+#######
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[route]
+layers=-9
+
+[convolutional]
+batch_normalize=1
+size=1
+stride=1
+pad=1
+filters=64
+activation=leaky
+
+[reorg]
+stride=2
+
+[route]
+layers=-1,-4
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=425
+activation=linear
+
+
+[region]
+anchors = 0.57273, 0.677385, 1.87446, 2.06253, 3.33843, 5.47434, 7.88282, 3.52778, 9.77052, 9.16828
+bias_match=1
+classes=80
+coords=4
+num=5
+softmax=1
+jitter=.3
+rescore=1
+
+object_scale=5
+noobject_scale=1
+class_scale=1
+coord_scale=1
+
+absolute=1
+thresh = .6
+random=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-openimages.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-openimages.cfg"
new file mode 100644
index 00000000..65d241a7
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-openimages.cfg"
@@ -0,0 +1,789 @@
+[net]
+# Testing
+ batch=1
+ subdivisions=1
+# Training
+batch=64
+subdivisions=16
+width=608
+height=608
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=5000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+######################
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=1818
+activation=linear
+
+
+[yolo]
+mask = 6,7,8
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=601
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 61
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=1818
+activation=linear
+
+
+[yolo]
+mask = 3,4,5
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=601
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 36
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=1818
+activation=linear
+
+
+[yolo]
+mask = 0,1,2
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=601
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-spp.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-spp.cfg"
new file mode 100644
index 00000000..4ad2a052
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-spp.cfg"
@@ -0,0 +1,822 @@
+[net]
+# Testing
+batch=1
+subdivisions=1
+# Training
+# batch=64
+# subdivisions=16
+width=608
+height=608
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+######################
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+### SPP ###
+[maxpool]
+stride=1
+size=5
+
+[route]
+layers=-2
+
+[maxpool]
+stride=1
+size=9
+
+[route]
+layers=-4
+
+[maxpool]
+stride=1
+size=13
+
+[route]
+layers=-1,-3,-5,-6
+
+### End SPP ###
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+[yolo]
+mask = 6,7,8
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=80
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 61
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+[yolo]
+mask = 3,4,5
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=80
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 36
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+[yolo]
+mask = 0,1,2
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=80
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-tiny.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-tiny.cfg"
new file mode 100644
index 00000000..e5aad456
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-tiny.cfg"
@@ -0,0 +1,182 @@
+[net]
+# Testing
+#batch=1
+#subdivisions=1
+#Training
+batch=64
+subdivisions=8
+width=416
+height=416
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=16
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=2
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[maxpool]
+size=2
+stride=1
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+###########
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+
+[yolo]
+mask = 3,4,5
+anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
+classes=80
+num=6
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 8
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+[yolo]
+mask = 0,1,2
+anchors = 10,14, 23,27, 37,58, 81,82, 135,169, 344,319
+classes=80
+num=6
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-voc.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-voc.cfg"
new file mode 100644
index 00000000..3f3e8dfb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3-voc.cfg"
@@ -0,0 +1,785 @@
+[net]
+# Testing
+ batch=1
+ subdivisions=1
+# Training
+# batch=64
+# subdivisions=16
+width=416
+height=416
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 50200
+policy=steps
+steps=40000,45000
+scales=.1,.1
+
+
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+######################
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=75
+activation=linear
+
+[yolo]
+mask = 6,7,8
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=20
+num=9
+jitter=.3
+ignore_thresh = .5
+truth_thresh = 1
+random=1
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 61
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=75
+activation=linear
+
+[yolo]
+mask = 3,4,5
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=20
+num=9
+jitter=.3
+ignore_thresh = .5
+truth_thresh = 1
+random=1
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 36
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=75
+activation=linear
+
+[yolo]
+mask = 0,1,2
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=20
+num=9
+jitter=.3
+ignore_thresh = .5
+truth_thresh = 1
+random=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3.cfg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3.cfg"
new file mode 100644
index 00000000..938ffff2
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/cfg/yolov3.cfg"
@@ -0,0 +1,789 @@
+[net]
+# Testing
+# batch=1
+# subdivisions=1
+# Training
+batch=64
+subdivisions=16
+width=608
+height=608
+channels=3
+momentum=0.9
+decay=0.0005
+angle=0
+saturation = 1.5
+exposure = 1.5
+hue=.1
+
+learning_rate=0.001
+burn_in=1000
+max_batches = 500200
+policy=steps
+steps=400000,450000
+scales=.1,.1
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=3
+stride=1
+pad=1
+activation=leaky
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=32
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=64
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+# Downsample
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=2
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=1024
+size=3
+stride=1
+pad=1
+activation=leaky
+
+[shortcut]
+from=-3
+activation=linear
+
+######################
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=512
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=1024
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+[yolo]
+mask = 6,7,8
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=80
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 61
+
+
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=256
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=512
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+[yolo]
+mask = 3,4,5
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=80
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
+
+
+[route]
+layers = -4
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[upsample]
+stride=2
+
+[route]
+layers = -1, 36
+
+
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+filters=128
+size=1
+stride=1
+pad=1
+activation=leaky
+
+[convolutional]
+batch_normalize=1
+size=3
+stride=1
+pad=1
+filters=256
+activation=leaky
+
+[convolutional]
+size=1
+stride=1
+pad=1
+filters=255
+activation=linear
+
+
+[yolo]
+mask = 0,1,2
+anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
+classes=80
+num=9
+jitter=.3
+ignore_thresh = .7
+truth_thresh = 1
+random=1
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.labels" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.labels"
new file mode 100644
index 00000000..e2bd3082
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.labels"
@@ -0,0 +1,9418 @@
+n00002452
+n00020827
+n00002684
+n11425580
+n05220461
+n09225146
+n05538625
+n01900150
+n05225602
+n05418717
+n05302499
+n05578095
+n09475179
+n09376198
+n14877585
+n15046900
+n00019613
+n00021265
+n15067877
+n09436708
+n14915184
+n07555863
+n07850329
+n07849336
+n07705711
+n07622061
+n07594066
+n07854982
+n07852833
+n07852614
+n07854184
+n07852229
+n07851443
+n07705931
+n07707451
+n07752966
+n07760859
+n07747055
+n07754684
+n07768694
+n07764847
+n07768858
+n07739125
+n07746551
+n07753113
+n07763987
+n07748574
+n07751451
+n07762244
+n07750872
+n07742704
+n07765208
+n07763792
+n07767847
+n07766173
+n07751004
+n07760153
+n07758680
+n07753592
+n07751280
+n07769731
+n07763629
+n07755411
+n07754451
+n07753275
+n07764155
+n07765073
+n07762114
+n07762913
+n07753743
+n07765999
+n07765361
+n07752377
+n07757132
+n07769584
+n07751148
+n07761141
+n07761309
+n07749731
+n07747951
+n07749446
+n07747607
+n07749582
+n07750449
+n07749969
+n07750146
+n07748157
+n07748416
+n07748276
+n07748912
+n07748753
+n07749192
+n07749312
+n07739344
+n07739506
+n07742313
+n07740220
+n07740954
+n07740461
+n07740342
+n07745940
+n07767171
+n07744246
+n07744057
+n07744811
+n07744682
+n07745466
+n07743902
+n07746334
+n07746186
+n07743544
+n07743224
+n07755707
+n07756951
+n07755929
+n07757990
+n07757312
+n07757511
+n07734744
+n07719213
+n07768423
+n07735510
+n07718472
+n07710283
+n07713395
+n07708398
+n07710007
+n07718747
+n07708798
+n07723039
+n07715561
+n07709333
+n07730406
+n07730033
+n07733394
+n07713267
+n07722217
+n07817871
+n07736813
+n07719839
+n07712267
+n07730207
+n07710616
+n07710952
+n07711569
+n07711080
+n07713763
+n07713895
+n07733567
+n07715103
+n07715221
+n07715407
+n07714990
+n07735687
+n07735803
+n07714188
+n07714448
+n07714895
+n07714571
+n07714078
+n07720442
+n07734017
+n07713074
+n07734555
+n07720615
+n07721325
+n07720875
+n07721195
+n07721018
+n07721456
+n07722052
+n07721942
+n07721678
+n07734292
+n07734183
+n07724943
+n07725376
+n07726095
+n07725255
+n07729485
+n07726796
+n07727458
+n07727048
+n07727578
+n07727868
+n07728804
+n07728053
+n07728585
+n07728181
+n07729384
+n07729828
+n07725531
+n07725789
+n07725888
+n07715721
+n07717070
+n07716906
+n07716358
+n07716034
+n07717556
+n07717410
+n07720277
+n07736256
+n07723330
+n07719616
+n07736692
+n07733712
+n07732747
+n07730855
+n07731587
+n07731006
+n07723559
+n07724654
+n07724269
+n07724492
+n07722485
+n07723177
+n07722888
+n07639069
+n07679356
+n07682197
+n07680517
+n07695878
+n07685730
+n07682316
+n07684517
+n07680761
+n07681691
+n07684600
+n07684164
+n07686720
+n07680932
+n07687211
+n07681450
+n07683786
+n07695742
+n07682477
+n07686873
+n07684289
+n07683490
+n07682808
+n07690585
+n07684938
+n07690892
+n07685399
+n07693972
+n07690273
+n07691091
+n07687789
+n07685218
+n07694516
+n07694839
+n07694659
+n07690511
+n07690739
+n07690431
+n07688624
+n07688898
+n07689003
+n07690152
+n07693725
+n07690019
+n07692614
+n07691758
+n07691539
+n07691650
+n07693223
+n07693048
+n07691237
+n07687626
+n07687381
+n07687469
+n07871810
+n07684084
+n14580897
+n15062057
+n14698884
+n14696793
+n14765422
+n14844693
+n15019030
+n12167075
+n14974264
+n14858292
+n15075141
+n04033425
+n07556637
+n07566340
+n07560652
+n07881800
+n07938313
+n07800091
+n07570720
+n01464844
+n07556406
+n07840804
+n07802417
+n07925608
+n07844867
+n07569644
+n07568502
+n07809096
+n07843775
+n07755089
+n07882497
+n07573347
+n07923748
+n07572957
+n07731952
+n07804323
+n07804771
+n07803093
+n07803545
+n07732168
+n07732636
+n07804657
+n07804900
+n07809368
+n07841345
+n07827284
+n07827130
+n07822518
+n07827410
+n07816052
+n07812184
+n07810907
+n07858595
+n07811416
+n07824702
+n07818277
+n07819769
+n07920989
+n07822323
+n07815424
+n07814390
+n07826930
+n07814487
+n07814203
+n07583066
+n07822845
+n07767344
+n07823105
+n07828987
+n07582609
+n07825972
+n07823460
+n07823698
+n07822197
+n07856270
+n07767709
+n07829412
+n07829331
+n07829248
+n07857731
+n07857170
+n07838233
+n07836838
+n07826091
+n07830593
+n07840027
+n07832416
+n07832902
+n07835921
+n07835457
+n07831146
+n07831267
+n07834618
+n07834507
+n07595914
+n07858978
+n07859583
+n07860103
+n07860331
+n07860447
+n07816164
+n07818689
+n07821260
+n07820683
+n07816575
+n07817160
+n07817315
+n07819166
+n07817024
+n07818995
+n07816398
+n07820497
+n07932841
+n07820145
+n07819896
+n07816296
+n07821758
+n07933154
+n07935379
+n07935043
+n07847198
+n07844042
+n07848196
+n07847453
+n07847917
+n07847827
+n07678729
+n07860805
+n07860988
+n07883031
+n07623136
+n07861158
+n07627931
+n07628068
+n07565161
+n07565083
+n07561590
+n07561112
+n07560903
+n07562495
+n07564971
+n07938149
+n07938007
+n07884567
+n07924033
+n07919310
+n07891189
+n07922764
+n07929519
+n07921455
+n07933274
+n07927197
+n07925966
+n07891309
+n07936263
+n07883251
+n07914271
+n07911371
+n07901587
+n07891433
+n07891726
+n07886176
+n07886057
+n07907943
+n07921615
+n07886572
+n07902121
+n07886463
+n07912211
+n07911677
+n07914777
+n07930554
+n07930433
+n07930315
+n07915491
+n07915094
+n07913393
+n07916041
+n07914995
+n07916183
+n07914413
+n07917392
+n07917133
+n07915918
+n07930864
+n07931870
+n07932039
+n07930062
+n07906111
+n07907037
+n07902799
+n07904865
+n07905474
+n07902937
+n07904395
+n07905038
+n07902336
+n07905979
+n07903101
+n07904760
+n07903208
+n07904934
+n07906284
+n07902443
+n07903841
+n07903962
+n07903731
+n07903643
+n07907161
+n07906718
+n07907831
+n07907548
+n07907429
+n07906877
+n07906572
+n07893253
+n07892418
+n07893642
+n07899003
+n07896287
+n07896661
+n07893528
+n07896165
+n07900225
+n07893891
+n07900406
+n07895237
+n07898745
+n07896060
+n07899108
+n07892512
+n07897750
+n07892813
+n07894703
+n07894102
+n07894551
+n07900616
+n07900958
+n07900734
+n07900825
+n07901457
+n07898117
+n07895435
+n07899434
+n07899292
+n07894298
+n07895595
+n07894965
+n07897865
+n07895839
+n07895710
+n07898333
+n07897438
+n07895962
+n07896893
+n07899899
+n07895100
+n07898443
+n07899533
+n07894799
+n07897975
+n07899660
+n07894451
+n07910656
+n07909593
+n07911249
+n07910048
+n07908411
+n07910379
+n07908647
+n07886849
+n07887634
+n07887099
+n07889510
+n07887192
+n07887304
+n07888229
+n07887967
+n07889274
+n07887461
+n07888465
+n07890226
+n07890352
+n07889814
+n07890068
+n07890540
+n07888816
+n07924834
+n07924443
+n07924276
+n07920540
+n07920222
+n07920052
+n07920349
+n07919441
+n07731284
+n07919572
+n07920872
+n07921239
+n07934282
+n07933799
+n07929172
+n07927931
+n07928488
+n07928367
+n07927512
+n07928887
+n07928696
+n07928790
+n07936745
+n07935737
+n07936548
+n07801508
+n07805594
+n07800740
+n07801091
+n07802026
+n07801779
+n07801892
+n07557165
+n07560193
+n07651025
+n07560331
+n07557434
+n07556970
+n05399243
+n15089258
+n07560542
+n07573696
+n07613815
+n07643981
+n07596684
+n07600696
+n07597145
+n07597365
+n07599998
+n07596967
+n07620689
+n07642471
+n07643200
+n07642742
+n07643026
+n07642933
+n07643306
+n07606538
+n07599911
+n07607138
+n07608429
+n07598256
+n07606669
+n07607605
+n07601572
+n07609632
+n07605597
+n07607967
+n07609215
+n07841907
+n07606764
+n07605944
+n07601686
+n07605380
+n07605040
+n07601809
+n07605474
+n07842130
+n07842044
+n07600285
+n07600177
+n07842202
+n07579688
+n07580053
+n07588947
+n07842753
+n07583197
+n07879350
+n07880751
+n07868200
+n07863802
+n07875152
+n07824191
+n07878785
+n07865484
+n07866015
+n07868955
+n07861557
+n07580253
+n07877187
+n07866868
+n07880458
+n07648913
+n07580470
+n07866277
+n07591961
+n07868508
+n07871436
+n07864934
+n07874780
+n07879659
+n07878926
+n07937461
+n07842433
+n07862611
+n07863374
+n07866723
+n07867021
+n07867164
+n07726525
+n07624466
+n07842308
+n07877299
+n07880080
+n07862348
+n07873464
+n07869775
+n07879953
+n07625061
+n07843636
+n07696403
+n07580592
+n07655263
+n07868340
+n07619004
+n07879174
+n07867324
+n07843464
+n07877961
+n07873807
+n07867421
+n07654298
+n07878647
+n07611839
+n07842605
+n07871720
+n07869611
+n07876651
+n07880968
+n07875436
+n07806221
+n07841495
+n07823951
+n07712382
+n07591586
+n07590320
+n07587111
+n07592481
+n07590611
+n07591473
+n07590502
+n07591049
+n07592768
+n07585758
+n07588193
+n07586894
+n07588299
+n07584110
+n07587441
+n07587023
+n07586099
+n07588574
+n07584332
+n07586604
+n07586718
+n07585107
+n07585557
+n07585208
+n07584593
+n07585906
+n07584423
+n07587618
+n07587700
+n07588111
+n07704054
+n07704205
+n07871234
+n07870167
+n07863547
+n07700003
+n07619208
+n07619409
+n07874159
+n07874343
+n07874259
+n07874441
+n07874063
+n07867751
+n07867616
+n07808587
+n07807834
+n07806633
+n07807171
+n07807710
+n07807922
+n07808904
+n07806774
+n07807472
+n07841639
+n07841800
+n07695965
+n07712748
+n07712559
+n07697825
+n07697313
+n07696728
+n07696625
+n07698543
+n07698401
+n07865105
+n07696977
+n07698250
+n07698782
+n07697100
+n07696839
+n07697537
+n07712856
+n07712959
+n07579575
+n07579787
+n07609840
+n07581346
+n07611991
+n07613266
+n07611358
+n07612632
+n07612996
+n07613480
+n07611267
+n07612367
+n07611148
+n07611046
+n07617611
+n07612137
+n07616386
+n07631926
+n07615774
+n07616487
+n07614730
+n07614500
+n07614198
+n07616748
+n07616046
+n07617051
+n07615671
+n07615190
+n07614825
+n07615460
+n07617708
+n07618432
+n07582152
+n07734879
+n07581775
+n07582277
+n07730320
+n07581249
+n15089645
+n15089472
+n15093137
+n15093298
+n15090742
+n15091473
+n14919819
+n15091669
+n14810561
+n14973585
+n15091304
+n15091846
+n15092227
+n15090065
+n07576438
+n07577374
+n07575984
+n07574602
+n07574426
+n07593199
+n07576182
+n07574923
+n07574780
+n07575726
+n07575076
+n07578093
+n07576577
+n07577144
+n07576781
+n07574504
+n07577538
+n09335240
+n00027167
+n09334396
+n09283193
+n03892891
+n09287968
+n03059685
+n00003553
+n09300905
+n09452395
+n09260907
+n08630039
+n08630985
+n09386842
+n08593262
+n08620061
+n09379111
+n08649711
+n08658309
+n08568978
+n08512259
+n03823111
+n04170933
+n09433839
+n08578517
+n08640739
+n08574314
+n08552138
+n08645104
+n08505018
+n08659861
+n08659446
+n08673395
+n08583455
+n08598301
+n08651247
+n03120491
+n02802544
+n08614632
+n08674739
+n08569998
+n08494231
+n08677424
+n08616050
+n08518171
+n08573842
+n08521623
+n03368352
+n03417345
+n04454908
+n03902482
+n04610879
+n08579352
+n03963645
+n03417749
+n08524735
+n08537837
+n08551296
+n08628141
+n08633683
+n08539072
+n09249034
+n09263912
+n08583292
+n09443281
+n08547544
+n08664443
+n04602044
+n08580944
+n03581125
+n08517676
+n08598568
+n08584914
+n03899933
+n02776631
+n03322099
+n03935234
+n04052442
+n03159535
+n15102894
+n09242389
+n09382099
+n09282208
+n09392402
+n09393605
+n09445289
+n03030880
+n03946162
+n03485997
+n03882960
+n04322026
+n03474896
+n02764398
+n02907082
+n03948830
+n09205509
+n09472413
+n09443453
+n09309292
+n09366017
+n09366317
+n09376786
+n09348460
+n09246464
+n09433442
+n09454153
+n09409752
+n09403734
+n09331251
+n09437454
+n09238926
+n09283866
+n09217230
+n09305898
+n09288635
+n09308743
+n09308572
+n09194227
+n09289331
+n09468604
+n09344324
+n09335809
+n09435739
+n09215437
+n09259219
+n09217638
+n09304750
+n09206896
+n09405787
+n09233446
+n09290444
+n09457979
+n09245515
+n09376526
+n09415671
+n09448690
+n09230041
+n09398076
+n09453008
+n09303008
+n09359803
+n09302616
+n09409512
+n09399592
+n09199101
+n09230202
+n09283405
+n09326662
+n09193705
+n09218641
+n09472597
+n09421951
+n09270735
+n09406793
+n09213434
+n09256479
+n09210862
+n09421799
+n09224725
+n09396465
+n09362945
+n09259025
+n09398677
+n09428293
+n09447666
+n09332890
+n08596076
+n09428628
+n09361517
+n09265620
+n09303528
+n09436444
+n09274152
+n09213565
+n09269472
+n09206985
+n09228055
+n09466678
+n09415584
+n09475925
+n09257843
+n09239302
+n09294877
+n00021939
+n00004258
+n00019128
+n02749953
+n02852523
+n03767112
+n14977504
+n03129123
+n03848729
+n03964744
+n04362025
+n04469003
+n04341686
+n03575240
+n03873064
+n03122748
+n03309808
+n02871147
+n03364340
+n14786479
+n03169390
+n04564698
+n04339291
+n00022903
+n03315023
+n03302121
+n03076708
+n04188643
+n03354613
+n14976871
+n03670849
+n02917521
+n04414909
+n04435180
+n02725872
+n04076846
+n02743547
+n03816849
+n04007894
+n03934656
+n03720163
+n04227144
+n04260364
+n03925226
+n04564581
+n02744844
+n04042358
+n03927091
+n03927539
+n03876519
+n04485423
+n03835197
+n03342127
+n04246271
+n04321238
+n04180314
+n03625783
+n03684611
+n03514693
+n03421485
+n04026180
+n02870526
+n04599396
+n06415688
+n03822171
+n04582205
+n03727605
+n03849679
+n04598792
+n03631922
+n02933649
+n03600722
+n03169176
+n03418618
+n02727016
+n03526198
+n03794798
+n03859608
+n03968581
+n03717447
+n03614782
+n03915900
+n04431025
+n03974070
+n02779435
+n03941231
+n04399382
+n03603442
+n09229709
+n03548402
+n03944138
+n04238128
+n04284869
+n03061211
+n03219135
+n09282724
+n09191635
+n09443641
+n04186268
+n03447358
+n03607029
+n03536348
+n02857023
+n04381860
+n04213626
+n03961939
+n04394630
+n03365592
+n04501550
+n04296562
+n03159640
+n04354182
+n03549732
+n03360300
+n03892178
+n02768973
+n03906224
+n03313333
+n02990373
+n02861886
+n03365991
+n02898711
+n03109693
+n13898207
+n04358874
+n02687821
+n03135532
+n03545756
+n03548626
+n03469175
+n03688943
+n02914991
+n04191595
+n09218315
+n03074380
+n02699494
+n02733524
+n04460130
+n04471148
+n03792048
+n03388043
+n03837869
+n03321954
+n02733213
+n03687137
+n03065424
+n02839110
+n03894379
+n03725717
+n04226464
+n03071160
+n03839993
+n02913152
+n04128413
+n04008947
+n03917198
+n03222318
+n04295881
+n03241335
+n02735688
+n02777734
+n03984381
+n03216828
+n03517899
+n03546340
+n04361095
+n13897996
+n03171356
+n03290195
+n03743902
+n03297735
+n04217882
+n02863426
+n03408054
+n03463381
+n03758089
+n03686130
+n02800497
+n03379828
+n03233744
+n02953197
+n04108822
+n03865557
+n04492749
+n04532670
+n04311004
+n03122073
+n03415486
+n04366367
+n04479939
+n03956922
+n03069752
+n04592465
+n03316406
+n03212811
+n03844673
+n04068441
+n04103094
+n03387653
+n04311595
+n03697007
+n04300358
+n04032603
+n02810782
+n03492250
+n03826186
+n03547054
+n04411264
+n03550153
+n03560430
+n03254189
+n03792972
+n04025508
+n03900979
+n02769963
+n03374473
+n02954163
+n03334291
+n04549028
+n03035252
+n03448956
+n04113765
+n03975035
+n04486054
+n02905152
+n03784896
+n04104384
+n02946127
+n04501947
+n03047052
+n04206790
+n03029197
+n03767745
+n04028581
+n04220250
+n04556948
+n04479823
+n04028764
+n04312432
+n03347617
+n03519387
+n04361260
+n03098959
+n02826886
+n02814860
+n02922292
+n04251701
+n04051825
+n03390786
+n02811936
+n02699770
+n04546855
+n03409393
+n04544325
+n02755823
+n03904657
+n02825961
+n02898369
+n04326799
+n02796623
+n03839795
+n03967942
+n03659686
+n03454707
+n04127395
+n03795580
+n02788148
+n02894605
+n03459775
+n04571566
+n04047401
+n03549589
+n04304680
+n03327234
+n03160309
+n03427296
+n03221720
+n03698815
+n03985881
+n04501370
+n03395514
+n02963821
+n04153025
+n03394649
+n03226880
+n03579538
+n04239074
+n04086446
+n02793842
+n03498662
+n04329834
+n04547592
+n04082710
+n04046974
+n03000134
+n03252637
+n03511175
+n04604644
+n03930313
+n04326547
+n04560882
+n02920369
+n03262072
+n03108853
+n04390977
+n03999160
+n03542333
+n04409384
+n02666943
+n02726681
+n02763604
+n03478756
+n03545150
+n04104500
+n04081699
+n03859280
+n03402941
+n03739518
+n03542605
+n03661043
+n02977936
+n03322570
+n03953416
+n04081281
+n03770316
+n04112654
+n03839671
+n03842012
+n04407686
+n04217546
+n03449564
+n03457902
+n04093625
+n03956157
+n04018399
+n02882190
+n03544360
+n04118635
+n02734725
+n04233124
+n03430418
+n04146050
+n03007444
+n04417809
+n03479397
+n03092166
+n02993546
+n04080705
+n08640531
+n03788498
+n08560295
+n04095109
+n04229737
+n03541696
+n03790755
+n03036022
+n03466839
+n03698723
+n03333610
+n03837698
+n03121298
+n04187547
+n03416489
+n02968074
+n03860404
+n03055857
+n02859443
+n04598318
+n02727426
+n03730334
+n03210552
+n04294879
+n03016389
+n03123809
+n02793495
+n03884778
+n03028079
+n04407435
+n04210390
+n04346328
+n03724756
+n04374735
+n03788195
+n03007130
+n03618982
+n02667576
+n02984061
+n02984203
+n03772077
+n02935658
+n04111414
+n02760099
+n02892499
+n02935891
+n03199647
+n02956699
+n03282295
+n04461437
+n03005033
+n03152303
+n04305210
+n03121431
+n03558176
+n03557360
+n02696165
+n03393017
+n04258438
+n02919792
+n04115256
+n02932400
+n03257210
+n03719053
+n03685820
+n03428090
+n03686924
+n04131368
+n03118969
+n03219483
+n04052658
+n02857477
+n03180865
+n04535524
+n03002816
+n04079244
+n03322836
+n04413969
+n02907873
+n03878066
+n04305323
+n03718458
+n04354026
+n03158186
+n04535370
+n03010915
+n03718935
+n04073948
+n03439348
+n03892557
+n03877845
+n03781244
+n02667379
+n02667478
+n03165616
+n03092314
+n03801671
+n03849814
+n03801533
+n03032252
+n03678729
+n03529860
+n03097362
+n04177931
+n02940385
+n03111041
+n03064935
+n03626115
+n02838728
+n03356858
+n02902079
+n04439585
+n03263076
+n04453037
+n03942920
+n03379204
+n03522003
+n03220692
+n02782778
+n02918112
+n02704949
+n03899768
+n03109881
+n02775178
+n03517647
+n03024064
+n02894158
+n04030518
+n03004824
+n02758134
+n03120198
+n03200231
+n04105893
+n02750070
+n03285912
+n03813078
+n02694045
+n04328946
+n03443005
+n03378005
+n02754656
+n03047941
+n03382292
+n04446276
+n04356925
+n03288500
+n04363991
+n04112579
+n03038685
+n03412058
+n03718581
+n02991302
+n03691817
+n04139395
+n03238131
+n02839592
+n02824319
+n03619890
+n03660909
+n04329477
+n04602762
+n04180229
+n02710324
+n03200701
+n04065464
+n03541091
+n04058096
+n02873839
+n03089879
+n02821627
+n03040376
+n03679712
+n03222176
+n03478907
+n04061793
+n02857644
+n04345028
+n03683708
+n03062122
+n04406239
+n03079741
+n03120778
+n03982331
+n02807731
+n03098688
+n02715513
+n04558478
+n03746486
+n04555291
+n04018667
+n03529175
+n03653740
+n04345201
+n03885535
+n04324387
+n04523831
+n04067818
+n03200539
+n02952585
+n03319745
+n04119478
+n03283221
+n04064862
+n03850245
+n04401680
+n04541987
+n03090172
+n04209613
+n03727465
+n03788601
+n03465718
+n03542860
+n03225108
+n03836062
+n03165466
+n03457008
+n03086580
+n03878211
+n03303831
+n03891538
+n03235042
+n04000592
+n03075946
+n02932019
+n03939677
+n02931148
+n03696065
+n02933462
+n03061505
+n04305572
+n02960352
+n02934451
+n04299370
+n03235180
+n04414199
+n02936714
+n03964495
+n03907227
+n04539203
+n03993703
+n03683079
+n03016737
+n03003730
+n04061969
+n02843276
+n04037220
+n03550289
+n03124590
+n04100519
+n03376159
+n04262161
+n02921884
+n03348868
+n04080454
+n03404449
+n02868638
+n03555006
+n04076713
+n03732114
+n03617095
+n02849885
+n03837606
+n03425325
+n03566193
+n03762434
+n03073694
+n03343560
+n03346455
+n02731398
+n02991847
+n03148324
+n04295571
+n03411544
+n02705201
+n03854722
+n04327204
+n04355267
+n03399677
+n04527648
+n03168107
+n02770211
+n03986704
+n03721590
+n03251533
+n02853016
+n03259505
+n04409625
+n03679384
+n03776460
+n03088389
+n02726305
+n04549919
+n02992032
+n03088580
+n04613696
+n03685307
+n04517408
+n03507241
+n03354207
+n03042490
+n03529629
+n04172107
+n04584373
+n04412416
+n02672371
+n03349892
+n02932693
+n02822064
+n03361297
+n03010473
+n04360501
+n03391770
+n03903868
+n02929289
+n03373943
+n02669295
+n04087826
+n02926591
+n04589593
+n03390983
+n03416094
+n03530642
+n04492375
+n03646916
+n03111296
+n03931765
+n04587648
+n03042697
+n04478512
+n02689144
+n03454536
+n03453443
+n04545305
+n02977619
+n04387261
+n02732827
+n04038727
+n03793186
+n04136510
+n02976350
+n03855333
+n02813399
+n04297750
+n04232800
+n03211789
+n04110178
+n03986562
+n04473108
+n03041810
+n03224603
+n03224753
+n03637898
+n03320959
+n03961711
+n02790669
+n02835829
+n03696301
+n03207630
+n04459773
+n03896526
+n03900393
+n03792526
+n04340935
+n03386011
+n03385557
+n02806088
+n03610098
+n03628511
+n02676938
+n02695627
+n03723781
+n03334382
+n02805983
+n03296328
+n03878963
+n02980441
+n02993194
+n03743016
+n04178329
+n02892201
+n03810952
+n03884926
+n03220237
+n03745571
+n03953020
+n03574555
+n04511002
+n03748162
+n03841666
+n02931417
+n03506370
+n03965456
+n03119203
+n03176763
+n04202417
+n03722288
+n02879309
+n04131208
+n04200800
+n02871525
+n03871371
+n04428634
+n03606251
+n04462240
+n03039827
+n02813544
+n03436417
+n03367410
+n03249342
+n03416640
+n03173387
+n04245508
+n02791270
+n04299215
+n04443257
+n03822656
+n02927161
+n03952576
+n03089624
+n03099274
+n02813645
+n08492461
+n03461385
+n03847823
+n04358707
+n03555426
+n03457686
+n04261281
+n03322704
+n08571898
+n03822504
+n02885882
+n03504723
+n03111690
+n03856012
+n03592245
+n03911513
+n04005630
+n04447443
+n04566257
+n03294048
+n03091374
+n03563967
+n03405265
+n03183080
+n02997391
+n04377057
+n03094503
+n03100490
+n06254669
+n03176594
+n02807523
+n03128519
+n03690938
+n04186051
+n03476991
+n03794136
+n03916031
+n03475823
+n02723165
+n03994008
+n03113152
+n02808185
+n03484487
+n03067339
+n04357314
+n03640850
+n02862916
+n04450640
+n03487444
+n02683791
+n03992325
+n03898271
+n03916470
+n03071021
+n04448070
+n03980026
+n02901793
+n04447276
+n04386792
+n03177165
+n03519081
+n03714235
+n03314780
+n03676087
+n03309687
+n03724066
+n03676483
+n04112752
+n03309110
+n03308481
+n02738031
+n03171228
+n02866578
+n02703275
+n03812924
+n02813752
+n02746365
+n03647520
+n02950256
+n03332393
+n03786715
+n02801450
+n03553248
+n02753044
+n04113641
+n04206570
+n04063373
+n04285146
+n03926148
+n03811847
+n03889726
+n03430959
+n04137444
+n03414162
+n03888257
+n03278248
+n02727825
+n02761206
+n03729951
+n02774921
+n04393095
+n02979290
+n03192543
+n04533802
+n02799897
+n03135030
+n03039259
+n04225729
+n04607035
+n03132261
+n02802721
+n03594148
+n04212282
+n03446832
+n04275661
+n04318131
+n02885338
+n02885462
+n03472232
+n04571292
+n02800213
+n02811059
+n02811204
+n02797881
+n02811350
+n02799175
+n03528901
+n03349771
+n04425804
+n04164406
+n04102037
+n04102162
+n04102618
+n03558404
+n03523987
+n04273972
+n03336282
+n03132076
+n04582869
+n03445924
+n03447075
+n04399537
+n03446070
+n04597066
+n03585073
+n03244047
+n04284341
+n04569822
+n03762332
+n04028074
+n03823216
+n03950537
+n04135024
+n03524150
+n03978686
+n03535780
+n03538037
+n04509260
+n03888605
+n04469514
+n02777292
+n04524142
+n03980478
+n03255030
+n02790996
+n03289660
+n02942699
+n03037404
+n03338821
+n03667664
+n02884994
+n03358726
+n03976467
+n03974915
+n04569063
+n03789171
+n03196062
+n03987266
+n04069434
+n04609531
+n04067658
+n03817191
+n04071263
+n03619396
+n04091097
+n03351434
+n04295081
+n04091693
+n03138669
+n03139464
+n04179824
+n03349469
+n02966687
+n03650551
+n03241093
+n03240683
+n03494706
+n04247876
+n03503718
+n04124202
+n03480719
+n02900160
+n04290615
+n04266162
+n02768226
+n02778669
+n04028315
+n03982430
+n02882647
+n03716327
+n03020416
+n04113406
+n03442756
+n04540255
+n03941417
+n04254680
+n03982232
+n02882301
+n04256891
+n03333252
+n04023962
+n02839351
+n03134739
+n03131967
+n04409515
+n03445777
+n04118538
+n03145719
+n03742019
+n02802426
+n03267113
+n03942813
+n03482877
+n02799071
+n04039742
+n02861147
+n04540053
+n03598930
+n06785654
+n03014440
+n04579986
+n03901750
+n02802215
+n03820318
+n03278914
+n03782006
+n03781787
+n04405762
+n04401088
+n03857828
+n03916720
+n02872529
+n02979186
+n02988304
+n04060647
+n02757462
+n03656957
+n03963294
+n04405540
+n03034405
+n02979074
+n02995345
+n03775388
+n04142731
+n04392985
+n03181293
+n03777754
+n03293741
+n04392526
+n02705944
+n02992529
+n04270371
+n03179910
+n03902125
+n03488438
+n03187595
+n04044498
+n04405907
+n04043733
+n04137773
+n03516996
+n03046921
+n04077430
+n03517760
+n04315948
+n03584254
+n04546340
+n03584400
+n03436182
+n02942349
+n04404997
+n03909160
+n04026053
+n04173511
+n04070003
+n03257586
+n03509608
+n04171208
+n04450243
+n04506506
+n03434188
+n03567066
+n02923129
+n03386544
+n03046802
+n03757604
+n03927299
+n03924679
+n04608923
+n03316105
+n03767459
+n03987990
+n03084834
+n03422072
+n02855390
+n02921029
+n03425769
+n03871524
+n02852360
+n04105704
+n04408871
+n04241573
+n04402057
+n03664943
+n03605915
+n03543012
+n03196990
+n03639497
+n02840134
+n04594218
+n02999410
+n03086868
+n02790823
+n03886641
+n02709637
+n03374838
+n02835412
+n04440963
+n03011018
+n03600977
+n03093792
+n03228967
+n04573281
+n03521076
+n04144241
+n04571958
+n04160372
+n03787523
+n02928299
+n04333869
+n03213826
+n04476972
+n04593866
+n02788689
+n04451818
+n04516672
+n04116512
+n03816136
+n03294833
+n04317420
+n02908217
+n03532342
+n04185071
+n04285622
+n03653220
+n04369282
+n03346135
+n03837422
+n04317833
+n03039947
+n04100174
+n04608567
+n04208427
+n04282872
+n03396074
+n02865931
+n04112147
+n04459909
+n03659292
+n04463679
+n03487090
+n03138344
+n04317976
+n03613592
+n04393808
+n03903424
+n04099003
+n03470629
+n04264628
+n02771004
+n04193377
+n04400737
+n02670683
+n04367011
+n03489162
+n03588951
+n03919430
+n03418242
+n03967562
+n03075097
+n03239726
+n03154446
+n04387706
+n03417970
+n04050066
+n04299963
+n03684224
+n03919289
+n03970156
+n03941684
+n03966976
+n04258859
+n04266486
+n03481172
+n03946076
+n04606574
+n04154565
+n04489817
+n04140064
+n03848348
+n04150980
+n04208210
+n02898269
+n04269944
+n02966545
+n03430313
+n03715386
+n03731695
+n04457910
+n03947466
+n02680754
+n03848168
+n02697675
+n02886434
+n03474779
+n03376938
+n03488188
+n04016240
+n04016576
+n03109150
+n02877962
+n02951585
+n03511333
+n03649909
+n03995856
+n04089976
+n03995372
+n03240140
+n03154073
+n04503593
+n02844307
+n02848216
+n03624400
+n02866386
+n03030557
+n03265032
+n04148054
+n03623556
+n02764044
+n04057047
+n04594828
+n03020692
+n03954731
+n04186848
+n04250473
+n04016684
+n04163530
+n02973904
+n02880842
+n03973628
+n03041632
+n03549473
+n02976123
+n03890093
+n03658185
+n04373089
+n03911658
+n02811468
+n03498962
+n04185804
+n04332074
+n04127521
+n03067212
+n04597400
+n03601638
+n04247630
+n04283585
+n03621049
+n02997607
+n03403643
+n04103206
+n04059516
+n03724417
+n03621377
+n04293119
+n03775199
+n03101517
+n03101986
+n03454885
+n03767966
+n03266371
+n04578934
+n02850732
+n03880531
+n03133878
+n02999138
+n04270147
+n03459328
+n03284981
+n04309548
+n03101796
+n03101156
+n04500060
+n03846677
+n04317325
+n03400231
+n04097760
+n04596742
+n04138977
+n03453231
+n03047799
+n03984234
+n03262519
+n04326676
+n03992703
+n04282992
+n03018209
+n02869155
+n03713436
+n03317788
+n03625646
+n03133050
+n04546194
+n03729826
+n03053474
+n03332271
+n04277352
+n04321453
+n04296261
+n03250847
+n03715669
+n02949202
+n04374315
+n02806379
+n04381724
+n04491388
+n02698634
+n03355925
+n03141823
+n03274265
+n04453156
+n04122349
+n04156140
+n03475581
+n02902687
+n04185946
+n03908714
+n04310904
+n03145522
+n04039381
+n04292414
+n04409806
+n02772700
+n04426316
+n04333129
+n03012013
+n04072551
+n03831382
+n03651843
+n04156946
+n03873416
+n02831894
+n04150153
+n03258905
+n04292921
+n02906734
+n04367480
+n04111190
+n04549629
+n04182322
+n03949317
+n03616428
+n02764779
+n03976657
+n03351979
+n03091044
+n04434531
+n03244231
+n03127408
+n04472563
+n04277493
+n02946824
+n02871824
+n04319937
+n04230603
+n03051396
+n02931836
+n04267577
+n03726993
+n03726760
+n02883004
+n04610676
+n03775847
+n04115996
+n03711999
+n03382856
+n03374372
+n04279353
+n03908204
+n03906997
+n03518943
+n03003091
+n03128248
+n03652100
+n02783161
+n04185529
+n04033901
+n03388183
+n03326948
+n03405725
+n03842156
+n03200906
+n04550184
+n02821943
+n04379243
+n04379964
+n04549122
+n03636649
+n03201035
+n04555400
+n02912065
+n02933112
+n02766320
+n02822579
+n03649797
+n03129753
+n02870880
+n03290653
+n03298716
+n04161981
+n04165409
+n03015254
+n03337140
+n04104147
+n02963302
+n04529681
+n03050546
+n02739550
+n02818832
+n02831724
+n03962852
+n03540914
+n02920083
+n04491638
+n03388549
+n03115762
+n02920259
+n04503413
+n04236809
+n04222210
+n03482252
+n03799876
+n03225988
+n03414676
+n03465426
+n04381587
+n03116530
+n02699629
+n02894337
+n04301000
+n03090000
+n03904060
+n03620967
+n03850492
+n04398951
+n03653583
+n04603729
+n03428226
+n03238586
+n03179701
+n03246933
+n03063968
+n04480033
+n03092883
+n03011741
+n02789487
+n03735963
+n04061681
+n04130143
+n04247736
+n03231368
+n03630262
+n04608329
+n04164868
+n03164722
+n03201208
+n03202354
+n04067921
+n03367059
+n04380533
+n04057981
+n03237340
+n03018349
+n03742115
+n02804414
+n03131574
+n02970534
+n03125729
+n03001627
+n04447861
+n04326896
+n04256520
+n03858418
+n02828884
+n03649674
+n03002711
+n04099969
+n04373704
+n04429376
+n04331277
+n03632729
+n03518445
+n02738535
+n04590933
+n03376595
+n04576002
+n03790953
+n02791124
+n03262932
+n04062428
+n03786621
+n04593077
+n03168217
+n02946270
+n03801880
+n04382438
+n03380724
+n04177755
+n03165096
+n03100346
+n03693474
+n03015149
+n04344873
+n03891251
+n03360622
+n03920867
+n04177820
+n04590021
+n03016953
+n03518305
+n02843553
+n03508101
+n03666591
+n06791372
+n03099945
+n03141702
+n03243218
+n03626760
+n03904909
+n03800933
+n04200537
+n04198797
+n03699975
+n03088707
+n02776205
+n04294212
+n03339643
+n03738472
+n02676261
+n04474466
+n03008976
+n02688443
+n04114844
+n03929660
+n03287351
+n03320046
+n03553019
+n03175604
+n02678897
+n04461879
+n04359589
+n03851341
+n04331639
+n04450749
+n03923918
+n03574816
+n03074855
+n04074963
+n03302790
+n03075768
+n04554406
+n04210120
+n04562262
+n02855089
+n04526964
+n02895606
+n02730265
+n04226826
+n03467796
+n04081844
+n03614007
+n03269401
+n02729965
+n03345837
+n03111899
+n04069276
+n02694426
+n03277771
+n04252331
+n03525827
+n03744840
+n03613294
+n03827536
+n04263760
+n03568117
+n03180969
+n02895438
+n03565288
+n02683558
+n03537241
+n03267972
+n04228054
+n03664675
+n04258333
+n03272239
+n04041069
+n03423479
+n03099147
+n04265275
+n04330267
+n03031422
+n03728437
+n07273802
+n06793231
+n06794110
+n06874185
+n03269203
+n02981321
+n03582959
+n04375405
+n03307792
+n02988963
+n03580518
+n04338517
+n03279153
+n03614532
+n04586932
+n02803349
+n03915437
+n03254862
+n03025886
+n02787622
+n04615226
+n04132603
+n03467517
+n02880546
+n04224842
+n03698360
+n03716887
+n03716966
+n03495258
+n02676566
+n03499907
+n04506289
+n03272010
+n04536153
+n04536866
+n02992211
+n04536335
+n04536595
+n04330998
+n04419642
+n03273551
+n04376400
+n03928116
+n03039015
+n03854065
+n02672831
+n03452741
+n04515003
+n04278353
+n03738066
+n02766792
+n03086457
+n03496296
+n04278247
+n03840681
+n04598582
+n02891788
+n03854815
+n03393324
+n04579667
+n03945615
+n03609397
+n03372029
+n02817799
+n03228016
+n04222847
+n02804610
+n03838899
+n03037709
+n04141076
+n02793089
+n02912894
+n03369276
+n03394916
+n04487394
+n03110669
+n03494537
+n03494278
+n03086670
+n03006626
+n03884397
+n02775483
+n03343354
+n03912218
+n03245724
+n02803934
+n02804252
+n02804123
+n03301568
+n03483230
+n02869249
+n03447721
+n04532831
+n04311174
+n03721384
+n03440682
+n03017168
+n03612965
+n03720891
+n03249569
+n03157348
+n02869737
+n02803666
+n04387400
+n04249415
+n04410086
+n04243941
+n03996416
+n03999992
+n02769290
+n04004475
+n03702248
+n03789946
+n04252653
+n02977058
+n03322940
+n03082979
+n04613939
+n03765561
+n04303357
+n03997484
+n03087069
+n04303497
+n04237423
+n04417180
+n04064401
+n02938886
+n04525305
+n04243546
+n02760199
+n03418915
+n02829596
+n03551395
+n04024274
+n03007591
+n03563200
+n04004767
+n03250405
+n03672827
+n03643737
+n03675235
+n04419868
+n03985069
+n04505036
+n02794664
+n04595285
+n03225777
+n02909285
+n03571942
+n04184435
+n03240892
+n03460040
+n03646296
+n03766044
+n03287733
+n03273061
+n03507963
+n03596285
+n02761557
+n02687423
+n03433877
+n04309049
+n03579982
+n04591517
+n03424630
+n03193107
+n03859000
+n04040373
+n04099175
+n03321103
+n02872333
+n04265904
+n02700064
+n04587404
+n04304375
+n03616763
+n03146846
+n03500699
+n03075634
+n04428191
+n03496892
+n03210245
+n03496612
+n04238763
+n06359193
+n03528523
+n04175147
+n03196324
+n04358117
+n04603399
+n03918480
+n03985232
+n03180011
+n03832673
+n03956785
+n03642806
+n03485407
+n03914337
+n04561422
+n03736064
+n03063485
+n04477219
+n04587559
+n03272125
+n03996145
+n02911332
+n03034663
+n03000684
+n04380916
+n04121728
+n02786837
+n04279462
+n03689157
+n03604156
+n03452267
+n02666196
+n02679257
+n03483823
+n04171831
+n04594489
+n03106898
+n03510244
+n02934168
+n03760310
+n04471632
+n03666362
+n03020034
+n03336575
+n03604843
+n04402984
+n03898129
+n04401828
+n03995265
+n03307037
+n03300443
+n03268918
+n04004990
+n03995535
+n03350602
+n03373237
+n03251932
+n04573937
+n04334365
+n03861271
+n04520784
+n04332243
+n02688273
+n03843555
+n04216634
+n04398834
+n03066849
+n03407865
+n02710201
+n04040759
+n03736970
+n04110955
+n04112430
+n02969010
+n03096960
+n03996849
+n02761392
+n02677718
+n03102859
+n03431243
+n04392764
+n03339529
+n04289027
+n04011827
+n02709367
+n03446268
+n04568069
+n03700963
+n04167346
+n04021798
+n03432129
+n04088797
+n02918595
+n03532672
+n04228215
+n03119510
+n04063154
+n04371774
+n04590746
+n04586581
+n04586421
+n03189083
+n04211528
+n03296081
+n02903204
+n03150232
+n04282494
+n03082807
+n02686227
+n02962200
+n03198500
+n02973017
+n04475411
+n03431745
+n04306592
+n02692086
+n04154152
+n04020298
+n04574999
+n03559999
+n03659809
+n03566329
+n03767203
+n04563204
+n04101701
+n02836035
+n02980036
+n03460147
+n04115144
+n03334912
+n04543772
+n04563413
+n02974003
+n04289690
+n03944341
+n03992509
+n03430551
+n03244919
+n03874293
+n04113194
+n04290507
+n02833793
+n03943115
+n04051549
+n02764505
+n04154340
+n03456299
+n03425413
+n02835724
+n04354487
+n03487886
+n02995871
+n03329302
+n04102406
+n02966193
+n04510706
+n03054901
+n03393761
+n03209359
+n02860415
+n04067472
+n04211857
+n02848523
+n03473227
+n03032811
+n04111668
+n03873699
+n03563460
+n03320421
+n03208556
+n04019541
+n02890188
+n04448361
+n03397947
+n03954393
+n04385799
+n03712111
+n04519153
+n04313503
+n03450018
+n03602883
+n04072193
+n04372370
+n02783459
+n02927887
+n04438507
+n03374649
+n03325088
+n04422875
+n02727141
+n03775636
+n04327682
+n04445952
+n04027023
+n03186818
+n03537412
+n03793850
+n03222516
+n02826589
+n03363549
+n03795758
+n03469493
+n03103396
+n03301833
+n02686379
+n03432061
+n03389611
+n04579432
+n04218564
+n03743279
+n03506560
+n02824448
+n03123917
+n03028596
+n03201529
+n04275548
+n03794056
+n03680858
+n04568557
+n03819994
+n03639077
+n03352628
+n04529962
+n04283255
+n04283096
+n04112252
+n03357716
+n04117464
+n03536122
+n04592741
+n03303217
+n03271574
+n02887079
+n03176386
+n02768114
+n04320973
+n03933933
+n03934042
+n02767433
+n04190052
+n03638883
+n02783994
+n04283378
+n02797692
+n04314914
+n02887209
+n03938401
+n02817031
+n04098513
+n03057920
+n03495570
+n04081044
+n02888569
+n04386051
+n02871005
+n04341414
+n03506184
+n04161358
+n04430475
+n03490884
+n04038440
+n03495039
+n02953455
+n03632577
+n02871439
+n03719343
+n03814639
+n03622839
+n02713003
+n02768655
+n02737660
+n03505133
+n03019685
+n02741475
+n04148579
+n03105467
+n04190376
+n04220036
+n04094720
+n04515129
+n02886599
+n04476831
+n02815950
+n04590263
+n03223686
+n04318787
+n03592773
+n03073977
+n03988170
+n04360798
+n02974348
+n03443149
+n03821518
+n02864593
+n03637181
+n04402449
+n03733131
+n04436329
+n04119751
+n04433585
+n04045644
+n03437941
+n04436185
+n03366974
+n03601840
+n02970685
+n03937931
+n03955489
+n04123740
+n03002096
+n02835915
+n02910145
+n02770830
+n04325041
+n03288886
+n04485082
+n04275175
+n03704549
+n03801760
+n02943871
+n03262809
+n02759257
+n04009801
+n03340723
+n03643253
+n03656484
+n03838298
+n03087366
+n02943241
+n02709101
+n03094159
+n04355933
+n03309465
+n03333711
+n03395859
+n03987376
+n03049782
+n04403413
+n04583212
+n03967396
+n04147495
+n03733925
+n04565375
+n03467068
+n03231160
+n02708711
+n03813176
+n03852280
+n03739693
+n03575958
+n02981911
+n03308152
+n04419073
+n04089836
+n04383015
+n03070193
+n03760944
+n02670382
+n04340521
+n03709206
+n03092656
+n04403638
+n03760671
+n02751295
+n03293863
+n03852688
+n04044716
+n04070207
+n03333129
+n04068601
+n02978478
+n03822767
+n04145863
+n03715114
+n03279508
+n03332989
+n03667829
+n02841506
+n03484931
+n03850053
+n03082280
+n03692522
+n03868643
+n03247083
+n04070415
+n04053508
+n02794156
+n03904782
+n04421872
+n02751215
+n03735637
+n03429288
+n04437953
+n02710600
+n02939866
+n03991837
+n04382880
+n04141975
+n04392113
+n03753077
+n03554460
+n04180888
+n04118776
+n02699915
+n04029734
+n03736470
+n04559730
+n04518343
+n02710429
+n03424862
+n04001499
+n03718335
+n04274985
+n02753394
+n03046257
+n04555897
+n04355338
+n04438304
+n03544143
+n03452594
+n03196217
+n02694662
+n04548280
+n02708093
+n03909406
+n03145147
+n03197337
+n02708433
+n03973839
+n04607869
+n04328186
+n03891332
+n03026907
+n04528968
+n03759661
+n02777100
+n02708555
+n03277459
+n03272810
+n03841143
+n02702989
+n04273796
+n03842986
+n04561287
+n04541320
+n03708843
+n04449966
+n03467984
+n02879718
+n02880393
+n02892948
+n03624134
+n04373894
+n04346157
+n04008634
+n02715712
+n03343853
+n04177041
+n02689274
+n03423306
+n03875955
+n02950826
+n02759963
+n03948459
+n04502851
+n03732020
+n03803116
+n04090263
+n04076284
+n04171459
+n02760429
+n03416775
+n03695857
+n04171629
+n02760855
+n02749479
+n02760658
+n03701391
+n04347519
+n02923682
+n04517211
+n03607659
+n04450133
+n03073296
+n03178674
+n04086273
+n03427202
+n03363749
+n03802007
+n04250224
+n04585980
+n02961451
+n03136369
+n03687928
+n03615790
+n02812949
+n03699591
+n03158885
+n04054361
+n03327691
+n02904640
+n02987492
+n04121511
+n03292475
+n03375575
+n02916350
+n02950943
+n03080633
+n04015908
+n02745611
+n03178000
+n03706229
+n03080497
+n02841315
+n04272054
+n04009552
+n04403925
+n03443912
+n04356056
+n04238617
+n03399761
+n03795976
+n03864692
+n03555662
+n02963503
+n04376876
+n04317175
+n03643149
+n03858183
+n04364545
+n04083800
+n03514451
+n03938037
+n04056180
+n03302671
+n04477387
+n04080833
+n04251144
+n03868863
+n02731629
+n03876231
+n04287747
+n02889646
+n03484576
+n03323703
+n04162706
+n03652932
+n04125853
+n02891188
+n03803284
+n02999936
+n02865665
+n02910353
+n03627232
+n03041114
+n03051249
+n02982599
+n03940256
+n03229244
+n04153751
+n04238321
+n02928608
+n04159354
+n03887185
+n03682487
+n04431745
+n03683606
+n03038281
+n03043958
+n02960690
+n03804744
+n04445327
+n03836451
+n02881906
+n02880189
+n03644858
+n03497352
+n04095342
+n03476313
+n04227900
+n03499354
+n02903126
+n02860640
+n02796318
+n04127249
+n04197781
+n03057541
+n04554871
+n03423719
+n03503477
+n03855604
+n03874599
+n04136800
+n03645011
+n03075370
+n03223162
+n03886762
+n02915904
+n03476684
+n03551084
+n03208938
+n03250089
+n04505470
+n04036303
+n03085013
+n03928814
+n03033362
+n04168199
+n03589513
+n03098140
+n04401949
+n03034244
+n03968293
+n03275681
+n03163222
+n04470953
+n04257986
+n02715229
+n02955247
+n04269270
+n04072960
+n04364160
+n04257790
+n02810471
+n04414675
+n03048883
+n04595855
+n03084420
+n03577090
+n03778817
+n04004210
+n03578656
+n03125057
+n03033986
+n03788047
+n03274561
+n03261776
+n03759954
+n03691459
+n04402580
+n03505667
+n03087816
+n02963692
+n04502670
+n02917377
+n04390873
+n04599124
+n04349401
+n03846772
+n03204955
+n04041747
+n04404817
+n03207305
+n04142999
+n04610274
+n04540547
+n03359285
+n03651388
+n03870980
+n04013729
+n04258138
+n03773035
+n03485198
+n02965783
+n04059947
+n03861842
+n02921756
+n02761834
+n04201064
+n03343737
+n04058594
+n04143140
+n04494204
+n03211117
+n03918737
+n03221351
+n04464615
+n03793489
+n02714751
+n03506727
+n02823124
+n04484432
+n03913343
+n03085219
+n03782190
+n04152593
+n03196598
+n03676759
+n03361380
+n04588739
+n03187268
+n02940570
+n03085602
+n02769075
+n02988066
+n03027250
+n03070059
+n03525454
+n04538552
+n02948557
+n03031152
+n02947818
+n03746005
+n03746155
+n02935017
+n03851787
+n03706653
+n03744276
+n03708036
+n04063868
+n02763306
+n03079230
+n04533946
+n02988679
+n02988486
+n02757061
+n03492542
+n03209910
+n03359436
+n04052757
+n04534359
+n02979399
+n04391838
+n03924069
+n03694639
+n04178190
+n03636248
+n03665366
+n03358172
+n03640988
+n02948072
+n03818343
+n04534895
+n04384910
+n03423877
+n03844045
+n03549897
+n03370387
+n04335886
+n04286575
+n03272383
+n03590841
+n03018712
+n03359137
+n03665924
+n03911767
+n03503997
+n04107743
+n04339879
+n03318294
+n04148703
+n04160847
+n03824713
+n02852173
+n04456115
+n03365374
+n03401129
+n03442597
+n03187037
+n04529108
+n03975232
+n03668279
+n03482523
+n04371050
+n03772584
+n04164757
+n03544238
+n04288272
+n04116098
+n03066359
+n02886321
+n03525074
+n04585745
+n03281145
+n03126707
+n04575824
+n03178430
+n03733281
+n03078287
+n03820728
+n03440216
+n04080138
+n03302938
+n03738241
+n03085915
+n04141712
+n04082886
+n04545858
+n04041544
+n04400289
+n04402746
+n03578055
+n03580845
+n04404412
+n04137897
+n04365328
+n03072201
+n03681477
+n04358491
+n03300216
+n04595028
+n04008385
+n03674440
+n04366116
+n03401279
+n03957315
+n04488202
+n04555700
+n03206908
+n02893692
+n03210683
+n03991062
+n02920658
+n04074185
+n03147509
+n02774152
+n02978881
+n03256032
+n02773037
+n03733805
+n03438257
+n03875806
+n03733644
+n03291819
+n04183329
+n03935335
+n02801938
+n04179712
+n04139859
+n03994614
+n02946921
+n04576211
+n04600312
+n02839910
+n02949542
+n03779370
+n02964843
+n04533700
+n02975212
+n02974697
+n04531098
+n03233905
+n04060904
+n03871083
+n04560292
+n02883344
+n03062336
+n03920288
+n03456024
+n04176190
+n04499062
+n04350581
+n02880940
+n02978753
+n04050933
+n02927764
+n04130257
+n03775546
+n03984759
+n02997910
+n04263257
+n04023695
+n04103769
+n02682922
+n04254120
+n02754103
+n03571280
+n03174731
+n02815749
+n03629520
+n03063073
+n03002948
+n04397452
+n03216710
+n03301940
+n04207343
+n03055418
+n04083309
+n02769748
+n04122685
+n02816656
+n04134008
+n02970408
+n03883524
+n03253886
+n02870676
+n04452528
+n03709823
+n04026417
+n03235796
+n03291963
+n04124098
+n04122825
+n03993180
+n04204081
+n04446844
+n03414029
+n03619793
+n03958227
+n03445617
+n04235860
+n03469903
+n03461288
+n04284572
+n03972524
+n04544450
+n03321563
+n03521899
+n03898395
+n03372549
+n04496872
+n04559910
+n02918831
+n03676623
+n04249882
+n04206225
+n02823750
+n04119360
+n03443371
+n04592099
+n03062245
+n04131690
+n03914438
+n03883385
+n03050864
+n03482405
+n02893608
+n04204238
+n04582349
+n03764736
+n02823510
+n04255586
+n03904433
+n02946509
+n04103364
+n03791053
+n04170037
+n04509417
+n04543158
+n02804515
+n03484083
+n02766534
+n02834778
+n03538634
+n04467099
+n02959942
+n04482393
+n02740533
+n04065272
+n04464852
+n04252077
+n02916179
+n03684823
+n04335435
+n03791235
+n04465501
+n03384352
+n02740300
+n02739889
+n03256788
+n02946348
+n04520382
+n04211219
+n03193597
+n03272562
+n04389854
+n04465358
+n04310018
+n03193260
+n03193423
+n03506880
+n04490091
+n02704792
+n03389761
+n03790512
+n03444034
+n02958343
+n04252225
+n03345487
+n04520170
+n04467665
+n04474035
+n03417042
+n03632852
+n04461696
+n03256166
+n04465666
+n03930630
+n03173929
+n03796401
+n03896419
+n03977966
+n02871314
+n04466871
+n03785016
+n02814533
+n03680512
+n03777568
+n03268790
+n03770679
+n03100240
+n03079136
+n02930766
+n04201733
+n04037443
+n03498781
+n04097373
+n02831335
+n04285965
+n04166281
+n03594945
+n03670208
+n03141065
+n02701002
+n04516354
+n04322801
+n04347119
+n03870105
+n03543394
+n04285008
+n03119396
+n03122295
+n02970849
+n03538406
+n03255899
+n03599486
+n03981924
+n03868242
+n04397027
+n03648431
+n04176068
+n02797295
+n04204347
+n03490119
+n02835271
+n04126066
+n04026813
+n03792782
+n02968473
+n03435991
+n02912557
+n04297098
+n03389889
+n02775039
+n03393912
+n03895866
+n02932523
+n02885108
+n04389521
+n03828020
+n04020912
+n03200357
+n04246855
+n04065789
+n02747177
+n03678558
+n04134523
+n03935116
+n02900705
+n03078995
+n03210372
+n03619650
+n04548362
+n02962843
+n03986355
+n03214582
+n03031012
+n04200000
+n03468821
+n02755140
+n03683995
+n04608435
+n04556533
+n02774630
+n03438863
+n03487533
+n04137217
+n02773838
+n04491769
+n03498441
+n03420345
+n04570815
+n02967294
+n03986949
+n03865371
+n04518764
+n02863750
+n03355768
+n02881193
+n03633091
+n02876657
+n02877266
+n03990474
+n03950228
+n02808440
+n03786901
+n02909870
+n03241496
+n03129001
+n04591887
+n04001265
+n04493381
+n03572321
+n04438897
+n02801525
+n03784270
+n02758960
+n03029445
+n02795169
+n04388743
+n03593526
+n02993368
+n04447028
+n03350204
+n04149083
+n04263336
+n04246060
+n03983396
+n04557648
+n03603722
+n02985963
+n03449451
+n03937543
+n02962061
+n03359566
+n02823428
+n03571625
+n03174450
+n04579056
+n03140431
+n04591713
+n02960903
+n03923379
+n04579145
+n04560804
+n03521675
+n03295246
+n04422727
+n02952374
+n04518132
+n03709363
+n03595409
+n04139140
+n04398044
+n03259401
+n04516214
+n04324297
+n03612814
+n02939185
+n03915118
+n04397768
+n03063689
+n03064250
+n04132985
+n04399158
+n04225031
+n03543603
+n03379343
+n03797390
+n03693707
+n04389430
+n03063599
+n04443766
+n02824058
+n02836174
+n02843158
+n04553703
+n02788572
+n02823335
+n04592005
+n03610418
+n03426134
+n04560113
+n04173046
+n02732072
+n04078574
+n04562935
+n04049303
+n02951703
+n02705429
+n03101664
+n02815834
+n04516116
+n03725600
+n04522168
+n03133415
+n03593122
+n03960374
+n04476259
+n02982515
+n03259009
+n03004275
+n04131929
+n03416900
+n03565830
+n03543735
+n03858085
+n04255163
+n02747802
+n03871628
+n02919414
+n03167978
+n02778456
+n03500389
+n03870672
+n02782681
+n02971356
+n03064758
+n04200258
+n04253057
+n03908618
+n03127925
+n02786331
+n04589325
+n03014705
+n04340750
+n02998003
+n03710193
+n02978055
+n02836392
+n03871724
+n04452615
+n04462011
+n03064350
+n03535024
+n04477548
+n02989099
+n02977438
+n04125257
+n02976939
+n04125021
+n04469813
+n03002341
+n04214282
+n04019101
+n04172342
+n03538179
+n04524313
+n04231693
+n04103918
+n04467307
+n04196502
+n03678362
+n03306385
+n04212165
+n04468005
+n02924116
+n03680942
+n03394272
+n03896233
+n04349306
+n03711044
+n03394480
+n03078802
+n02917067
+n04487081
+n03769881
+n04146614
+n04310157
+n02918964
+n04099429
+n03764276
+n03773504
+n03125870
+n04235291
+n03478589
+n04389033
+n03886053
+n03919096
+n03549199
+n02686568
+n04530566
+n04264914
+n03547229
+n03510583
+n04308084
+n03666917
+n03491032
+n03439814
+n03512147
+n04552348
+n02691156
+n02759387
+n02867715
+n02704645
+n04012084
+n02690373
+n02842573
+n03365231
+n03595860
+n03335030
+n04308273
+n04160586
+n02686121
+n04583620
+n03604311
+n03596543
+n04308397
+n03577672
+n02692877
+n02850950
+n02782093
+n03541923
+n02858304
+n04476116
+n04610013
+n04194289
+n04128837
+n02792409
+n03662601
+n03977592
+n03447447
+n04158807
+n02792552
+n04095210
+n04495843
+n04024983
+n03939178
+n04244997
+n03329663
+n04409128
+n02947660
+n03344393
+n03790230
+n03236423
+n03981566
+n03545470
+n04229480
+n02951358
+n03199901
+n04037964
+n03105306
+n04612504
+n03436891
+n03602081
+n04115456
+n03609235
+n03861430
+n03254374
+n04038231
+n04038338
+n04273569
+n03859170
+n02932891
+n03552749
+n04197110
+n04606251
+n03896103
+n03947888
+n03668488
+n03541269
+n04309348
+n02965300
+n04224543
+n04552696
+n03673027
+n03698604
+n02965216
+n03141327
+n03874138
+n04317063
+n02878222
+n03095699
+n02784124
+n03845190
+n04347754
+n03466493
+n03397266
+n02812201
+n03466600
+n02687172
+n03718212
+n03180504
+n02755529
+n03811295
+n04612373
+n03045228
+n03327133
+n04242408
+n03612010
+n03186285
+n04128499
+n02793199
+n04147183
+n04587327
+n04483307
+n02981792
+n02982416
+n04266014
+n04264765
+n03218198
+n02860847
+n02861022
+n04336792
+n03122202
+n06271778
+n06255081
+n06263609
+n06276697
+n06272290
+n06276501
+n06277280
+n06281040
+n06277135
+n06278338
+n06278475
+n06274760
+n06272803
+n06272612
+n06263369
+n06266417
+n06595351
+n06267145
+n06596607
+n06596727
+n06596364
+n06596474
+n06267893
+n06267564
+n06267655
+n06266633
+n06267991
+n03938244
+n03872495
+n04135315
+n02823964
+n03408444
+n02967626
+n04053677
+n04151940
+n04453910
+n03380867
+n04014297
+n03045698
+n04605726
+n04513827
+n03050026
+n03724870
+n03341153
+n03366823
+n03058107
+n02952237
+n03357376
+n03221059
+n03376279
+n03956623
+n03261603
+n02944459
+n04201297
+n02954938
+n03717622
+n03661340
+n04041243
+n02877765
+n03825788
+n03047690
+n04199027
+n02735538
+n02872752
+n03361550
+n04241394
+n03865949
+n04122578
+n04239786
+n03027625
+n04124370
+n04272389
+n02904927
+n04593524
+n04545748
+n02855701
+n02713364
+n03041449
+n03411079
+n03680355
+n04120489
+n03868406
+n02882894
+n03967270
+n04022332
+n04133789
+n03025250
+n04027706
+n04386664
+n03364008
+n03297103
+n03600475
+n02925666
+n04228581
+n03521544
+n04089666
+n04116294
+n03516844
+n04542715
+n03124043
+n03798061
+n02873733
+n03067518
+n03046133
+n04554211
+n04444749
+n03797896
+n04192858
+n02888270
+n04151581
+n04187233
+n02826068
+n04181718
+n04191943
+n04281375
+n04416005
+n04105068
+n03314608
+n03530910
+n04187061
+n02955065
+n03725035
+n03315644
+n03142679
+n02937958
+n02739668
+n02840245
+n02840619
+n03546766
+n02851099
+n03673767
+n03959701
+n03539433
+n02740764
+n02895154
+n03513376
+n02950632
+n03623338
+n03929855
+n04130907
+n04589890
+n03347037
+n04590553
+n03788365
+n03637318
+n03889871
+n03652729
+n02825657
+n04172776
+n02843684
+n02951843
+n03610524
+n02763901
+n04507155
+n03415252
+n03409591
+n04357121
+n03718789
+n03220513
+n03522100
+n04435653
+n03546235
+n04523525
+n04234887
+n03413684
+n04417672
+n03148727
+n03435593
+n03847471
+n02796207
+n04087709
+n03527444
+n04141327
+n04207763
+n03548086
+n04423845
+n03213538
+n03657121
+n03424325
+n03314378
+n04229816
+n02983189
+n02862048
+n04192698
+n03000247
+n02916936
+n03112719
+n03146219
+n02933340
+n04045255
+n02873520
+n04589190
+n03592669
+n03151077
+n04211356
+n04525584
+n04590129
+n04102285
+n04418357
+n04209239
+n02925107
+n02890513
+n03436549
+n03291741
+n02992368
+n07248320
+n03590306
+n03958752
+n04207151
+n03885293
+n03654576
+n02767665
+n03114379
+n02785648
+n02876084
+n04240752
+n02820210
+n04236377
+n02851939
+n03309356
+n04231272
+n04162433
+n02786058
+n04369025
+n02979836
+n03267821
+n04033995
+n02683323
+n02849154
+n02822220
+n03731483
+n03898633
+n03266749
+n03128427
+n03123553
+n04034262
+n04046400
+n03688405
+n04118021
+n03223299
+n03727837
+n04144539
+n04183217
+n03998194
+n02904233
+n04297847
+n04066270
+n02908773
+n03353951
+n03445326
+n04528079
+n03875218
+n03805725
+n03437430
+n03115897
+n03284743
+n04525417
+n03342015
+n03284886
+n03285578
+n03844233
+n04557308
+n03646020
+n04581102
+n03261019
+n03973402
+n03642444
+n04450994
+n04084889
+n04412097
+n03337383
+n03729308
+n03970546
+n03802393
+n04395024
+n04525038
+n02809105
+n03615406
+n02828427
+n04123567
+n03188725
+n04539794
+n03253796
+n03013850
+n03115400
+n04459610
+n03132666
+n03885194
+n03019938
+n03326795
+n03115180
+n04525191
+n04138261
+n03625355
+n04137355
+n04003856
+n03356982
+n04568841
+n03409297
+n02944579
+n04605163
+n02977330
+n04395106
+n03779128
+n02904803
+n04524941
+n04198453
+n02878425
+n03703862
+n03819595
+n03877351
+n04613015
+n03914831
+n03932670
+n03785237
+n04414476
+n04056932
+n02675219
+n03106722
+n03917814
+n03016868
+n02922798
+n04432662
+n02802990
+n03631177
+n04189282
+n03435743
+n03983612
+n03175189
+n03357267
+n04184316
+n02942460
+n03836906
+n03233123
+n03430091
+n03855214
+n03386726
+n03437741
+n04599235
+n04350458
+n04383839
+n03653110
+n04502502
+n03854421
+n02952109
+n03298858
+n03160740
+n03843438
+n04393549
+n02903852
+n03947798
+n03529444
+n04482297
+n03227317
+n03595523
+n03429914
+n04496614
+n03016609
+n03485794
+n03463666
+n03258330
+n03207743
+n04459362
+n02786198
+n03471190
+n02834397
+n04127904
+n03897943
+n03490006
+n03887697
+n03207835
+n03381776
+n03383099
+n04278447
+n03505383
+n04455652
+n03712337
+n02782602
+n03598151
+n03775747
+n03410571
+n03696568
+n04307767
+n03645577
+n03358380
+n04208065
+n03809603
+n02820556
+n03703730
+n03938522
+n04045397
+n03663531
+n03662719
+n03703945
+n03662887
+n04326084
+n02897820
+n14943580
+n14785065
+n15074568
+n14820180
+n04035912
+n03766935
+n04313628
+n03530511
+n03460297
+n03149686
+n03455488
+n03344642
+n03796522
+n03043693
+n02681392
+n04339638
+n15102455
+n04234455
+n03341297
+n04453390
+n14908027
+n14976759
+n03111177
+n03282401
+n03451798
+n03292603
+n03815149
+n03723267
+n02892304
+n07621618
+n02732572
+n03178782
+n02681518
+n03397087
+n03635108
+n04395651
+n03762602
+n03282591
+n06883725
+n03516367
+n04682462
+n03354903
+n02788021
+n04458633
+n03140292
+n03362890
+n05244934
+n11487732
+n03597469
+n03397532
+n03649161
+n03914106
+n02787435
+n03030262
+n02685082
+n02887970
+n02852043
+n03909020
+n03814906
+n03436075
+n03899328
+n04096066
+n03895293
+n04215402
+n04461570
+n03904183
+n03519981
+n02969323
+n04426618
+n04466613
+n03215508
+n03306610
+n02744323
+n02762508
+n02758863
+n04335209
+n04334599
+n03948242
+n03539678
+n02680512
+n03089014
+n03895585
+n04493505
+n04244379
+n04250850
+n04562496
+n02984469
+n02795528
+n03944672
+n03533014
+n04385536
+n03231912
+n03147280
+n04257684
+n04497962
+n04298661
+n03415749
+n02981024
+n04048441
+n04391569
+n02784218
+n03572107
+n02680337
+n03957420
+n02992795
+n03506028
+n03438071
+n04440749
+n02739427
+n04040247
+n02971167
+n04381994
+n04087432
+n03153375
+n03438661
+n03527149
+n03963198
+n04284002
+n04380346
+n03383948
+n04284438
+n04263502
+n04398688
+n04350769
+n04597913
+n03557270
+n04381073
+n03180384
+n02976249
+n02928049
+n04307986
+n04380255
+n02973805
+n02687992
+n04406817
+n02693246
+n02692232
+n03745146
+n04329190
+n04306080
+n04551055
+n03452449
+n03131669
+n03768916
+n03214253
+n03587205
+n03406966
+n03093574
+n03672352
+n03051540
+n02729837
+n03655720
+n03456186
+n02855925
+n03825080
+n04015204
+n03859495
+n03815482
+n03625943
+n03692379
+n02728440
+n03068998
+n03763968
+n03502509
+n03877472
+n03419014
+n02742322
+n04596852
+n03863108
+n03441112
+n02671780
+n02846141
+n03381126
+n02756098
+n04059157
+n02814774
+n03746330
+n04335693
+n04241249
+n04194127
+n03863262
+n04001845
+n02738859
+n03386870
+n03216402
+n02730930
+n04207903
+n03121897
+n03015478
+n03268645
+n04266375
+n03623198
+n03450516
+n04532106
+n03010795
+n02669723
+n02811719
+n03324928
+n03239259
+n03615563
+n03513137
+n03531281
+n04498389
+n03497657
+n02954340
+n03124474
+n04432203
+n03379051
+n03492922
+n03127747
+n04356595
+n03404360
+n03124170
+n02817516
+n02859184
+n04248507
+n03325941
+n02987379
+n04259630
+n04482177
+n02818135
+n03984643
+n02869837
+n03950899
+n02881757
+n03766322
+n03046029
+n03937835
+n02799323
+n03103563
+n04209133
+n03610682
+n02776825
+n03331077
+n04387095
+n02831237
+n04232153
+n03049924
+n04228693
+n04556408
+n02807133
+n03787032
+n04612026
+n02816768
+n03502331
+n04143897
+n04104770
+n03188531
+n04605572
+n04097866
+n04574067
+n03655072
+n04230808
+n04508163
+n04172904
+n04531873
+n04197391
+n03863923
+n03540090
+n02922578
+n04488530
+n04489008
+n04332580
+n03404149
+n03816005
+n04370774
+n03657511
+n04371563
+n03487642
+n04046277
+n04350905
+n04370048
+n03450734
+n03314884
+n03826039
+n02998841
+n03719743
+n03797182
+n03505504
+n04495698
+n03325584
+n04325704
+n03520493
+n03615655
+n03237992
+n03617480
+n02667093
+n02807616
+n03410938
+n04269822
+n03866082
+n03454442
+n03770439
+n03617312
+n03732458
+n02780815
+n03205669
+n04136333
+n03534580
+n03920737
+n02892767
+n03387323
+n04223299
+n03421324
+n03132776
+n04508949
+n02863014
+n02944146
+n04514241
+n03013580
+n04508489
+n03112869
+n03885788
+n04103665
+n03673450
+n03688192
+n02930214
+n04509171
+n03824381
+n02854739
+n04426427
+n02837887
+n02901114
+n03885028
+n03234164
+n04602956
+n03629231
+n03595614
+n03163381
+n03978966
+n03057021
+n03045337
+n04252560
+n04363777
+n03254046
+n04187970
+n03398228
+n03630383
+n03456665
+n03589791
+n04049405
+n02957008
+n04123448
+n03404251
+n03751269
+n04222307
+n02867966
+n03902756
+n04368496
+n03228254
+n02864504
+n03891051
+n03844815
+n04479046
+n03770954
+n04122492
+n03980874
+n04445154
+n04445040
+n03607923
+n04173907
+n04497570
+n04186455
+n02936402
+n04205318
+n03877674
+n04370288
+n04132158
+n02896442
+n03019434
+n04233715
+n03600285
+n03903733
+n03688605
+n03594734
+n03107488
+n03660124
+n04337287
+n02825442
+n02910864
+n03543112
+n02831595
+n03653833
+n03815615
+n03128085
+n02865351
+n04591157
+n02883205
+n02847631
+n03710721
+n04371430
+n02837789
+n03226538
+n03943920
+n04222470
+n03885669
+n02925519
+n04427715
+n04504141
+n04502197
+n02963159
+n04370456
+n04021028
+n04453666
+n03464053
+n02944075
+n03236735
+n02861387
+n02854926
+n03480579
+n03062015
+n04136161
+n02936570
+n04355511
+n03013438
+n04334105
+n03450230
+n03604400
+n03205574
+n02898585
+n04397645
+n02781121
+n03429682
+n03775071
+n03616979
+n02827606
+n03405595
+n03781683
+n03527565
+n02972397
+n03540267
+n04434932
+n04254777
+n04323819
+n03885904
+n03710637
+n02752496
+n04378956
+n03622931
+n02736798
+n03836976
+n03026506
+n03384891
+n03289985
+n03859958
+n02726017
+n03113657
+n03320519
+n03113835
+n03398153
+n04285803
+n02669534
+n03206718
+n03476083
+n03201776
+n02780704
+n03201638
+n03239054
+n02683454
+n04459018
+n04584207
+n03237416
+n02887489
+n02752615
+n03528263
+n03251766
+n04517823
+n03584829
+n04488857
+n03150511
+n04580493
+n04179913
+n04174101
+n03620052
+n03534776
+n04475631
+n04309833
+n03207941
+n04070727
+n04554684
+n03102654
+n03273913
+n03557590
+n03170635
+n04442312
+n03761084
+n04442441
+n03063338
+n03543254
+n04542943
+n03212114
+n03297495
+n04330340
+n03862676
+n03378174
+n03557692
+n03102371
+n03273740
+n03425595
+n04003241
+n02905036
+n04111531
+n03259280
+n03425241
+n03483316
+n03050655
+n04277826
+n04496726
+n04607242
+n02808304
+n03219010
+n04499446
+n02821030
+n03938725
+n04188179
+n04439712
+n03971218
+n03223553
+n02856463
+n03250279
+n03882058
+n03635668
+n02846511
+n04251791
+n04189816
+n02731900
+n04225987
+n04214046
+n04149813
+n04543996
+n03502200
+n03005285
+n03969259
+n04254009
+n04446521
+n04208936
+n04559451
+n03371875
+n03993053
+n04108268
+n03106110
+n03644378
+n02919890
+n04290079
+n03107046
+n04426788
+n02874537
+n04581829
+n03641569
+n03367545
+n04598965
+n04605321
+n00004475
+n00006484
+n12739332
+n00017222
+n00015388
+n01326291
+n11537327
+n00007846
+n12992868
+n00005787
+n12172906
+n13083586
+n13123431
+n11536673
+n11552806
+n13083023
+n13100156
+n12476510
+n11545524
+n11552386
+n13121544
+n12205694
+n13100677
+n13103136
+n13085113
+n13084834
+n13134302
+n13084184
+n12477163
+n12477583
+n12477747
+n12480895
+n12479537
+n12481458
+n11547562
+n11545714
+n13221529
+n13220122
+n13223265
+n13223588
+n13223710
+n12953206
+n13194572
+n13205058
+n12961879
+n12953484
+n13186654
+n13197274
+n13173882
+n13229543
+n13192625
+n13185269
+n13193642
+n13207335
+n13183056
+n13200651
+n13195341
+n13206817
+n13199970
+n12957924
+n13198914
+n13199717
+n13215586
+n13190747
+n13193856
+n13194036
+n11665372
+n11596108
+n12694486
+n11666854
+n11669921
+n11672400
+n12606438
+n12799776
+n11736694
+n12008487
+n11955896
+n12879527
+n12884260
+n12034141
+n12290748
+n12026476
+n12833149
+n11892817
+n12914923
+n11969607
+n11794024
+n12026018
+n11672269
+n12830222
+n11811473
+n12022054
+n11971406
+n11826198
+n12950314
+n11857875
+n11988596
+n11939699
+n11915214
+n11821184
+n12293723
+n11814584
+n11725015
+n12890265
+n11733312
+n11859472
+n11971248
+n11888800
+n11971927
+n12898774
+n11810358
+n11904109
+n11943407
+n11978233
+n12683407
+n12950126
+n11726707
+n11813077
+n11889619
+n11905749
+n11812910
+n11900569
+n12020184
+n11960245
+n11859737
+n12909421
+n12041446
+n12909917
+n11992806
+n11807979
+n11925303
+n11971783
+n11939491
+n11918473
+n11989869
+n11727091
+n11793779
+n11891175
+n11792341
+n11839568
+n11943660
+n11947802
+n12475242
+n11815491
+n12480456
+n11839823
+n11732567
+n12475035
+n12360108
+n12833985
+n11941924
+n11883328
+n11719286
+n11736851
+n11887119
+n12001707
+n11950345
+n11892637
+n11805956
+n11892029
+n11806219
+n12008252
+n11918286
+n11962272
+n12093600
+n12836862
+n12093329
+n11733054
+n12020507
+n11931918
+n11958080
+n12877838
+n11812094
+n11811706
+n11923174
+n12023726
+n12023407
+n11923637
+n11990313
+n11915899
+n12030908
+n12015221
+n11990167
+n11981192
+n11980318
+n11972759
+n11921395
+n12294124
+n12295796
+n12294723
+n12294331
+n12294871
+n12296432
+n12295033
+n11726269
+n11725821
+n11725973
+n12891305
+n12891643
+n11978713
+n11979527
+n11978961
+n11979715
+n12683571
+n12683791
+n11901759
+n11908549
+n11901294
+n11903671
+n11901977
+n11902389
+n11908846
+n11901597
+n11905392
+n11902200
+n11906917
+n12044467
+n12052787
+n12056217
+n12075830
+n12055516
+n12083113
+n12047884
+n12048056
+n12080820
+n12070381
+n12061380
+n12080395
+n12061614
+n12074408
+n12070583
+n12071744
+n12049282
+n12047345
+n12064389
+n12075010
+n12052447
+n12053405
+n12050533
+n12077944
+n12086539
+n12064591
+n12058822
+n12046028
+n12083591
+n12073991
+n12043444
+n12086012
+n12073554
+n12046815
+n12063639
+n12058630
+n12084890
+n12070016
+n12076223
+n12069679
+n12048399
+n12049562
+n12076577
+n12086192
+n12074867
+n12075299
+n12072722
+n12066018
+n12084555
+n12070712
+n12079963
+n12065316
+n12059314
+n12085664
+n12050959
+n12062468
+n12085267
+n12078172
+n12057211
+n12057447
+n12056758
+n12056601
+n12043836
+n12043673
+n12067193
+n12066630
+n12062781
+n12062626
+n11808299
+n11808721
+n11808932
+n11808468
+n11809594
+n11809094
+n11727358
+n11727738
+n11727540
+n11816649
+n11816336
+n11816829
+n11816121
+n11815918
+n11815721
+n12362274
+n12362668
+n12361946
+n11950877
+n11950686
+n11961100
+n12020736
+n12020941
+n11934616
+n11933546
+n11934807
+n12879963
+n12015959
+n11836722
+n11860555
+n12258885
+n11980682
+n12016567
+n11737534
+n11965627
+n11991263
+n11989393
+n12006766
+n12887293
+n12937130
+n12291959
+n11972291
+n11927215
+n12012111
+n11970586
+n11963932
+n11966215
+n11966083
+n12006930
+n12007196
+n11600372
+n11599324
+n11603246
+n11602873
+n11603835
+n11601333
+n12484784
+n12610328
+n11791569
+n11714853
+n13122364
+n11715430
+n11715678
+n12801781
+n11728099
+n11786131
+n12150028
+n12801520
+n11789066
+n11792742
+n12152532
+n12151615
+n12152722
+n11733548
+n11720353
+n12810595
+n12342299
+n13238375
+n12867826
+n12665048
+n11973341
+n12312728
+n11818069
+n12848499
+n11779300
+n12822955
+n12816508
+n12719684
+n12350758
+n12095020
+n11861641
+n11962667
+n12870891
+n12939282
+n12812478
+n12031927
+n12023108
+n12858150
+n12861892
+n12841007
+n12212361
+n12869061
+n12906214
+n12910285
+n12486574
+n12090890
+n12702948
+n12437513
+n11968931
+n11817914
+n11772408
+n12932173
+n12817694
+n11910460
+n12603449
+n12939874
+n12002428
+n12015525
+n11807108
+n12835331
+n12168565
+n12840362
+n12352287
+n11969166
+n11968704
+n12821895
+n12344283
+n11866248
+n11995092
+n12622875
+n11735053
+n12548280
+n13150894
+n12685431
+n12387633
+n12171966
+n12796022
+n12934036
+n12443323
+n12870535
+n12682668
+n12778605
+n12623077
+n12836212
+n11982115
+n12003696
+n12005656
+n12098403
+n12606545
+n11902709
+n12882945
+n12785889
+n11986511
+n12682411
+n12469517
+n12029635
+n12860365
+n12552309
+n11977303
+n11825351
+n12836337
+n12844939
+n12925179
+n11926833
+n12604228
+n11752578
+n12855042
+n11956850
+n12092262
+n12506991
+n12882779
+n11747468
+n12385429
+n12822115
+n12821505
+n12607456
+n12819728
+n12817464
+n12811027
+n12024445
+n12573474
+n12864545
+n11949402
+n11868814
+n11953038
+n12599435
+n12840749
+n13233727
+n12342498
+n12795555
+n11984542
+n12847008
+n12719944
+n11855274
+n12095647
+n12441183
+n12942572
+n12602980
+n12684379
+n12441390
+n12785724
+n11916696
+n12574320
+n12092417
+n12036939
+n11700058
+n12845413
+n11824146
+n11910271
+n11916467
+n11807525
+n12101870
+n11939180
+n12353754
+n12104501
+n12794985
+n12355760
+n12793015
+n12932966
+n12931542
+n12889713
+n12849061
+n11722466
+n11720643
+n12665857
+n12665271
+n11785668
+n11780148
+n11784497
+n11782036
+n11786539
+n11782761
+n12858871
+n12858397
+n11959632
+n11959862
+n12911673
+n12911440
+n12091213
+n12091550
+n12091377
+n12091953
+n12703557
+n12703190
+n12703383
+n12437930
+n12437769
+n12352639
+n12352844
+n12352990
+n12344700
+n12344483
+n12687957
+n12685831
+n12687698
+n12687462
+n12686274
+n12686077
+n12687044
+n12686676
+n12388989
+n12388143
+n12387839
+n12388858
+n12390099
+n12389501
+n12390314
+n12782915
+n12779603
+n12781940
+n12782530
+n11753700
+n11753355
+n11753143
+n12856680
+n12855494
+n12540250
+n12515711
+n12575322
+n12575812
+n12556307
+n12539306
+n12557681
+n12558425
+n12866162
+n12865824
+n12865037
+n12866635
+n12865562
+n12866002
+n11879054
+n11878283
+n11875691
+n11876634
+n11877193
+n11876803
+n11876432
+n11870418
+n11875938
+n11894327
+n11881742
+n11870747
+n11896722
+n11879722
+n11895092
+n11894770
+n11882074
+n11882426
+n13235503
+n13234678
+n12039317
+n12037691
+n12038406
+n12038585
+n12148757
+n12102133
+n12121610
+n12139575
+n12113195
+n12112918
+n12116429
+n12141495
+n12133462
+n12108871
+n12104238
+n12141167
+n12115180
+n12112008
+n12128071
+n12146311
+n12124627
+n12110778
+n12129134
+n12134025
+n12145477
+n12142085
+n12135898
+n12137120
+n12127030
+n12127768
+n12127460
+n12356023
+n12357485
+n12793494
+n12794135
+n12849279
+n12849416
+n12847374
+n12517642
+n11731659
+n12813189
+n11838916
+n12517445
+n12513172
+n12823859
+n12566954
+n13148208
+n12158798
+n12485981
+n13237188
+n12826516
+n13120211
+n12580654
+n11769621
+n12824053
+n11769803
+n12383402
+n12823717
+n12157769
+n13144794
+n12371439
+n12159055
+n12160490
+n12158443
+n12160303
+n12159388
+n12160857
+n12161969
+n12827270
+n12828791
+n12827537
+n11788727
+n11789589
+n12571781
+n11792029
+n12384839
+n12384227
+n12384037
+n12164363
+n12166128
+n12165170
+n12164881
+n12164656
+n13146583
+n13145040
+n12509476
+n13112664
+n13104059
+n12655869
+n12546183
+n12671651
+n12215579
+n12901724
+n12938193
+n12680864
+n12329260
+n12924623
+n12659356
+n12788201
+n12343480
+n13142504
+n11830906
+n12504783
+n12659539
+n12214789
+n11699442
+n12217453
+n12574866
+n12374418
+n12249542
+n13118707
+n12215022
+n12342852
+n12762896
+n12306717
+n11769176
+n12805146
+n12519089
+n11754893
+n12772908
+n12624381
+n12482031
+n12243109
+n12223764
+n12170585
+n12230794
+n12791329
+n12674120
+n12917901
+n12237486
+n12185859
+n12681893
+n12905412
+n12899537
+n12899752
+n12806015
+n12011620
+n12922763
+n12651229
+n12303083
+n11928352
+n11926365
+n12223569
+n12791064
+n12311579
+n11834654
+n11760785
+n12749679
+n12489815
+n12666965
+n12929403
+n12902662
+n12620196
+n12237641
+n12625383
+n12244153
+n11774513
+n12520864
+n12516828
+n12849717
+n12485653
+n12790430
+n12788854
+n11924445
+n12632335
+n11947251
+n12099342
+n11931540
+n12545635
+n11778257
+n11924849
+n12367611
+n12602262
+n12328567
+n12328398
+n12629305
+n11907689
+n11940006
+n12546962
+n11925898
+n11947629
+n11948864
+n11948264
+n12368451
+n12369309
+n12368028
+n12307240
+n12307076
+n12483427
+n12483625
+n12482893
+n12483841
+n12173664
+n12173912
+n12171316
+n12174521
+n12171098
+n12177844
+n12174311
+n12178896
+n12179122
+n12676534
+n12676703
+n12675876
+n12920204
+n12921868
+n12621410
+n12622297
+n12245319
+n12244650
+n12244819
+n12521394
+n12530818
+n12849952
+n12850336
+n12850168
+n12495146
+n12570972
+n12196129
+n13107694
+n12202936
+n13111881
+n13103877
+n12409231
+n12765115
+n12265600
+n12409470
+n12713866
+n12281241
+n11709205
+n12189429
+n12562785
+n12284821
+n12401335
+n12570394
+n11759224
+n12286988
+n12491826
+n12527738
+n12696492
+n12325234
+n12198286
+n12330891
+n11650558
+n12405714
+n12284262
+n12714755
+n13109733
+n12262553
+n12506341
+n12303462
+n12260799
+n12302071
+n12492106
+n11762433
+n12582231
+n12774299
+n13108481
+n12267411
+n11756092
+n12662772
+n13108662
+n12528549
+n12690653
+n12180885
+n13108545
+n13108323
+n12334293
+n12670758
+n12286826
+n12724942
+n12155009
+n12570703
+n12523475
+n12154773
+n12915811
+n12268246
+n13108131
+n12806732
+n12524188
+n11758799
+n12496427
+n12568186
+n12495895
+n12196527
+n12196336
+n12196694
+n12203529
+n12204175
+n12282933
+n12282527
+n12283542
+n12282737
+n12282235
+n12402051
+n12402840
+n12401684
+n12402348
+n12402596
+n11759853
+n11759404
+n12406715
+n12406488
+n12407890
+n12406902
+n12330469
+n12345899
+n11709674
+n12329473
+n12200143
+n11712282
+n12752205
+n13110915
+n12513933
+n12189987
+n12731401
+n12717224
+n12717072
+n12946849
+n12756457
+n12201580
+n11703669
+n12491017
+n12190410
+n12242409
+n07754894
+n12818346
+n12658308
+n12658118
+n12494794
+n12317296
+n12651821
+n11711764
+n11710136
+n11711537
+n11710393
+n12755225
+n12753573
+n12754648
+n12754781
+n12755727
+n12754981
+n12755387
+n12753007
+n12753245
+n12754003
+n12759273
+n12318378
+n12288823
+n12319204
+n12319414
+n12732491
+n12733647
+n12732756
+n12732009
+n12733870
+n12732966
+n12733218
+n12948495
+n12948251
+n12948053
+n12947313
+n12757303
+n12757458
+n11704093
+n11705171
+n12707781
+n12399132
+n12400720
+n12345280
+n11695599
+n12771192
+n12704343
+n12638218
+n12644902
+n12190869
+n12373100
+n12300840
+n12743352
+n12651611
+n12629666
+n12636224
+n12648045
+n12399384
+n12301180
+n12744387
+n12640839
+n12745386
+n12633638
+n12771390
+n12761284
+n12400489
+n12333530
+n12333771
+n12333053
+n12641413
+n12332030
+n12711984
+n12709901
+n12708293
+n12713063
+n12711596
+n12709103
+n12709688
+n12710415
+n12710295
+n12710693
+n12708654
+n12708941
+n12643313
+n12638753
+n12646740
+n12645174
+n12650379
+n12634429
+n12633994
+n12634211
+n12635532
+n12635955
+n12635744
+n12643473
+n12649065
+n12641931
+n12642200
+n12650556
+n12649539
+n12649317
+n12646605
+n12647560
+n12648888
+n12263987
+n12263038
+n12306089
+n12305986
+n12305293
+n12304703
+n12305475
+n12262018
+n12261808
+n12261571
+n12595699
+n12587132
+n12583126
+n12596709
+n12591351
+n12596849
+n12582665
+n12596148
+n12595964
+n12582846
+n12587803
+n12591017
+n12588320
+n12588780
+n12585629
+n12597134
+n12598027
+n12597466
+n12583401
+n12593994
+n12590232
+n11757653
+n11756669
+n11757851
+n11664418
+n13108841
+n11647703
+n11628793
+n11658331
+n11623105
+n11630017
+n11628456
+n11658544
+n11643835
+n11624531
+n11661372
+n11645914
+n11630489
+n11640132
+n11608250
+n11620673
+n11618861
+n11627168
+n11623815
+n11624192
+n11623967
+n11635152
+n11634736
+n11635433
+n11636204
+n11644462
+n11644226
+n11644046
+n11626585
+n11625632
+n11625003
+n11626826
+n11625804
+n11626152
+n11626409
+n11646694
+n11646167
+n11632167
+n11631854
+n11632619
+n11616662
+n11611561
+n11611356
+n11617631
+n11612575
+n11611758
+n11614713
+n11615387
+n11612018
+n11611087
+n11612923
+n11616486
+n11618290
+n11612349
+n11611233
+n11617090
+n11614250
+n11618525
+n11615026
+n11617272
+n11614039
+n11613459
+n11615967
+n11614420
+n11621029
+n11622184
+n11622591
+n11621281
+n11622368
+n11621950
+n11621547
+n11621727
+n11619455
+n11619227
+n11627512
+n11628087
+n11627908
+n12691661
+n12691428
+n12316572
+n12334891
+n12340755
+n12316444
+n12336727
+n12338796
+n12338454
+n12336973
+n12336092
+n12336224
+n12337617
+n12725521
+n12727101
+n12729521
+n12726670
+n12729315
+n12729729
+n12731029
+n12270741
+n12271643
+n12278650
+n12279458
+n12269241
+n12275489
+n12273114
+n12276872
+n12278371
+n12272883
+n12269652
+n12273768
+n12277800
+n12271933
+n12279772
+n12270946
+n12269406
+n12275675
+n12276628
+n12275131
+n12274358
+n12272239
+n12277578
+n12501202
+n12814643
+n12493208
+n12807773
+n12807409
+n12807251
+n11758122
+n12915568
+n12656369
+n12656685
+n12547215
+n12547503
+n11944196
+n11984144
+n11805544
+n11874081
+n11965218
+n12392549
+n11956348
+n11945514
+n11944954
+n11998888
+n11953884
+n11954345
+n11955153
+n11954161
+n12421137
+n12421467
+n12411461
+n12451915
+n12425281
+n12459629
+n12421683
+n12422129
+n12421917
+n12411922
+n12418221
+n12416073
+n12413165
+n12414932
+n12412606
+n12412355
+n12414035
+n12413880
+n12453186
+n12452836
+n12450344
+n12426248
+n12429352
+n12460697
+n12449526
+n12473840
+n12458550
+n12449296
+n12472024
+n12457091
+n12465557
+n12461466
+n12454159
+n12431434
+n12451240
+n12451399
+n12450840
+n12428076
+n12428747
+n12427566
+n12427184
+n12426623
+n12427757
+n12461109
+n12460957
+n12454705
+n12454949
+n12435777
+n12435649
+n11819509
+n11819912
+n11842204
+n11852028
+n11851258
+n11847169
+n11853813
+n11848479
+n11844892
+n11851839
+n11845557
+n11849871
+n11849983
+n11851578
+n11854479
+n11844371
+n11853356
+n11845793
+n11845913
+n11784126
+n11783920
+n12832315
+n11723770
+n11724109
+n12766869
+n12455950
+n11723227
+n12757816
+n11773987
+n12766595
+n01324610
+n02153109
+n01323599
+n01314781
+n01321579
+n01317541
+n01318894
+n01314663
+n02311060
+n01317916
+n01321230
+n01314388
+n02075612
+n02152740
+n01466257
+n01316949
+n01905661
+n01320872
+n01319467
+n01316422
+n02157206
+n10300303
+n02152881
+n01324431
+n01321854
+n01321770
+n01956344
+n01613615
+n01318279
+n02376542
+n02122948
+n01888045
+n01322343
+n01887896
+n02412440
+n01322221
+n01322604
+n01323261
+n01322685
+n02395694
+n01504344
+n01504179
+n01318381
+n02122580
+n01317813
+n02469472
+n02309337
+n02311617
+n02264232
+n02299157
+n02310585
+n02299505
+n02302620
+n02295390
+n02310717
+n02288268
+n02297442
+n02300797
+n02285801
+n02307325
+n02376791
+n02377063
+n01323355
+n01469103
+n01468712
+n01471682
+n01473806
+n01627424
+n01861778
+n09828216
+n01459791
+n02156871
+n01661091
+n01503061
+n02512053
+n01477525
+n02528163
+n02512938
+n01482071
+n02638596
+n01457852
+n01455778
+n01456756
+n02552171
+n01428580
+n02549989
+n02640857
+n02641379
+n02639087
+n02639605
+n02640242
+n02554730
+n02618827
+n02549248
+n02603317
+n01451426
+n02548247
+n02642107
+n02657368
+n02603540
+n02652668
+n02560110
+n02556846
+n02555863
+n02581957
+n02564270
+n02623445
+n02565573
+n02610664
+n02590702
+n02588286
+n02620167
+n02573704
+n02576223
+n02606384
+n02605316
+n02619550
+n02561108
+n02619165
+n02610066
+n02562315
+n02586543
+n02593019
+n02594250
+n02616851
+n02585872
+n02607862
+n02557182
+n02557318
+n02557749
+n02624167
+n02628062
+n02631475
+n02630281
+n02631041
+n02629230
+n02626762
+n02625258
+n02625612
+n02624807
+n02626265
+n02625851
+n02627292
+n02627532
+n02576575
+n02579928
+n02580336
+n02576906
+n02579303
+n02578771
+n02578928
+n02580679
+n02580830
+n02607201
+n02607470
+n02607072
+n02605703
+n02606052
+n02605936
+n02561381
+n02561661
+n02561514
+n02564720
+n02563648
+n02563182
+n02563792
+n02562796
+n02565072
+n02565324
+n02599052
+n02596381
+n02597608
+n02596067
+n02595702
+n02598573
+n02598878
+n02642644
+n02649546
+n02643112
+n02643566
+n02643836
+n02644113
+n02658531
+n02657694
+n02660208
+n02654745
+n02654425
+n02656670
+n02655020
+n02655523
+n02653145
+n02656032
+n02655848
+n02541687
+n02542432
+n02524202
+n02533834
+n02543565
+n02517442
+n01438208
+n02526121
+n02529772
+n02518324
+n02520147
+n02519686
+n02519862
+n02583567
+n01444339
+n01446589
+n01438581
+n01439121
+n01448951
+n02584449
+n02584145
+n02583890
+n01446760
+n01447331
+n01448594
+n01448291
+n01439514
+n01442972
+n01440764
+n01443831
+n01443537
+n01443243
+n01449712
+n01449374
+n02527622
+n02527057
+n02527271
+n02532602
+n02533209
+n02566834
+n02537085
+n02534734
+n02514041
+n02568959
+n02568087
+n02570164
+n02569484
+n02537716
+n02538216
+n02537525
+n02537319
+n02538010
+n02536456
+n02535537
+n02535258
+n02536864
+n02535759
+n01482330
+n01495701
+n01487506
+n01495493
+n01486838
+n01488918
+n01492357
+n01494475
+n01483522
+n01488038
+n01489501
+n01491006
+n01489709
+n01489920
+n01490112
+n01491361
+n01490670
+n01493146
+n01492569
+n01484850
+n01484097
+n01483830
+n01498041
+n01496331
+n01499396
+n01500476
+n01500091
+n01501160
+n01498989
+n01629276
+n01639765
+n01629962
+n01630284
+n01629819
+n01637615
+n01632047
+n01631663
+n01630670
+n01630901
+n01632458
+n01632777
+n01632601
+n01645776
+n01640846
+n01644900
+n01643896
+n01650167
+n01644373
+n01646648
+n01646902
+n01646292
+n01646802
+n01646388
+n01647640
+n01646555
+n01642539
+n01641206
+n01641577
+n01641391
+n01642257
+n01641739
+n01650690
+n01652026
+n01886756
+n01871265
+n01871875
+n01874434
+n01862399
+n02082791
+n01887474
+n01889074
+n02372584
+n01888411
+n02453611
+n02430559
+n01887623
+n02469914
+n02075296
+n02139199
+n02062017
+n02323449
+n02372952
+n01888181
+n02329401
+n01887787
+n02453108
+n01888264
+n02461830
+n02370806
+n01891633
+n01893825
+n02454794
+n02456962
+n02454379
+n02460009
+n02458135
+n02457945
+n02457408
+n02460451
+n02461128
+n02470238
+n02501583
+n02472293
+n02470325
+n02496913
+n02484322
+n02475669
+n02474777
+n02475078
+n02470899
+n02483092
+n02480153
+n02483708
+n02483362
+n02481823
+n02480495
+n02480855
+n02482650
+n02482474
+n02481103
+n02481366
+n02481500
+n02500267
+n02497673
+n02499316
+n02499808
+n02499022
+n02484473
+n02489589
+n02486410
+n02485536
+n02489166
+n02488702
+n02486261
+n02487347
+n02484975
+n02488291
+n02486657
+n02486908
+n02487847
+n02487547
+n02493793
+n02490219
+n02494079
+n02493509
+n02492035
+n02492660
+n02491107
+n02490811
+n02507649
+n02120997
+n02134971
+n02083346
+n02441326
+n02131653
+n02509515
+n02508213
+n02509815
+n02508021
+n02509197
+n02510455
+n02127808
+n02121620
+n02128925
+n02129604
+n02128385
+n02130308
+n02129165
+n02128757
+n02129923
+n02129837
+n01323068
+n02129463
+n01322898
+n02121808
+n02124623
+n02122878
+n02123159
+n02123045
+n02123242
+n02124484
+n02124075
+n02124313
+n02122298
+n02123478
+n02123394
+n02123917
+n02123597
+n02122510
+n02122725
+n02122430
+n02126640
+n02125494
+n02127052
+n02125311
+n02125081
+n02126139
+n02126787
+n02125010
+n02127292
+n02127482
+n02127678
+n02127381
+n02138441
+n02137015
+n02137549
+n02138647
+n02138777
+n02084071
+n02115335
+n02114100
+n02083672
+n02115096
+n02118333
+n02117135
+n02110958
+n02112826
+n02111500
+n02112706
+n02113335
+n02084861
+n02111129
+n02112497
+n02110341
+n02084732
+n02111626
+n02085374
+n02087122
+n02103406
+n02110806
+n02113978
+n02111277
+n02085272
+n02113186
+n02113023
+n02113799
+n02113624
+n02113712
+n02112018
+n02112350
+n02112137
+n02111889
+n02086346
+n02086240
+n02087046
+n02085936
+n02085782
+n02085620
+n02086079
+n02086753
+n02086646
+n02086910
+n02092468
+n02087394
+n02089468
+n02098550
+n02087551
+n02089232
+n02096437
+n02096756
+n02095412
+n02096051
+n02098286
+n02093859
+n02094114
+n02093754
+n02094433
+n02095314
+n02093647
+n02097474
+n02097658
+n02098413
+n02097298
+n02096177
+n02096585
+n02095050
+n02096294
+n02093056
+n02094258
+n02093991
+n02094562
+n02098105
+n02097209
+n02097130
+n02097047
+n02095570
+n02095727
+n02095889
+n02093256
+n02093428
+n02094721
+n02094931
+n02098906
+n02099997
+n02098806
+n02100399
+n02101108
+n02099029
+n02100583
+n02100236
+n02101006
+n02100735
+n02100877
+n02102318
+n02102605
+n02101861
+n02101388
+n02101556
+n02102480
+n02102973
+n02102040
+n02102177
+n02099267
+n02099601
+n02099429
+n02099849
+n02099712
+n02091635
+n02088466
+n02090475
+n02088238
+n02091244
+n02091467
+n02088839
+n02091831
+n02088094
+n02089078
+n02088632
+n02092002
+n02090379
+n02089555
+n02088364
+n02092339
+n02090827
+n02090622
+n02090721
+n02089973
+n02089867
+n02091134
+n02091032
+n02109047
+n02103841
+n02109961
+n02108551
+n02109811
+n02109525
+n02108915
+n02106854
+n02108672
+n02107420
+n02108422
+n02104523
+n02108089
+n02108254
+n02104029
+n02104280
+n02106966
+n02104365
+n02107142
+n02107312
+n02110627
+n02110185
+n02110063
+n02107574
+n02108000
+n02107683
+n02107908
+n02104882
+n02105412
+n02105855
+n02105505
+n02106166
+n02106030
+n02106550
+n02105641
+n02106662
+n02105251
+n02106382
+n02105056
+n02105162
+n02116738
+n02115641
+n02115913
+n02114855
+n01322508
+n02114712
+n02114548
+n02114367
+n02119022
+n02119477
+n02119789
+n02120079
+n02120505
+n02119634
+n02117900
+n02117512
+n02442845
+n02443484
+n02446206
+n02450295
+n02445394
+n02444819
+n02441942
+n02443114
+n02449350
+n02445715
+n02447366
+n02443346
+n02445004
+n02445171
+n02134084
+n02133161
+n01322983
+n02133704
+n02132136
+n02134418
+n02132580
+n02132788
+n02141306
+n02140049
+n02139671
+n02146371
+n02145424
+n02147591
+n02147947
+n02062430
+n02073250
+n02075927
+n02062744
+n02066707
+n02063224
+n02068974
+n02068541
+n02070430
+n02069412
+n02069701
+n02071636
+n02071294
+n02072798
+n02070174
+n02069974
+n02066245
+n02064338
+n02064816
+n02065407
+n02065026
+n02073831
+n02074367
+n02081571
+n02076196
+n02079389
+n02076779
+n02080415
+n02079851
+n02080146
+n02077658
+n02077152
+n02077923
+n02078574
+n02078738
+n02079005
+n02328429
+n02323902
+n02324045
+n02326432
+n02325722
+n02325366
+n02324587
+n02324850
+n02324514
+n02328150
+n02324431
+n02327842
+n02326862
+n02327028
+n02367492
+n02331046
+n02365480
+n02343320
+n02341974
+n02346627
+n02366959
+n02339376
+n02363005
+n02342885
+n02359324
+n02355227
+n02361337
+n02359556
+n02364520
+n02343772
+n02330245
+n02338145
+n02353861
+n02333546
+n02333909
+n02360282
+n02358091
+n02359915
+n02355477
+n02358890
+n02358390
+n02356381
+n02357111
+n02356977
+n02357401
+n02356798
+n02361706
+n02361587
+n02364840
+n02364673
+n02332755
+n02332156
+n02503517
+n02504458
+n02504013
+n02394477
+n02373336
+n02399000
+n02437136
+n02395003
+n02437616
+n02438580
+n02397744
+n02398521
+n02397529
+n02429456
+n02430045
+n02401031
+n02439033
+n02439398
+n02434190
+n02433925
+n02433318
+n02432983
+n02431337
+n02432511
+n02430830
+n02431122
+n02434954
+n02432291
+n02431785
+n02431976
+n02433546
+n02432704
+n02414578
+n02410509
+n02411206
+n02407959
+n02402010
+n02419796
+n02411705
+n02418064
+n02416519
+n02416104
+n02415435
+n02415253
+n02415577
+n02415829
+n02410702
+n02410900
+n02408817
+n02408429
+n02409508
+n02404573
+n02402175
+n02404906
+n02402425
+n02405302
+n02410011
+n02404186
+n02403003
+n02403325
+n02403231
+n02403740
+n02403454
+n02406174
+n02404432
+n02406647
+n02407625
+n02407071
+n02405929
+n02407276
+n02407390
+n02406533
+n02424305
+n02421136
+n02420509
+n02427724
+n02426813
+n02426481
+n02421792
+n02421449
+n02424695
+n02420828
+n02422391
+n02422699
+n02424486
+n02425887
+n02422106
+n02424085
+n02428508
+n02428349
+n02423022
+n02424909
+n02425228
+n02423218
+n02423589
+n02413131
+n02413050
+n02411999
+n02412210
+n02412080
+n02418465
+n02419336
+n02419634
+n02416964
+n02416820
+n02417914
+n02417387
+n02417070
+n02416880
+n02417534
+n02437482
+n02437312
+n02396427
+n02397096
+n02396014
+n02395406
+n02438173
+n02438272
+n02391994
+n02393580
+n02374149
+n02393940
+n02392434
+n02393161
+n02392824
+n02374451
+n02391049
+n02389346
+n02388917
+n02377603
+n02382948
+n02389128
+n02381460
+n02389261
+n02382204
+n02375302
+n02376918
+n02387722
+n02388832
+n02381609
+n02377703
+n02388735
+n02386014
+n02380464
+n02386310
+n02377480
+n02380335
+n02382437
+n02389026
+n02385214
+n02383231
+n02388276
+n02377291
+n02377181
+n02377388
+n02379430
+n02378969
+n02378541
+n02381364
+n02379329
+n02381004
+n02381261
+n02379908
+n02379183
+n02386141
+n02386224
+n02382338
+n02387254
+n02386496
+n02386853
+n02387093
+n02386968
+n02387346
+n02382039
+n02380745
+n02380583
+n02382750
+n02382635
+n02382850
+n02391234
+n02391373
+n02391508
+n02390015
+n02389779
+n02389559
+n01872401
+n01873310
+n01872772
+n01877134
+n01882714
+n01883070
+n01875313
+n01874928
+n01883513
+n01881171
+n01877606
+n01877812
+n01878929
+n01879509
+n01884834
+n01885498
+n01662622
+n01661818
+n01662784
+n01669372
+n01669191
+n01666228
+n01667778
+n01672032
+n01669654
+n01663401
+n01665932
+n01668665
+n01670092
+n01667114
+n01668892
+n01664990
+n01664065
+n01663782
+n01665541
+n01664369
+n01664674
+n01664492
+n01670802
+n01671125
+n01670535
+n01671479
+n01696633
+n01726692
+n01673282
+n01674464
+n01699831
+n01698434
+n01697178
+n01698640
+n01699040
+n01697611
+n01697457
+n01740551
+n01752165
+n01751748
+n01745125
+n01741562
+n01727646
+n01753488
+n01752736
+n01752585
+n01753032
+n01753959
+n01754533
+n01754370
+n01754876
+n01757901
+n01757677
+n01755581
+n01757115
+n01755740
+n01756089
+n01756508
+n01756291
+n01756733
+n01757343
+n01747885
+n01749939
+n01751472
+n01747589
+n01749582
+n01746359
+n01745484
+n01748264
+n01748906
+n01741943
+n01743605
+n01742821
+n01742172
+n01743086
+n01744100
+n01743936
+n01744401
+n01730960
+n01735189
+n01733757
+n01729322
+n01732244
+n01731545
+n01737021
+n01729977
+n01730812
+n01730563
+n01728572
+n01728920
+n01739381
+n01734418
+n01740131
+n01735577
+n01735439
+n01734104
+n01733957
+n01732614
+n01732789
+n01737875
+n01737472
+n01737728
+n01730185
+n01730307
+n01734808
+n01734637
+n01675722
+n01693783
+n01694709
+n01684133
+n01692333
+n01695060
+n01685808
+n01676755
+n01687665
+n01674990
+n01694178
+n01692864
+n01689411
+n01681940
+n01681653
+n01678343
+n01682714
+n01682435
+n01681328
+n01680264
+n01679626
+n01677366
+n01677747
+n01679962
+n01680655
+n01680478
+n01687978
+n01689081
+n01688243
+n01693334
+n01693175
+n01690149
+n01689811
+n01700470
+n01713764
+n01701859
+n01704323
+n01515303
+n01844917
+n01524359
+n01514668
+n01833805
+n01838038
+n01825930
+n01844551
+n01604330
+n01834918
+n01822602
+n01514752
+n01517565
+n01789386
+n01844231
+n01816887
+n01517966
+n01503976
+n01514859
+n02000954
+n01858441
+n02016358
+n02021795
+n01845132
+n02008041
+n02014237
+n02021050
+n02018795
+n02005790
+n02002075
+n02013177
+n02012849
+n02013706
+n02014524
+n02007558
+n02014941
+n02006656
+n02005399
+n02022684
+n02008497
+n02010453
+n02009229
+n02011281
+n02008643
+n02008796
+n02011460
+n02010728
+n02011016
+n02009750
+n02009508
+n02009380
+n02009912
+n02010272
+n02012185
+n02011805
+n02006063
+n02006364
+n02003204
+n02002724
+n02002556
+n02004131
+n02003839
+n02004492
+n02004855
+n02017725
+n02015357
+n02016066
+n02015554
+n02018027
+n02018368
+n02018207
+n02006985
+n02007284
+n02023341
+n02034129
+n02034295
+n02036053
+n02040266
+n02037110
+n02034661
+n02031585
+n02031934
+n02030996
+n02036711
+n02026059
+n02033779
+n02038993
+n02033561
+n02037464
+n02024479
+n02025239
+n02023992
+n02024763
+n02025043
+n02023855
+n02034971
+n02035210
+n02032222
+n02032355
+n02032480
+n02033041
+n02030287
+n02027897
+n02030837
+n02029087
+n02029378
+n02028035
+n02027075
+n02028900
+n02027492
+n02029706
+n02027357
+n02028727
+n02030035
+n02026948
+n02028175
+n02028342
+n02028451
+n02037869
+n02038466
+n01858845
+n01858906
+n01860002
+n01858281
+n01859190
+n01858780
+n01859325
+n01860187
+n01859496
+n01859689
+n01859852
+n02016956
+n02017213
+n02016816
+n02040505
+n02057731
+n02050004
+n02045369
+n02049088
+n02051474
+n02055658
+n02047614
+n02041085
+n02044178
+n02043808
+n02043333
+n02041246
+n02043063
+n02042472
+n02041678
+n02042180
+n02041875
+n02042759
+n02042046
+n02044778
+n02044517
+n02059162
+n02058221
+n02058594
+n02060411
+n02060889
+n02060133
+n02050442
+n02050313
+n02051059
+n02050586
+n02050809
+n02045864
+n02046759
+n02045596
+n02047260
+n02046939
+n02047411
+n02047045
+n02052775
+n02054036
+n02054502
+n02051845
+n02053083
+n02054711
+n02055107
+n02052204
+n02052365
+n02053425
+n02053584
+n02055803
+n02056728
+n02057035
+n02056570
+n02057330
+n02056228
+n02048115
+n02048353
+n02047975
+n01845477
+n01855672
+n01846331
+n01856890
+n01857851
+n01857079
+n01856380
+n01857512
+n01857325
+n01856072
+n01856553
+n01856155
+n01857632
+n01847253
+n01851375
+n01849676
+n01852329
+n01850192
+n01847978
+n01852400
+n01848840
+n01849157
+n01847806
+n01849466
+n01848123
+n01850553
+n01847089
+n01851895
+n01849863
+n01852142
+n01847000
+n01852671
+n01848976
+n01847407
+n01848648
+n01852861
+n01851207
+n01851038
+n01850373
+n01850873
+n01847170
+n01851573
+n01851731
+n01848555
+n01848323
+n01848453
+n01853195
+n01853870
+n01854415
+n01853498
+n01853666
+n01854838
+n01855032
+n01855476
+n01855188
+n01854700
+n01584225
+n01546506
+n01546921
+n01525720
+n01546039
+n01539573
+n01585121
+n01585715
+n01584695
+n01586374
+n01584853
+n01586020
+n01552813
+n01551711
+n01555004
+n01554448
+n01547832
+n01548301
+n01549886
+n01549430
+n01550172
+n01549641
+n01555305
+n01549053
+n01548865
+n01548492
+n01563128
+n01589718
+n01578575
+n01576695
+n01528654
+n01591697
+n01594004
+n01557185
+n01527347
+n01597022
+n01598588
+n01527617
+n01576076
+n01555809
+n01587834
+n01602630
+n01597336
+n01538955
+n01529672
+n01600657
+n01601694
+n01527194
+n01586941
+n01588002
+n01527917
+n01587526
+n01601068
+n01603600
+n01602832
+n01571904
+n01575745
+n01566645
+n01594372
+n01589286
+n01526521
+n01582856
+n01528396
+n01528845
+n01556182
+n01542786
+n01590583
+n01564914
+n01567133
+n01563746
+n01564394
+n01563449
+n01565078
+n01570676
+n01570839
+n01570267
+n01567678
+n01569060
+n01568892
+n01568294
+n01569971
+n01569262
+n01567879
+n01568720
+n01569423
+n01563945
+n01564217
+n01566207
+n01565599
+n01565930
+n01564773
+n01579410
+n01581984
+n01579578
+n01582398
+n01580077
+n01579260
+n01579028
+n01582220
+n01579149
+n01580870
+n01581166
+n01577035
+n01578180
+n01577659
+n01593028
+n01592084
+n01592694
+n01592387
+n01592540
+n01592257
+n01562265
+n01558993
+n01559477
+n01558461
+n01558307
+n01558149
+n01560105
+n01558594
+n01557962
+n01558765
+n01561732
+n01562014
+n01560280
+n01562451
+n01561452
+n01560419
+n01560636
+n01559804
+n01560793
+n01560935
+n01598988
+n01599556
+n01600085
+n01599269
+n01599159
+n01597906
+n01598074
+n01597737
+n01533651
+n01534155
+n01540233
+n01531178
+n01534762
+n01533893
+n01537134
+n01531344
+n01541386
+n01531512
+n01533481
+n01541922
+n01533000
+n01544704
+n01530575
+n01532325
+n01532511
+n01531811
+n01534582
+n01532829
+n01530439
+n01533339
+n01531971
+n01534433
+n01541102
+n01540566
+n01540832
+n01536644
+n01535469
+n01536334
+n01536186
+n01535690
+n01536780
+n01536035
+n01537544
+n01538059
+n01538630
+n01537895
+n01538200
+n01603812
+n01603953
+n01573898
+n01573074
+n01572328
+n01572782
+n01574045
+n01573240
+n01573360
+n01572654
+n01572489
+n01574560
+n01575117
+n01574390
+n01575401
+n01595450
+n01595168
+n01595624
+n01594787
+n01594968
+n01595974
+n01596273
+n01583209
+n01583495
+n01543632
+n01544389
+n01591123
+n01591005
+n01591301
+n01539925
+n01540090
+n01834540
+n01834177
+n01843065
+n01838598
+n01842235
+n01843719
+n01843383
+n01839598
+n01839330
+n01839086
+n01841102
+n01841679
+n01840775
+n01839750
+n01841441
+n01841288
+n01827403
+n01826364
+n01830915
+n01830042
+n01829413
+n01826680
+n01829869
+n01828970
+n01828556
+n01827793
+n01828096
+n01616318
+n01605630
+n01618503
+n01613294
+n01621127
+n01616764
+n01618922
+n01617766
+n01617443
+n01618082
+n01617095
+n01620414
+n01619310
+n01620735
+n01619536
+n01619835
+n01620135
+n01609751
+n01606522
+n01607812
+n01608265
+n01610955
+n01610552
+n01606809
+n01616086
+n01608432
+n01607600
+n01607962
+n01606672
+n01609956
+n01610226
+n01613177
+n01611800
+n01611472
+n01612628
+n01612476
+n01612275
+n01611969
+n01612122
+n01609391
+n01609062
+n01608814
+n01613807
+n01614343
+n01615121
+n01614925
+n01614038
+n01614556
+n01615703
+n01615458
+n01622959
+n01621635
+n01623880
+n01623425
+n01622352
+n01623615
+n01622120
+n01625562
+n01623706
+n01624115
+n01624537
+n01622483
+n01623110
+n01624833
+n01622779
+n01837072
+n01835276
+n01825278
+n01823013
+n01824575
+n01824035
+n01521399
+n01521756
+n01518878
+n01519873
+n01519563
+n01789740
+n01810700
+n01801876
+n01791463
+n01791107
+n02153203
+n01794344
+n01791954
+n01794158
+n01809106
+n01791625
+n01792429
+n01792158
+n01793435
+n01792042
+n01793715
+n01792640
+n01793249
+n01792955
+n01815601
+n01811909
+n01814370
+n01812337
+n01813088
+n01812662
+n01814921
+n01814755
+n01813532
+n01813385
+n01813948
+n01814217
+n01802721
+n01810268
+n01795088
+n01803078
+n01806567
+n01807496
+n01807105
+n01803362
+n01804163
+n01805801
+n01806297
+n01806364
+n01806143
+n01806467
+n01804478
+n01806847
+n01804653
+n01808140
+n01807828
+n01797307
+n01798484
+n01797020
+n01797886
+n01797601
+n01796729
+n01795545
+n01796340
+n01819734
+n01821203
+n01819115
+n01817346
+n01818832
+n01817953
+n01818515
+n01818299
+n01820052
+n01820348
+n01817263
+n01821869
+n01822300
+n01819313
+n01819465
+n01821076
+n01820546
+n01317089
+n01317294
+n01918744
+n01922303
+n01940736
+n02316707
+n01909422
+n01767661
+n01906749
+n01930112
+n01934440
+n01924916
+n01938454
+n01935395
+n01955084
+n01955933
+n01968315
+n01942177
+n01960459
+n01963317
+n01956481
+n01963571
+n01959985
+n01965889
+n01961985
+n01957335
+n01958038
+n01959492
+n01964441
+n01964271
+n01965529
+n01969726
+n01968897
+n01972541
+n01970164
+n01970667
+n01951274
+n01953361
+n01943899
+n01945845
+n01943087
+n01953762
+n01950731
+n01945685
+n01944390
+n01949085
+n01947396
+n01946630
+n01944812
+n01945143
+n01944955
+n02317335
+n02321170
+n02319555
+n02319095
+n02321529
+n02317781
+n01909906
+n01914163
+n01913166
+n01910747
+n01915700
+n01914609
+n01915811
+n01916925
+n01916187
+n01916481
+n01917882
+n01917289
+n01784675
+n01974773
+n01768244
+n01786646
+n01769347
+n01787835
+n02309242
+n02159955
+n01785667
+n01994910
+n01976868
+n01990007
+n01975687
+n01976146
+n01990800
+n01992773
+n01991520
+n01991028
+n01982650
+n01986806
+n01986214
+n01987545
+n01976957
+n01985128
+n01984245
+n01984695
+n01983481
+n01981276
+n01979874
+n01978455
+n01978287
+n01980166
+n01982068
+n01770393
+n01770081
+n01776192
+n01772222
+n01776313
+n01779629
+n01779148
+n01772664
+n01775370
+n01774750
+n01775062
+n01773797
+n01774384
+n01773157
+n01773549
+n02226183
+n02236896
+n02263378
+n02232951
+n02163297
+n02262449
+n02246011
+n02188699
+n02272871
+n02273392
+n02231052
+n02161457
+n02236355
+n02312427
+n02231487
+n02162561
+n02164464
+n02241569
+n02262803
+n02206270
+n02274024
+n02312640
+n02268148
+n02270623
+n02207805
+n02226429
+n02229544
+n02228341
+n02226970
+n02241426
+n02240517
+n02266050
+n02264885
+n02264363
+n02236044
+n02236241
+n02233338
+n02234355
+n02234848
+n02233943
+n02251775
+n02256656
+n02258198
+n02257284
+n02250822
+n02259212
+n02252226
+n02200198
+n02205219
+n02203152
+n02196344
+n02190166
+n02198859
+n02196119
+n02201000
+n02202006
+n02195819
+n02195526
+n02192513
+n02191773
+n02190790
+n02192252
+n02191979
+n02169974
+n02168245
+n02167151
+n02169023
+n02165456
+n02171453
+n02180875
+n02183096
+n02169497
+n02176261
+n02176439
+n02165105
+n02177972
+n02168699
+n02166567
+n02166826
+n02171869
+n02175916
+n02175569
+n02172870
+n02173373
+n02174001
+n02172182
+n02172518
+n02174659
+n02243562
+n02244797
+n02212062
+n02218371
+n02219486
+n02206856
+n02216211
+n02215770
+n02212602
+n02213107
+n02212958
+n02213543
+n02213239
+n02213788
+n02220804
+n02221083
+n02221414
+n02209354
+n02208280
+n02211627
+n02210427
+n02211444
+n02209624
+n02208498
+n02208848
+n02274259
+n02283201
+n02281787
+n02274822
+n02281406
+n02277742
+n02279972
+n02280649
+n02282257
+n02282903
+n02282385
+n02275773
+n02278210
+n02276258
+n02276902
+n02279257
+n02277094
+n02276078
+n02275560
+n02277268
+n02276355
+n02276749
+n02278024
+n02281015
+n02281136
+n02305929
+n02301452
+n02295064
+n02298541
+n02284611
+n02287004
+n02291572
+n02305085
+n02301935
+n02304432
+n02303284
+n02302969
+n02292692
+n02291748
+n02268443
+n02268853
+n01321123
+n02376679
+n01323493
+n01338685
+n01387065
+n01339083
+n01339336
+n01339801
+n01339471
+n01397114
+n01389507
+n01397871
+n01410457
+n01407798
+n01424420
+n01392380
+n01395254
+n01396048
+n11542137
+n11544015
+n11542640
+n09626238
+n09856671
+n09605289
+n09622049
+n09971273
+n09882716
+n09621232
+n09902954
+n09620794
+n09727440
+n09624168
+n09752519
+n10378026
+n10500217
+n10514429
+n09610405
+n09617867
+n10355449
+n09618957
+n10002760
+n10384496
+n09637339
+n09613191
+n09836160
+n10274815
+n09890749
+n10112591
+n10260706
+n09606527
+n09767197
+n10709529
+n09976429
+n09918554
+n10588074
+n10565667
+n09990415
+n10120330
+n09616922
+n09622302
+n09630641
+n09796809
+n09614684
+n10635788
+n09645091
+n10405694
+n09676884
+n09638875
+n09874428
+n09627906
+n09628382
+n10522759
+n10247880
+n09624980
+n10529231
+n10024362
+n09614315
+n09612848
+n09632518
+n10147935
+n09871867
+n09620078
+n09634494
+n10077593
+n10040945
+n09623038
+n10560106
+n10289039
+n10422405
+n09774783
+n10042845
+n09831962
+n10726031
+n09923673
+n09610660
+n09626031
+n10401331
+n09621545
+n10362319
+n10665698
+n09906449
+n09939313
+n10439373
+n09607630
+n09631463
+n10451450
+n10541229
+n09793141
+n10633450
+n10530959
+n09629752
+n10560637
+n10431625
+n09619168
+n09763784
+n09636339
+n10235549
+n09845401
+n10513823
+n10610465
+n09951274
+n09816771
+n10401829
+n10307234
+n10505613
+n10148035
+n09874725
+n09944022
+n10015485
+n10728624
+n10308168
+n10200781
+n10480253
+n10376523
+n09903153
+n10748620
+n10581890
+n10045713
+n10165109
+n10694258
+n10509063
+n10559996
+n10366966
+n10305802
+n10421470
+n10164492
+n10477713
+n10020890
+n10679174
+n10632576
+n10189278
+n09894445
+n10504206
+n10559288
+n09917593
+n09833441
+n10384392
+n10060352
+n09840217
+n09777012
+n10309896
+n09905185
+n10686885
+n10209731
+n10093818
+n10754189
+n10411551
+n10577284
+n10285313
+n10333439
+n10624074
+n10287213
+n09871229
+n10078719
+n09843443
+n10173771
+n10192839
+n10419785
+n10406266
+n10288964
+n10804287
+n10665587
+n10153414
+n10406765
+n10611613
+n09805324
+n09824361
+n10316360
+n10707233
+n10696508
+n09858165
+n10175248
+n09979321
+n10692482
+n10396106
+n10427764
+n10385566
+n10439851
+n09820263
+n10533013
+n09854421
+n10304914
+n10575463
+n09915651
+n10453184
+n10101634
+n10701180
+n09835230
+n10746931
+n10542888
+n10604491
+n09764381
+n09929298
+n10019406
+n09785659
+n10618342
+n10782471
+n10701644
+n10105733
+n10638922
+n09842047
+n10315561
+n09835506
+n10153594
+n09830194
+n10263411
+n10157128
+n10498816
+n10689306
+n10604380
+n10634849
+n09923561
+n09764598
+n10086568
+n10007684
+n09841696
+n10321340
+n10092488
+n10386984
+n10387196
+n10205457
+n10578021
+n10098710
+n09836519
+n09836786
+n09836343
+n09877951
+n10300154
+n10095769
+n10435988
+n09930257
+n10387324
+n10098862
+n10642596
+n10331167
+n09946814
+n10299250
+n09896170
+n10415638
+n10091450
+n10069296
+n09989502
+n10226413
+n10493685
+n09765278
+n09930876
+n10340312
+n09990777
+n09834699
+n10737103
+n10649197
+n10701962
+n10415037
+n10151760
+n10229883
+n10732010
+n10603851
+n10599806
+n10369317
+n09903501
+n10755080
+n10098245
+n10382825
+n10536416
+n10036929
+n10624310
+n09842528
+n10085869
+n09991867
+n10078131
+n10627252
+n10682953
+n10237196
+n09789566
+n10182190
+n09899671
+n10150071
+n10091651
+n10806113
+n10249459
+n10317500
+n09822830
+n10448983
+n09862621
+n10540114
+n10009276
+n10333838
+n10730728
+n10721321
+n09659188
+n09650729
+n09652149
+n09659039
+n09729530
+n09641002
+n09725653
+n09846469
+n09750770
+n10486166
+n10169147
+n09684901
+n09683757
+n09682291
+n10364198
+n10518602
+n10341573
+n10672371
+n10332861
+n10112129
+n10602470
+n10727256
+n10508141
+n10652605
+n09881265
+n09933098
+n09812338
+n09920283
+n10078806
+n10339966
+n10667477
+n10566072
+n10469874
+n10624540
+n09809925
+n09846755
+n09873899
+n09779790
+n10034614
+n10449664
+n10034201
+n09951616
+n10037385
+n09846894
+n10282672
+n10053808
+n09815790
+n10137825
+n10605985
+n10604979
+n09861946
+n10763383
+n09841188
+n10644598
+n10548681
+n10791221
+n10583790
+n09873473
+n10763620
+n10548537
+n10120671
+n10241300
+n10318293
+n10176679
+n09932508
+n10186216
+n10134178
+n10079399
+n09821831
+n09934337
+n10324560
+n10063461
+n09886403
+n09760609
+n10260800
+n10655594
+n09938449
+n10183931
+n09972458
+n09813219
+n10049363
+n10372373
+n10076604
+n09835348
+n09974648
+n10433164
+n09859152
+n10727171
+n10308732
+n09833536
+n10582746
+n10393909
+n10013927
+n10225219
+n10202624
+n09800964
+n10465831
+n09787534
+n10174445
+n10441962
+n10132035
+n09896685
+n09934774
+n10279018
+n10793570
+n10155849
+n10087434
+n09964202
+n09811852
+n10348526
+n10317007
+n10058777
+n10360747
+n09941964
+n10347446
+n09770359
+n09941787
+n09942970
+n09809749
+n09770179
+n10208950
+n10580772
+n10093475
+n10645017
+n09943239
+n09943541
+n10263790
+n10283170
+n10259348
+n10092978
+n10296176
+n09893191
+n10123844
+n10259780
+n10259997
+n10510245
+n10622053
+n10058585
+n10690648
+n10523341
+n10739391
+n10476467
+n10512372
+n10802507
+n10753442
+n09733793
+n09738708
+n09641757
+n09738400
+n09727826
+n09686536
+n09724533
+n09744834
+n09743792
+n09744161
+n09742101
+n09689435
+n09734450
+n09644152
+n09750282
+n09673495
+n09718811
+n09718217
+n09712696
+n09718936
+n10711766
+n09694771
+n09719794
+n09714694
+n09675922
+n09676247
+n10774440
+n09720256
+n09725229
+n09731571
+n09691729
+n09693982
+n09712448
+n09697401
+n09696585
+n09722658
+n09724656
+n09723067
+n09694664
+n09712324
+n09689958
+n09695979
+n10327987
+n09688804
+n09730204
+n09711435
+n09713108
+n09731343
+n09717233
+n09695620
+n09728285
+n09707289
+n09701833
+n09700964
+n09750891
+n09715427
+n09708750
+n09705784
+n09734185
+n09752023
+n09635534
+n09696456
+n09732170
+n09730824
+n09719309
+n09734535
+n09736945
+n09720842
+n09692915
+n09751895
+n09724785
+n09747495
+n09734639
+n09749386
+n09705124
+n09731436
+n10303814
+n10450303
+n10722575
+n10054657
+n10631309
+n10249270
+n09913455
+n10162991
+n09807754
+n09505153
+n10209082
+n10323634
+n10104064
+n10001481
+n10242328
+n10159045
+n09932098
+n10253995
+n10005934
+n10578471
+n09770949
+n10004718
+n10570019
+n10289462
+n10069645
+n10187990
+n09916348
+n10727458
+n10320863
+n10572706
+n10572889
+n10038409
+n10756148
+n09927451
+n10243664
+n10502329
+n09988493
+n10373390
+n10470779
+n09928136
+n10750031
+n10081204
+n09857200
+n10013811
+n09894143
+n10313239
+n10082997
+n10677713
+n09787765
+n10485883
+n10275395
+n09913593
+n09772930
+n09633969
+n10195593
+n09756049
+n10607478
+n09855433
+n10017272
+n10630188
+n10522035
+n10521662
+n10380672
+n10210911
+n10382710
+n10164747
+n09782397
+n10524076
+n10467395
+n10467179
+n10698368
+n09792969
+n10525617
+n10675010
+n09889941
+n10557854
+n09618760
+n09899929
+n10116702
+n10258786
+n10508710
+n09873348
+n09870208
+n10793168
+n10098517
+n10314517
+n10629939
+n10477077
+n10261624
+n10082687
+n10262445
+n10167152
+n10098624
+n10674713
+n09838621
+n10047459
+n10091564
+n10740868
+n09872066
+n10070711
+n10628644
+n10421016
+n09915434
+n10588357
+n10529965
+n10334009
+n10339717
+n09818022
+n10412055
+n10335931
+n09945745
+n10432441
+n10607291
+n10583387
+n10718131
+n10542761
+n10147121
+n10738111
+n10159533
+n10223177
+n10185793
+n10553235
+n10293332
+n10178216
+n10563403
+n10488656
+n10619642
+n10276477
+n10620758
+n10450161
+n10043643
+n10043491
+n10313724
+n10084295
+n10787470
+n10333601
+n10131151
+n09871681
+n09981939
+n10055410
+n10243137
+n10377021
+n10368528
+n10025635
+n09874862
+n10613996
+n10472129
+n10598181
+n10129825
+n09847543
+n10173410
+n10780284
+n09889065
+n09832456
+n10780632
+n10117851
+n09827363
+n10247358
+n10282482
+n10092794
+n10375314
+n09981278
+n10082043
+n09972010
+n10237069
+n09792555
+n10236946
+n10568358
+n10207169
+n10236304
+n10734394
+n10373998
+n10595164
+n10357613
+n09823502
+n10146104
+n10602985
+n10145239
+n10267865
+n09854218
+n10399491
+n10102800
+n10102369
+n10406391
+n10300500
+n10080869
+n10332385
+n09988063
+n10375402
+n10145774
+n10143172
+n10145590
+n10345015
+n10142747
+n10142391
+n10146002
+n10267311
+n10141590
+n10092643
+n09918248
+n10671613
+n10141732
+n10145340
+n10145902
+n10145480
+n09827683
+n10135129
+n10465451
+n10353016
+n13001930
+n13040629
+n12969131
+n12985420
+n13052670
+n13037406
+n13077295
+n12987056
+n12979829
+n12975804
+n12974987
+n12985773
+n13044778
+n12985857
+n13035241
+n13043926
+n12982468
+n13035707
+n13044375
+n12969425
+n13060190
+n13054073
+n13040303
+n13028611
+n12997654
+n12983048
+n13062421
+n13054560
+n12963628
+n12980840
+n12991184
+n12989938
+n12992177
+n12988158
+n13029326
+n13029760
+n13011595
+n13049953
+n12998815
+n12997919
+n13052931
+n13050397
+n13012253
+n13001041
+n13005984
+n13000891
+n13007417
+n13019835
+n13013764
+n13006894
+n13002750
+n13017102
+n13232779
+n13009429
+n13013534
+n13003522
+n13001366
+n13009085
+n13022210
+n13002925
+n13006171
+n13003712
+n13001206
+n13004423
+n13001529
+n13003254
+n13003061
+n13032115
+n13032381
+n13033577
+n13055577
+n13055949
+n13055423
+n05430628
+n05450617
+n05449959
+n05451384
+n05453657
+n09369169
+n09454412
+n09403211
+n13086908
+n09416076
+n09251407
+n05218119
+n09444100
+n09438940
+n09257949
+n09189157
+n09475044
+n11691857
+n13102775
+n13087625
+n13022709
+n11675842
+n13152742
+n13125117
+n13129165
+n11690254
+n11669335
+n13134947
+n11676500
+n11675025
+n11674332
+n11669786
+n13131028
+n13132338
+n13132656
+n12301445
+n13133613
+n13141415
+n13137409
+n12642090
+n12267677
+n12658481
+n12144313
+n12158031
+n13135832
+n12620546
+n11636835
+n13139055
+n12144580
+n07929351
+n13136556
+n12768682
+n11689483
+n13136316
+n07770571
+n07737081
+n07774842
+n07774596
+n07775050
+n07772788
+n07771212
+n07772147
+n07772274
+n07774719
+n07737745
+n07772935
+n15086247
+n11879895
+n12576323
+n12532564
+n07814634
+n07775197
+n07770763
+n11748002
+n12172364
+n12515925
+n12560282
+n12578916
+n12560621
+n12544539
+n12024690
+n13154494
+n11690455
+n12927013
+n11953610
+n13128365
+n13133932
+n13163991
+n13134059
+n13131618
+n13130726
+n11678010
+n12136392
+n11979964
+n12088223
+n12462805
+n12433081
+n09218494
+n09381242
+n09460046
+n09451237
+n09450163
+n01904182
+n13155095
+n09432283
+n11705387
+n09438844
+n11692265
+n05237755
+n09416890
+n01956764
+n01904806
+n01904886
+n05586759
+n05581932
+n01904029
+n05238282
+n05254795
+n02469248
+n05256862
+n05258051
+n01899894
+n05261404
+n05259914
+n05261310
+n05260240
+n05262185
+n05261566
+n05262534
+n05262422
+n05263183
+n05263448
+n11524662
+n11448153
+n09247410
+n11508382
+n11524451
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.names"
new file mode 100644
index 00000000..e81c80e7
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.names"
@@ -0,0 +1,9418 @@
+thing
+matter
+object
+atmospheric phenomenon
+body part
+body of water
+head
+hair
+structure
+vein
+mouth
+heel
+watercourse
+ocean
+gas
+solid
+substance
+food
+tear gas
+sky
+ice
+food
+cheese
+yogurt
+produce
+baked goods
+cake mix
+Emmenthal
+Camembert
+Brie
+mozzarella
+Stilton
+double cream
+edible fruit
+vegetable
+currant
+custard apple
+citrus
+jackfruit
+pomegranate
+avocado
+prickly pear
+apple
+carambola
+fig
+mangosteen
+tangelo
+plum
+papaya
+apricot
+berry
+elderberry
+loquat
+pear
+litchi
+peach
+muscat
+grape
+banana
+pitahaya
+rambutan
+kiwi
+melon
+breadfruit
+pineapple
+mango
+date
+papaw
+durian
+passion fruit
+jujube
+guava
+dried fruit
+cherry
+quince
+nectarine
+cherimoya
+soursop
+lime
+mandarin
+kumquat
+orange
+lemon
+citron
+grapefruit
+pomelo
+clementine
+tangerine
+satsuma
+sweet orange
+bitter orange
+navel orange
+Valencia orange
+crab apple
+eating apple
+Granny Smith
+Delicious
+McIntosh
+Red Delicious
+Golden Delicious
+strawberry
+mulberry
+currant
+lingonberry
+blackberry
+red currant
+raspberry
+cranberry
+acerola
+persimmon
+blueberry
+bilberry
+muskmelon
+watermelon
+cantaloup
+sour cherry
+sweet cherry
+bing cherry
+mushroom
+asparagus
+plantain
+pumpkin
+cucumber
+root vegetable
+cruciferous vegetable
+raw vegetable
+solanaceous vegetable
+artichoke
+legume
+leek
+squash
+greens
+celery
+cardoon
+gumbo
+pieplant
+onion
+fennel
+taro
+beet
+yam
+carrot
+potato
+baked potato
+mashed potato
+french fries
+mustard
+cabbage
+kohlrabi
+cauliflower
+brussels sprouts
+broccoli rabe
+broccoli
+radish
+turnip
+collards
+bok choy
+savoy cabbage
+head cabbage
+kale
+pepper
+tomato
+eggplant
+tomatillo
+sweet pepper
+hot pepper
+bell pepper
+pimento
+green pepper
+chili
+tabasco
+cayenne
+jalapeno
+cherry tomato
+beefsteak tomato
+bean
+pea
+chickpea
+lentil
+soy
+common bean
+black bean
+kidney bean
+fresh bean
+green bean
+shell bean
+snap bean
+haricot vert
+string bean
+fava bean
+green soybean
+green pea
+snow pea
+sugar snap pea
+summer squash
+winter squash
+spaghetti squash
+zucchini
+yellow squash
+butternut squash
+acorn squash
+chard
+turnip greens
+salad green
+bean sprout
+spinach
+lamb's-quarter
+cress
+chicory
+chicory escarole
+radicchio
+lettuce
+leaf lettuce
+crisphead lettuce
+cos
+green onion
+shallot
+purple onion
+doughnut
+bread
+crouton
+breadstick
+soft pretzel
+rye bread
+dark bread
+raisin bread
+brown bread
+cinnamon bread
+quick bread
+matzo
+sour bread
+bun
+white bread
+challah
+loaf of bread
+pretzel
+English muffin
+toast
+nan
+chapatti
+garlic bread
+Yorkshire pudding
+banana bread
+scone
+Irish soda bread
+biscuit
+muffin
+drop scone
+cornbread
+nut bread
+buttermilk biscuit
+hardtack
+shortcake
+corn muffin
+popover
+bran muffin
+cornpone
+hush puppy
+johnnycake
+hamburger bun
+bagel
+frankfurter bun
+sweet roll
+hard roll
+brioche
+crescent roll
+honey bun
+cinnamon roll
+cross bun
+Italian bread
+baguet
+French bread
+meat loaf
+French loaf
+material
+stucco
+gravel
+rock
+leopard
+soil
+sand
+loofa
+paper
+litter
+toilet tissue
+queen
+comestible
+foodstuff
+fare
+beverage
+soul food
+feed
+nutriment
+yolk
+comfort food
+egg
+grain
+carrot juice
+soya milk
+whole wheat flour
+oatmeal
+ingredient
+dairy product
+cocoa
+concoction
+Spam
+juice
+canned food
+corn
+rice
+wild rice
+barley
+wheat
+sweet corn
+popcorn
+white rice
+paddy
+flavorer
+egg yolk
+saffron
+juniper berries
+cayenne
+sesame seed
+sassafras
+spice
+condiment
+sweetening
+herb
+paprika
+garlic
+nasturtium
+mocha
+cardamom
+nutmeg
+stick cinnamon
+Chinese anise
+clove
+cinnamon
+guacamole
+chili sauce
+olive
+chutney
+vinegar
+dip
+soy sauce
+salsa
+cranberry sauce
+catsup
+spread
+green olive
+sauce
+wine vinegar
+cider vinegar
+hummus
+miso
+spaghetti sauce
+chocolate sauce
+Tabasco
+hot sauce
+veloute
+pesto
+dressing
+bourguignon
+hollandaise
+carbonara
+tomato sauce
+green mayonnaise
+mayonnaise
+powdered sugar
+honey
+syrup
+sorghum
+grenadine
+maple syrup
+basil
+lemon balm
+sweet woodruff
+clary sage
+hyssop
+comfrey
+coriander
+mint
+chives
+marjoram
+borage
+sage
+tea
+rosemary
+parsley
+bay leaf
+thyme
+tea bag
+oolong
+souchong
+cream
+milk
+whipping cream
+clotted cream
+light cream
+heavy cream
+stuffing
+batter
+dough
+filling
+pastry
+bread dough
+puff paste
+phyllo
+chow
+menu
+dietary
+diet
+diet
+dietary supplement
+vegetarianism
+vitamin pill
+multivitamin
+alcohol
+fruit juice
+fizz
+near beer
+cocoa
+coffee
+cider
+tea
+soft drink
+fruit drink
+ginger beer
+drinking water
+potion
+smoothie
+mixed drink
+liquor
+sake
+wine
+hooch
+home brew
+liqueur
+hard cider
+brew
+neutral spirits
+aperitif
+highball
+cocktail
+spritzer
+punch
+pina colada
+mimosa
+julep
+gin and tonic
+Bloody Mary
+martini
+gimlet
+gin and it
+daiquiri
+sidecar
+Sazerac
+margarita
+cup
+May wine
+eggnog
+fruit punch
+vodka
+firewater
+aquavit
+grog
+schnapps
+arrack
+gin
+rum
+aqua vitae
+tequila
+bitters
+geneva
+brandy
+ouzo
+whiskey
+eau de vie
+Cognac
+grappa
+Armagnac
+Calvados
+Irish
+bourbon
+sour mash
+Scotch
+rye
+corn whiskey
+blended whiskey
+blush wine
+vintage
+champagne
+vin ordinaire
+dessert wine
+macon
+sparkling wine
+Cotes de Provence
+varietal
+Burgundy
+fortified wine
+Bordeaux
+table wine
+California wine
+vermouth
+red wine
+Rhone wine
+white wine
+Montrachet
+Beaujolais
+Chablis
+Madeira
+sherry
+malmsey
+port
+muscat
+Saint Emilion
+claret
+dry vermouth
+sweet vermouth
+Medoc
+Chianti
+Pinot noir
+Rioja
+Merlot
+Cabernet
+zinfandel
+Riesling
+Sauvignon blanc
+Muscadet
+Yquem
+Pinot blanc
+Sauterne
+Chenin blanc
+Chardonnay
+sack
+Verdicchio
+Canary wine
+Pernod
+Drambuie
+sambuca
+triple sec
+absinth
+maraschino
+anisette
+beer
+lager
+draft beer
+ale
+suds
+Munich beer
+Pilsner
+light beer
+malt
+bock
+Weissbier
+porter
+stout
+bitter
+pale ale
+Guinness
+Weizenbock
+orange juice
+cranberry juice
+nectar
+iced coffee
+caffe latte
+espresso
+cappuccino
+Irish coffee
+chicory
+cafe au lait
+mocha
+Turkish coffee
+ice tea
+cuppa
+tonic
+cola
+orange soda
+ginger ale
+pop
+root beer
+Coca Cola
+Pepsi
+mineral water
+bottled water
+soda water
+oil cake
+bird feed
+fodder
+eatage
+hay
+alfalfa
+broad bean
+dainty
+fast food
+puree
+finger food
+dish
+course
+mother's milk
+vitamin
+kosher
+meal
+jello
+gelatin
+sweet
+candied apple
+confiture
+candy
+chewing gum
+confectionery
+maraschino
+conserve
+strawberry jam
+apple butter
+lemon curd
+jam
+jelly
+peppermint
+peanut brittle
+chocolate kiss
+nougat bar
+candy bar
+jelly bean
+lollipop
+candy cane
+truffle
+chocolate fudge
+cough drop
+sugar candy
+Easter egg
+kiss
+gumdrop
+candy corn
+fondant
+cotton candy
+caramel
+fudge
+candy egg
+chocolate egg
+bubble gum
+gum ball
+poached egg
+piece de resistance
+side dish
+stew
+omelet
+soup
+sashimi
+taco
+French toast
+cheese souffle
+potpie
+lamb curry
+stuffed tomato
+chow mein
+croquette
+gefilte fish
+coq au vin
+special
+spaghetti and meatballs
+eggs Benedict
+schnitzel
+buffalo wing
+chicken casserole
+rissole
+paella
+frittata
+meatball
+chili
+porridge
+tamale
+stuffed tomato
+couscous
+deviled egg
+beef Wellington
+pasta
+egg roll
+enchilada
+falafel
+mushy peas
+turnover
+scrambled eggs
+Spanish rice
+teriyaki
+barbecued spareribs
+pilaf
+kabob
+tempura
+samosa
+fried egg
+sandwich plate
+chicken cacciatore
+saute
+fried rice
+custard
+sukiyaki
+fish and chips
+souffle
+steak au poivre
+pizza
+fondue
+biryani
+stuffed peppers
+mousse
+shirred egg
+Swedish meatball
+jambalaya
+Scotch egg
+burrito
+risotto
+salad
+boiled egg
+curry
+snack food
+bouillabaisse
+goulash
+pottage
+beef stew
+hot pot
+fish stew
+hotchpotch
+Irish stew
+ratatouille
+gazpacho
+won ton
+petite marmite
+split-pea soup
+consomme
+chowder
+potage
+marmite
+lentil soup
+bisque
+pea soup
+pepper pot
+chicken broth
+chicken soup
+broth
+broth
+gumbo
+borsch
+corn chowder
+clam chowder
+fish chowder
+gruel
+congee
+macaroni and cheese
+lasagna
+cannelloni
+spaghetti
+creme caramel
+creme brulee
+pepperoni pizza
+anchovy pizza
+cheese pizza
+Sicilian pizza
+sausage pizza
+chocolate fondue
+cheese fondue
+coleslaw
+macaroni salad
+tossed salad
+salad nicoise
+pasta salad
+fruit salad
+tabbouleh
+green salad
+chef's salad
+hard-boiled egg
+Easter egg
+sandwich
+corn chip
+chip
+bomber
+cheeseburger
+chicken sandwich
+ham sandwich
+Reuben
+bacon-lettuce-tomato sandwich
+chili dog
+open-face sandwich
+gyro
+wrap
+hamburger
+club sandwich
+hotdog
+tortilla chip
+nacho
+entree
+plate
+dessert
+appetizer
+mousse
+tiramisu
+frozen dessert
+pudding
+pudding
+trifle
+flan
+whip
+dumpling
+compote
+chocolate mousse
+pavlova
+parfait
+ice-cream cake
+ice lolly
+ice-cream sundae
+ice-cream cone
+ice cream
+ice
+banana split
+frozen yogurt
+frozen custard
+vanilla ice cream
+peach ice cream
+chocolate ice cream
+strawberry ice cream
+plum pudding
+chocolate pudding
+shrimp cocktail
+stuffed mushroom
+cocktail
+hors d'oeuvre
+carrot stick
+antipasto
+water-soluble vitamin
+fat-soluble vitamin
+vitamin P
+vitamin C
+B-complex vitamin
+vitamin B2
+inositol
+vitamin B6
+choline
+pantothenic acid
+vitamin B12
+vitamin Bc
+vitamin D
+vitamin A1
+picnic
+bite
+supper
+breakfast
+refection
+smorgasbord
+buffet
+brunch
+continental breakfast
+dinner
+lunch
+banquet
+cookout
+fish fry
+barbecue
+refreshment
+nosh
+land
+location
+land
+fomite
+part
+geological formation
+cobweb
+whole
+hail
+swamp
+cultivated land
+region
+region
+pass
+line
+point
+opening
+bedside
+soil horizon
+extremity
+boundary
+nib
+selvage
+shoreline
+benthos
+resort area
+geographical area
+district
+scrubland
+bush
+oilfield
+field
+tract
+heronry
+grassland
+site
+court
+basketball court
+fairground
+plot
+field
+amusement park
+veld
+pasture
+campsite
+garbage heap
+cemetery
+flowerbed
+garden
+topiary
+peach orchard
+yard
+grainfield
+playground
+garden
+city
+city district
+eparchy
+kasbah
+waterfront
+business district
+col
+defile
+hemline
+spoor
+crest
+topographic point
+workplace
+half-mast
+intersection
+bus stop
+mecca
+hole-in-the-wall
+patisserie
+bakery
+farm
+piggery
+ranch
+dairy
+knothole
+chasm
+oxbow
+floor
+pinetum
+plain
+steppe
+cigarette butt
+pipefitting
+handle
+panhandle
+stock
+haft
+ax handle
+broomstick
+pistol grip
+arete
+volcanic crater
+spring
+ice mass
+natural depression
+natural elevation
+oceanfront
+massif
+cliff
+shore
+talus
+ridge
+range
+lakefront
+slope
+cave
+foreshore
+beach
+hot spring
+geyser
+icecap
+iceberg
+Alpine glacier
+glacier
+valley
+lunar crater
+landfill
+sinkhole
+basin
+crater
+bed
+hole
+arroyo
+ravine
+canyon
+gorge
+tidal basin
+cirque
+ocean floor
+riverbed
+streambed
+burrow
+pothole
+tableland
+hill
+mountain
+highland
+ridge
+promontory
+anthill
+butte
+foothill
+knoll
+alp
+ben
+volcano
+sandbar
+dune
+reef
+bank
+coral reef
+atoll
+sandbank
+bluff
+point
+mull
+crag
+precipice
+seashore
+strand
+lakeside
+littoral
+seaside
+mountainside
+descent
+hillside
+ski slope
+escarpment
+bank
+downhill
+ascent
+brae
+uphill
+riverbank
+waterside
+cove
+cavern
+grotto
+artifact
+living thing
+natural object
+assembly
+block
+millstone
+paving
+creation
+opening
+plaything
+surface
+tramline
+structure
+instrumentality
+padding
+covering
+fabric
+bookmark
+float
+building material
+decoration
+way
+strip
+article
+facility
+excavation
+commodity
+sheet
+fixture
+blacktop
+line
+bullion
+tessera
+tile
+anvil
+representation
+art
+needlework
+product
+pieta
+map
+sketch
+sonogram
+photograph
+waxwork
+arthrogram
+radiogram
+photomicrograph
+photostat
+painting
+triptych
+nude
+finger-painting
+smocking
+stitch
+sewing stitch
+knitting stitch
+lockstitch
+hemstitch
+garter stitch
+purl
+book
+work
+jotter
+newspaper
+wicker
+masterpiece
+openwork
+woodwork
+lacquerware
+cabinetwork
+joinery
+decolletage
+gargoyle
+aperture
+hole
+mouthpiece
+outfall
+plughole
+manhole
+keyhole
+perforation
+thumbhole
+pogo stick
+ball
+pinata
+teddy
+jungle gym
+bubble
+hula-hoop
+pinwheel
+slide
+sport kite
+cockhorse
+doll
+foam
+air bubble
+spume
+shaving foam
+golliwog
+kachina
+horizontal surface
+board
+tabletop
+side
+platform
+tarmacadam
+floor
+turntable
+stage
+dais
+sumo ring
+hurricane deck
+flatbed
+parquet
+backgammon board
+pegboard
+facade
+ceiling
+body
+floor
+bridge
+corner
+conformation
+superstructure
+airdock
+cross
+house of cards
+hull
+gun enclosure
+lookout
+building complex
+shelter
+honeycomb
+column
+altar
+arch
+tower
+transept
+mound
+fountain
+obelisk
+fan vaulting
+arcade
+loggia
+coil
+billboard
+partition
+masonry
+skein
+colonnade
+obstruction
+building
+sail
+projection
+peristyle
+door
+stadium
+drinking fountain
+area
+balcony
+porch
+dock
+high altar
+housing
+supporting structure
+balance
+defensive structure
+entablature
+memorial
+establishment
+signboard
+bodywork
+fuselage
+ground floor
+mezzanine
+loft
+basement
+footbridge
+drawbridge
+cantilever bridge
+rope bridge
+overpass
+truss bridge
+viaduct
+steel arch bridge
+covered bridge
+gangplank
+suspension bridge
+trestle bridge
+plant
+college
+winery
+factory
+distillery
+oil refinery
+refinery
+rolling mill
+foundry
+steel mill
+lumbermill
+stamp mill
+quartz battery
+battery
+harbor
+Nissen hut
+hovel
+tent
+hut
+igloo
+dugout
+mountain tent
+pup tent
+pavilion
+backpacking tent
+fly tent
+canvas tent
+field tent
+wall tent
+circus tent
+Gothic arch
+round arch
+pointed arch
+triumphal arch
+broken arch
+Moorish arch
+Roman arch
+campanile
+turret
+clock tower
+shot tower
+church tower
+minaret
+pylon
+silo
+watchtower
+trestle
+pylon
+steeple
+fire tower
+high-rise
+supporting tower
+control tower
+bell tower
+beacon
+burial mound
+snowbank
+rampart
+fraise
+battlement
+altarpiece
+wall
+gable
+wainscoting
+attic
+pediment
+bell gable
+brickwork
+stonework
+barrier
+obstacle
+plug
+lever
+grate
+safety rail
+movable barrier
+bannister
+breakwater
+grille
+weir
+railing
+hurdle
+starting gate
+fence
+dam
+gate
+door
+lychgate
+portcullis
+turnstile
+French window
+car door
+screen door
+French door
+double door
+interior door
+sliding door
+revolving door
+barn door
+hatchback
+storm door
+wall
+retaining wall
+rail fence
+chainlink fence
+dry wall
+hedge
+worm fence
+picket fence
+stone wall
+water jump
+bunker
+earplug
+cork
+tap
+presbytery
+hotel
+tenement
+abattoir
+apartment building
+aviary
+hall
+house
+Roman building
+rest house
+outbuilding
+funeral home
+medical building
+hotel-casino
+library
+casino
+farm building
+place of worship
+restaurant
+ministry
+rotunda
+observatory
+office building
+temple
+signal box
+government building
+greenhouse
+rink
+planetarium
+public house
+bowling alley
+house
+ruin
+architecture
+skyscraper
+gazebo
+school
+chapterhouse
+theater
+hall of residence
+conservatory
+center
+resort hotel
+resort
+motel
+dude ranch
+Ritz
+ski lodge
+hostel
+motor hotel
+city hall
+guildhall
+lyceum
+field house
+oast house
+courthouse
+shed
+garage
+carport
+outhouse
+coach house
+boathouse
+woodshed
+apiary
+maternity hospital
+dispensary
+stable
+chicken coop
+cowbarn
+barn
+pantheon
+church
+temple
+shrine
+stupa
+masjid
+synagogue
+mosque
+chapel
+kirk
+abbey
+cathedral
+cathedral
+minster
+cafe
+rotisserie
+automat
+brasserie
+cafeteria
+diner
+capitol
+embassy
+town hall
+chancellery
+customhouse
+Statehouse
+courthouse
+ice rink
+ice hockey rink
+alehouse
+free house
+solar house
+bungalow
+row house
+cabin
+duplex house
+mansion
+lodging house
+gatehouse
+log cabin
+saltbox
+country house
+dollhouse
+ranch house
+boarding house
+detached house
+villa
+chalet
+residence
+farmhouse
+terraced house
+brownstone
+palace
+stately home
+manor
+summer house
+dacha
+villa
+chateau
+manse
+religious residence
+glebe house
+parsonage
+palace
+monastery
+abbey
+abbey
+day school
+conservatory
+music school
+opera
+music hall
+cinema
+little theater
+home theater
+control center
+settlement house
+call center
+cornice
+cog
+knob
+bill
+flange
+brim
+tine
+eaves
+tooth
+pinhead
+football stadium
+hippodrome
+dome
+ballpark
+bullring
+amphitheater
+patio
+corner
+baggage claim
+hideaway
+choir
+breakfast area
+quad
+chancel
+auditorium
+court
+dining area
+room
+assembly hall
+enclosure
+nave
+aisle
+storage space
+goalmouth
+food court
+atrium
+cloister
+forecourt
+toilet
+sun parlor
+engineering
+surgery
+rotunda
+classroom
+gallery
+manor hall
+cell
+lounge
+sauna
+dressing room
+billiard room
+belfry
+kitchen
+library
+storeroom
+workroom
+sewing room
+anechoic chamber
+dining room
+recreation room
+hospital room
+reading room
+booth
+conference room
+bedroom
+clean room
+living room
+door
+hall
+reception room
+boardroom
+study
+locker room
+cocktail lounge
+television room
+compartment
+court
+poolroom
+bathroom
+control room
+anteroom
+water closet
+men's room
+washroom
+public toilet
+home room
+lecture room
+study hall
+pantry
+stockroom
+vault
+refectory
+dining-hall
+canteen
+family room
+rumpus room
+emergency room
+recovery room
+operating room
+telephone booth
+voting booth
+confessional
+shower stall
+master bedroom
+motel room
+guestroom
+hotel room
+dormitory
+nursery
+day nursery
+great hall
+concert hall
+palace
+exhibition hall
+parlor
+drawing room
+press box
+command module
+cabin
+pilothouse
+cab
+luggage compartment
+cabinet
+cockpit
+stateroom
+car
+cable car
+stall
+drawing room
+terrarium
+cage
+playpen
+pen
+vivarium
+pound
+lock
+chicken yard
+chamber
+recess
+birdcage
+rabbit hutch
+hutch
+cow pen
+rodeo
+fold
+sounding board
+burial chamber
+firing chamber
+resonator
+furnace
+bomb shelter
+hyperbaric chamber
+repository
+mausoleum
+kiln
+blast furnace
+oast
+gas oven
+incinerator
+mihrab
+columbarium
+fire
+fireplace
+apse
+cellar
+cupboard
+stacks
+gallery
+amphitheater
+organ loft
+stoop
+sun deck
+front porch
+veranda
+deck
+back porch
+portico
+marina
+dry dock
+block
+dwelling
+tennis camp
+living quarters
+mobile home
+condominium
+apartment
+ward
+cellblock
+condominium
+yurt
+lodge
+vacation home
+hearth
+fixer-upper
+cliff dwelling
+homestead
+semi-detached house
+wigwam
+tepee
+accommodation
+first class
+cabin class
+bedsitting room
+flatlet
+chassis
+support
+framework
+pedestal
+buttress
+flying buttress
+abutment
+ribbing
+bustle
+window frame
+frame
+gantry
+honeycomb
+truss
+lattice
+cornice
+picture frame
+window
+climbing frame
+trellis
+airframe
+grate
+grape arbor
+walker
+casing
+tambour
+arbor
+rack
+mounting
+sash
+casement
+oriel
+bay window
+stained-glass window
+skylight
+display window
+rose window
+porthole
+transom
+clerestory
+dormer
+dormer window
+lancet window
+fanlight
+plate rack
+barbecue
+bicycle rack
+luggage rack
+dish rack
+towel rack
+passe-partout
+pave
+mount
+stronghold
+fortress
+fortification
+bastion
+keep
+kremlin
+acropolis
+alcazar
+martello tower
+fieldwork
+bastion
+escarpment
+palisade
+castle
+cenotaph
+megalith
+Seven Wonders of the Ancient World
+brass
+national monument
+pantheon
+dolmen
+menhir
+place of business
+institution
+university
+mercantile establishment
+office
+cabaret
+health spa
+plaza
+country store
+department store
+shop
+marketplace
+boutique
+salon
+shoe shop
+bookshop
+package store
+thriftshop
+junk shop
+toyshop
+cleaners
+bazaar
+gift shop
+florist
+drugstore
+garage
+delicatessen
+small stores
+barbershop
+stall
+tobacco shop
+newsstand
+butcher shop
+pizzeria
+confectionery
+convenience store
+bazaar
+agora
+grocery store
+open-air market
+supermarket
+hypermarket
+greengrocery
+souk
+farmer's market
+flea market
+newsroom
+box office
+headquarters
+correctional institution
+orphanage
+jail
+penitentiary
+prison
+toiletry
+weaponry
+equipment
+connection
+implement
+furnishing
+device
+ceramic
+system
+container
+conveyance
+medium
+deodorant
+bath oil
+cream
+lotion
+shaving cream
+hair spray
+mousse
+perfume
+hairdressing
+antiperspirant
+powder
+cosmetic
+bath salts
+hand cream
+cold cream
+sunscreen
+lanolin
+body lotion
+toner
+hand lotion
+after-shave
+potpourri
+patchouli
+perfumery
+cologne
+toilet water
+pomade
+brilliantine
+toilet powder
+talcum
+depilatory
+highlighter
+makeup
+face powder
+lip-gloss
+eyeshadow
+mascara
+lipstick
+rouge
+eyeliner
+eyebrow pencil
+armament
+defense system
+bomb
+ammunition
+naval weaponry
+bazooka
+artillery
+launcher
+cannon
+field artillery
+mortar
+basilisk
+hydrogen bomb
+atom bomb
+round
+shotgun shell
+recorder
+sports equipment
+photographic equipment
+naval equipment
+parasail
+gear
+satellite
+game equipment
+parachute
+electronic equipment
+apparatus
+automation
+material
+baggage
+tape recorder
+cassette recorder
+Dictaphone
+videocassette recorder
+baseball equipment
+croquet mallet
+clay pigeon
+skate
+wrestling mat
+cricket equipment
+basketball equipment
+javelin
+shuttlecock
+golf equipment
+spike
+stick
+boxing equipment
+boxing glove
+gymnastic apparatus
+weight
+baseball glove
+batting cage
+batting glove
+base
+batting helmet
+baseball bat
+home plate
+first base
+third base
+second base
+in-line skate
+Rollerblade
+roller skate
+ice skate
+hockey skate
+speed skate
+figure skate
+cricket bat
+wicket
+golfcart
+golf glove
+tee
+golf club
+wood
+iron
+driver
+spoon
+wedge
+midiron
+putter
+niblick
+pitching wedge
+sand wedge
+hockey stick
+polo mallet
+horizontal bar
+horse
+uneven parallel bars
+parallel bars
+trampoline
+balance beam
+vaulting horse
+pommel horse
+dumbbell
+barbell
+enlarger
+camera
+clapperboard
+film
+light meter
+box camera
+flash camera
+Polaroid camera
+point-and-shoot camera
+webcam
+motion-picture camera
+digital camera
+portrait camera
+reflex camera
+X-ray film
+reel
+negative
+regalia
+kit
+rig
+fishing gear
+stable gear
+rigging
+crown
+crown jewels
+sewing kit
+first-aid kit
+carpenter's kit
+layette
+drill rig
+drilling platform
+harness
+snaffle
+headgear
+saddle blanket
+halter
+bridle
+sputnik
+space station
+backboard
+ball
+puzzle
+pool table
+bowling pin
+man
+chip
+roulette wheel
+goal
+volleyball net
+pinball machine
+soccer ball
+pool ball
+bowling ball
+softball
+field hockey ball
+punching bag
+billiard ball
+croquet ball
+cricket ball
+tennis ball
+golf ball
+rugby ball
+cue ball
+medicine ball
+basketball
+eight ball
+ping-pong ball
+handball
+baseball
+racquetball
+bocce ball
+volleyball
+jigsaw puzzle
+crossword puzzle
+chessman
+white
+pawn
+basket
+net
+electronic fetal monitor
+monitor
+monitor
+television monitor
+telephone
+oscilloscope
+peripheral
+booster
+cassette player
+CD player
+receiver
+audio system
+lens
+playback
+television equipment
+circuitry
+cassette deck
+central processing unit
+mixer
+scanner
+tape player
+detector
+modem
+equalizer
+tape deck
+amplifier
+cellular telephone
+speakerphone
+desk phone
+pay-phone
+handset
+dial telephone
+radiotelephone
+television receiver
+radio receiver
+satellite receiver
+heterodyne receiver
+clock radio
+reproducer
+hi-fi
+stereo
+iPod
+Walkman
+video iPod
+ghetto blaster
+camcorder
+television camera
+pendulum
+purifier
+sequencer
+reformer
+duplicator
+heat pump
+semaphore
+tomograph
+ultracentrifuge
+generator
+incubator
+burner
+Foucault pendulum
+clock pendulum
+metronome
+Photostat
+photocopier
+Xerox
+facsimile
+mimeograph
+positron emission tomography scanner
+computerized axial tomography scanner
+gas burner
+blowtorch
+bunsen burner
+gas ring
+packaging
+blister pack
+roofing
+temporary hookup
+slip ring
+telephone line
+ligament
+junction
+hot line
+digital subscriber line
+land line
+binder
+wire
+chain
+concertina
+barbed wire
+paper chain
+anchor chain
+fob
+bicycle chain
+tire chain
+chatelaine
+joint
+contact
+dovetail
+welt
+hinge
+scarf joint
+weld
+seam
+mortise joint
+butt hinge
+strap hinge
+distributor point
+tread
+wiper
+bar
+tool
+utensil
+rubber eraser
+needle
+eraser
+stick
+brush
+hook
+sharpener
+sports implement
+leather strip
+swatter
+fire iron
+oar
+stick
+cleaning implement
+rod
+writing implement
+shovel
+split rail
+fret
+bolt
+rotor
+towel rail
+lever
+track
+handlebar
+crowbar
+stick
+key
+tappet
+pedal
+rocker arm
+gun trigger
+space bar
+backspace key
+shift key
+telegraph key
+accelerator
+sustaining pedal
+hand tool
+jack
+pestle
+garden tool
+plow
+comb
+drill
+cutting implement
+tamp
+garden rake
+rake
+stamp
+locking pliers
+pestle
+plunger
+pincer
+pliers
+soldering iron
+spade
+hammer
+pipe cutter
+wrench
+screwdriver
+trowel
+saw
+opener
+scraper
+shovel
+brick trowel
+spatula
+carpenter's hammer
+gavel
+mallet
+maul
+torque wrench
+pipe wrench
+adjustable wrench
+open-end wrench
+Allen wrench
+box wrench
+hacksaw
+folding saw
+handsaw
+pruner
+pruning saw
+corkscrew
+bottle opener
+can opener
+hedge trimmer
+lawn mower
+power mower
+riding mower
+power drill
+electric drill
+cutter
+twist bit
+bit
+blade
+knife blade
+bolt cutter
+cigar cutter
+edge tool
+scissors
+knife
+ax
+razor
+wire cutter
+chisel
+plane
+shears
+snips
+pruning shears
+secateurs
+carving knife
+Bowie knife
+pocketknife
+cleaver
+hunting knife
+case knife
+parer
+letter opener
+switchblade
+penknife
+battle-ax
+hatchet
+shaver
+straight razor
+safety razor
+cold chisel
+wood chisel
+jointer
+smooth plane
+spokeshave
+kitchen utensil
+ceramic ware
+funnel
+rolling pin
+reamer
+masher
+kitchenware
+squeezer
+mixer
+cookie cutter
+cooking utensil
+grater
+mincer
+eggbeater
+whisk
+blender
+pan
+Crock Pot
+chafing dish
+spatula
+griddle
+enamelware
+steamer
+cookie sheet
+cooker
+turner
+omelet pan
+stewing pan
+frying pan
+roaster
+wok
+saucepan
+graniteware
+cloisonne
+porcelain
+earthenware
+stoneware
+pottery
+Spode
+china
+bone china
+majolica
+faience
+knitting needle
+crochet needle
+walking stick
+matchstick
+club
+fiddlestick
+spindle
+stob
+staff
+drumstick
+mallet
+cane
+sword cane
+bat
+table-tennis racquet
+truncheon
+alpenstock
+flagpole
+crutch
+electric toothbrush
+toothbrush
+sable
+scrub brush
+hairbrush
+bristle brush
+shaving brush
+pencil sharpener
+steel
+cue
+racket
+squash racket
+tennis racket
+badminton racket
+thong
+strap
+cheekpiece
+rein
+noseband
+leading rein
+scull
+paddle
+besom
+scouring pad
+dustmop
+squeegee
+broom
+swab
+rotating shaft
+wand
+shaft
+piston rod
+kickstand
+axle
+pole
+fishing rod
+connecting rod
+tie rod
+driveshaft
+crankshaft
+transmission shaft
+spindle
+camshaft
+boom
+stilt
+ski pole
+clothes tree
+caber
+spar
+mast
+mast
+bowsprit
+yard
+mizzenmast
+royal mast
+mainmast
+foremast
+fly rod
+spinning rod
+pencil
+pen
+highlighter
+chalk
+crayon
+lead pencil
+ballpoint
+Sharpie
+quill
+fountain pen
+felt-tip pen
+furniture
+office furniture
+dining-room furniture
+wardrobe
+bedroom furniture
+table
+table
+wall unit
+lamp
+dining-room table
+washstand
+buffet
+cabinet
+baby bed
+bedstead
+lawn furniture
+credenza
+bookcase
+entertainment center
+etagere
+seat
+sectional
+chest of drawers
+file
+Rolodex
+card index
+vertical file
+clothes closet
+armoire
+bed
+berth
+platform bed
+hospital bed
+bunk
+trundle bed
+four-poster
+couch
+bunk bed
+twin bed
+sleigh bed
+single bed
+hammock
+Murphy bed
+double bed
+gaming table
+gueridon
+table-tennis table
+counter
+altar
+breakfast table
+stand
+conference table
+pedestal table
+kitchen table
+operating table
+tea table
+lectern
+worktable
+gateleg table
+dressing table
+desk
+drop-leaf table
+coffee table
+trestle table
+console table
+checkout
+bar
+meat counter
+reception desk
+salad bar
+snack bar
+drafting table
+lab bench
+writing desk
+secretary
+davenport
+dining table
+dinner table
+refectory table
+floor lamp
+table lamp
+reading lamp
+dresser
+china cabinet
+medicine chest
+bassinet
+crib
+carrycot
+cradle
+chair
+toilet seat
+stool
+sofa
+ottoman
+bench
+lawn chair
+chaise longue
+rocking chair
+swivel chair
+throne
+straight chair
+ladder-back
+highchair
+armchair
+Windsor chair
+folding chair
+wheelchair
+motorized wheelchair
+barber chair
+easy chair
+recliner
+Morris chair
+wing chair
+deck chair
+camp chair
+music stool
+taboret
+footstool
+settee
+daybed
+convertible
+love seat
+chesterfield
+studio couch
+park bench
+flat bench
+pew
+settle
+window seat
+chiffonier
+highboy
+bird feeder
+heater
+lighter
+signal
+converter
+crusher
+drive
+knocker
+peeler
+musical instrument
+shoehorn
+shock absorber
+machine
+conductor
+bait
+stabilizer
+filter
+mechanism
+acoustic device
+trap
+charger
+airfoil
+router
+pick
+energizer
+fan
+hydrofoil
+dental appliance
+adapter
+toy
+support
+optical device
+straightener
+tongs
+phonograph needle
+instrument
+comb
+remote control
+exercise device
+comforter
+washboard
+shredder
+water ski
+blower
+ventilator
+breathing device
+applicator
+skeleton key
+guitar pick
+restraint
+keyboard
+electrical device
+appliance
+fire extinguisher
+corrective
+reflector
+alarm
+electronic device
+snowshoe
+holding device
+memory device
+key
+noisemaker
+source of illumination
+indicator
+detector
+breathalyzer
+imprint
+afterburner
+horn
+elastic device
+ski
+lifting device
+solar heater
+electric heater
+radiator
+gas heater
+convector
+space heater
+stove
+cigar lighter
+match
+cairn
+sign
+street sign
+traffic light
+electrical converter
+catalytic converter
+inverter
+synchronous converter
+external drive
+CD-ROM drive
+internal drive
+stringed instrument
+electronic instrument
+keyboard instrument
+wind instrument
+bass
+percussion instrument
+dulcimer
+chordophone
+banjo
+zither
+samisen
+guitar
+bowed stringed instrument
+sitar
+lute
+mandola
+mandolin
+harp
+acoustic guitar
+Hawaiian guitar
+uke
+electric guitar
+viol
+violin
+cello
+viola
+viola da gamba
+Stradavarius
+theremin
+electric organ
+synthesizer
+piano
+clavier
+organ
+accordion
+grand piano
+upright
+spinet
+mechanical piano
+baby grand
+concert grand
+harpsichord
+spinet
+ocarina
+woodwind
+brass
+organ pipe
+free-reed instrument
+whistle
+pipe
+kazoo
+flute
+beating-reed instrument
+double-reed instrument
+single-reed instrument
+bassoon
+oboe
+clarinet
+sax
+baritone
+bugle
+flugelhorn
+French horn
+trombone
+cornet
+harmonium
+harmonica
+concertina
+chanter
+panpipe
+bagpipe
+fipple flute
+pennywhistle
+drone
+bass fiddle
+bass horn
+bass guitar
+euphonium
+handbell
+bones
+gong
+vibraphone
+steel drum
+marimba
+glockenspiel
+chime
+kettle
+maraca
+drum
+cymbal
+bongo
+bass drum
+tambourine
+snare drum
+tenor drum
+slot machine
+power shovel
+press
+backhoe
+printer
+machine tool
+motor
+snow thrower
+cash machine
+farm machine
+computer
+Zamboni
+mill
+staple gun
+power tool
+concrete mixer
+stapler
+slicer
+textile machine
+record player
+calculator
+vending machine
+slot
+automat
+garlic press
+bench press
+hydraulic press
+punch press
+character printer
+impact printer
+printer
+drum printer
+line printer
+laser printer
+Linotype
+thermal printer
+portable
+typewriter
+bar printer
+wire matrix printer
+dot matrix printer
+bubble jet printer
+ink-jet printer
+shaper
+drill press
+grinder
+lathe
+miller
+engine
+electric motor
+heat engine
+jet engine
+automobile engine
+aircraft engine
+generator
+steam engine
+internal-combustion engine
+wind turbine
+gasoline engine
+diesel
+outboard motor
+radial engine
+rocket
+fanjet
+booster
+space rocket
+alternator
+windmill
+starter
+kick starter
+cultivator
+haymaker
+combine
+thresher
+harvester
+disk harrow
+harrow
+slide rule
+web site
+home computer
+server
+digital computer
+supercomputer
+workstation
+personal computer
+portable computer
+desktop computer
+notebook
+planner
+laptop
+hand-held computer
+pepper mill
+water mill
+meat grinder
+coffee mill
+treadmill
+windmill
+electric hammer
+power saw
+buffer
+circular saw
+chain saw
+table saw
+saber saw
+bandsaw
+spinning wheel
+loom
+jukebox
+gramophone
+abacus
+adding machine
+hand calculator
+semiconductor device
+wire
+cord
+heat sink
+cable
+microprocessor
+transistor
+light-emitting diode
+chip
+filament
+jumper cable
+telephone wire
+patchcord
+telephone cord
+power cord
+extension cord
+ethernet cable
+electrical cable
+printer cable
+power line
+fisherman's lure
+fly
+dry fly
+wet fly
+streamer fly
+outrigger
+vane
+strainer
+air filter
+oil filter
+sieve
+tea-strainer
+colander
+fusee drive
+android
+radiator
+mechanical device
+rotating mechanism
+rotor head
+carriage
+control
+power steering
+automaton
+action
+cooling system
+gear
+tape drive
+film advance
+sprinkler
+propeller
+anchor
+golf-club head
+weathervane
+machine
+seeder
+pump
+gearshift
+ride
+bumper
+hook
+ski binding
+coupling
+record changer
+swing
+windshield wiper
+winder
+winder
+diaphragm
+shutter
+escapement
+broadcaster
+curler
+splint
+compressor
+air compressor
+carburetor
+dildo
+cartridge holder
+trapeze
+gearing
+stator
+airplane propeller
+screw
+pulley
+wheel
+idle pulley
+lever
+inclined plane
+millwheel
+waterwheel
+roller
+bicycle wheel
+caster
+grinding wheel
+rowel
+fifth wheel
+wagon wheel
+waterwheel
+car wheel
+sprocket
+pinwheel
+potter's wheel
+gear
+driving wheel
+paddlewheel
+roulette
+spur gear
+bevel gear
+pinion
+ramp
+ax head
+screw
+grease-gun
+gas pump
+bicycle pump
+sump pump
+hand pump
+centrifugal pump
+Ferris wheel
+roller coaster
+carousel
+universal joint
+clutch
+freewheel
+disk clutch
+bobbin
+reel
+shuttle
+blade
+gyroscope
+circle
+rotor
+paddle
+impeller
+fan blade
+disk
+puck
+brake disk
+token
+Frisbee
+planchet
+tail rotor
+main rotor
+valve
+steering wheel
+governor
+joystick
+regulator
+switch
+ball valve
+butterfly valve
+timer
+flywheel
+faucet
+thermostat
+aperture
+mixing faucet
+stopcock
+toggle switch
+push button
+dial
+horn button
+mouse button
+doorbell
+bell push
+flintlock
+movement
+gunlock
+cooling tower
+evaporative cooler
+air conditioner
+gearset
+four-wheel drive
+whistle
+silencer
+megaphone
+hearing aid
+bell
+cowbell
+church bell
+dinner bell
+spider web
+mousetrap
+lobster pot
+web
+net
+landing net
+fishnet
+vertical stabilizer
+spoiler
+spoiler
+rotor blade
+flap
+rudder
+horizontal stabilizer
+wing
+exhaust fan
+electric fan
+brace
+denture
+backboard
+stirrup
+pier
+pier
+back
+shelf
+landing gear
+baluster
+spoke
+base
+step
+brace
+pillow block
+bearing
+rocker
+coat hanger
+harp
+rest
+bracket
+tailstock
+bookend
+structural member
+headstock
+seat
+thrust bearing
+hanger
+rack
+harness
+cantle
+ladder-back
+bookshelf
+mantel
+neck brace
+knee brace
+ankle brace
+back brace
+arm
+headrest
+chin rest
+armrest
+sconce
+corbel
+shelf bracket
+sill
+riser
+upright
+brace
+tread
+beam
+windowsill
+doorsill
+stile
+jamb
+column
+post
+support column
+caryatid
+goalpost
+newel post
+bollard
+lamppost
+telephone pole
+maypole
+timber
+rundle
+tie
+rafter
+girder
+timber
+floor joist
+joist
+car seat
+pillion
+plane seat
+saddle
+chair
+bicycle seat
+bucket seat
+backseat
+stock saddle
+English saddle
+tripod
+spice rack
+magazine rack
+music stand
+camera tripod
+easel
+autofocus
+projector
+finder
+laser
+lens
+objective
+condenser
+camera lens
+anastigmat
+contact
+sunglass
+eyepiece
+field lens
+Fresnel lens
+portrait lens
+closeup lens
+telephoto lens
+wide-angle lens
+plotter
+scientific instrument
+measuring instrument
+weapon
+guillotine
+drafting instrument
+analyzer
+navigational instrument
+optical instrument
+medical instrument
+instrument of punishment
+catapult
+extractor
+theodolite
+riding crop
+tachymeter
+collider
+microtome
+accelerator
+stroboscope
+magnifier
+console
+telescope
+microscope
+astronomical telescope
+equatorial
+optical telescope
+radio telescope
+refracting telescope
+field glass
+reflecting telescope
+Cassegrainian telescope
+Newtonian telescope
+Schmidt telescope
+Maksutov telescope
+electron microscope
+field-emission microscope
+light microscope
+binocular microscope
+hand glass
+operating microscope
+compound microscope
+loupe
+oximeter
+dropper
+refractometer
+rangefinder
+barometer
+pedometer
+thermometer
+astrolabe
+measuring stick
+gauge
+timepiece
+aneroid barometer
+caliper
+potentiometer
+tachometer
+scale
+tape
+meter
+hygrometer
+sextant
+rule
+altazimuth
+pyrometer
+meat thermometer
+water gauge
+vacuum gauge
+anemometer
+gasoline gauge
+pressure gauge
+manometer
+sphygmomanometer
+atomic clock
+clock
+watch
+sundial
+timer
+hourglass
+grandfather clock
+digital clock
+alarm clock
+wall clock
+analog clock
+pendulum clock
+cuckoo clock
+digital watch
+analog watch
+pocket watch
+wristwatch
+stopwatch
+parking meter
+chronograph
+vernier caliper
+micrometer
+balance
+analytical balance
+electronic balance
+electric meter
+odometer
+ammeter
+speedometer
+ohmmeter
+water meter
+voltmeter
+magnetometer
+tomahawk
+gun
+bow
+bow and arrow
+brass knucks
+knife
+sword
+stun gun
+projectile
+antiaircraft
+firearm
+set gun
+air gun
+gas gun
+paintball gun
+cannon
+autoloader
+pistol
+twenty-two
+Mauser
+muzzle loader
+rifle
+repeating firearm
+semiautomatic firearm
+automatic firearm
+Garand rifle
+Luger
+semiautomatic pistol
+automatic rifle
+assault rifle
+automatic pistol
+machine gun
+submachine gun
+burp gun
+Uzi
+Kalashnikov
+Tommy gun
+Colt
+derringer
+revolver
+gat
+flintlock
+musket
+sniper rifle
+Winchester
+carbine
+crossbow
+longbow
+khukuri
+bayonet
+machete
+dagger
+rapier
+fencing sword
+broadsword
+cavalry sword
+saber
+epee
+foil
+bullet
+cannonball
+compass
+protractor
+artificial horizon
+depth finder
+magnetic compass
+compass
+binoculars
+spectacles
+projector
+telescopic sight
+goggles
+sunglasses
+slide projector
+front projector
+movie projector
+overhead projector
+hypodermic syringe
+cardiograph
+syringe
+stethoscope
+laryngoscope
+otoscope
+surgical instrument
+retractor
+hemostat
+pillory
+rattan
+exercise bike
+treadmill
+respirator
+snorkel
+oxygen mask
+aqualung
+paintbrush
+spray gun
+brake
+handcuff
+fastener
+seat belt
+leash
+safety belt
+brake system
+muzzle
+chain
+bolt
+buckle
+knot
+cleat
+clothespin
+catch
+pin
+dowel
+screw
+slide fastener
+button
+seal
+paper fastener
+lock
+thumbtack
+locker
+clasp
+clip
+carabiner
+nail
+toggle
+nut and bolt
+bowline
+bow
+latch
+hasp
+rivet
+hairpin
+skewer
+hatpin
+brochette
+bobby pin
+barrette
+safety pin
+shirt button
+coat button
+washer
+gasket
+head gasket
+O ring
+padlock
+sash fastener
+latch
+combination lock
+doorlock
+paper clip
+bulldog clip
+hair slide
+hydraulic brake
+disk brake
+drum brake
+typewriter keyboard
+QWERTY keyboard
+computer keyboard
+piano keyboard
+circuit
+Segway
+jack
+control panel
+telephone jack
+circuit breaker
+plug
+electrolytic
+dashboard
+transducer
+solar cell
+antenna
+capacitor
+spark plug
+relay
+surge suppressor
+solar array
+battery
+Tesla coil
+closed circuit
+wiring
+computer circuit
+integrated circuit
+module
+printed circuit
+interface
+CPU board
+circuit board
+mosaic
+electro-acoustic transducer
+earphone
+microphone
+loudspeaker
+telephone receiver
+headset
+condenser microphone
+cardioid microphone
+tweeter
+bullhorn
+tannoy
+woofer
+subwoofer
+omnidirectional antenna
+directional antenna
+radio antenna
+television antenna
+dish
+scanner
+yagi
+voltaic battery
+flashlight battery
+lead-acid battery
+pack
+prosthesis
+solar dish
+mirror
+hand glass
+car mirror
+rearview mirror
+outside mirror
+burglar alarm
+automobile horn
+shofar
+fire alarm
+readout
+scanner
+tube
+display
+personal digital assistant
+dongle
+trackball
+mouse
+answering machine
+hearing aid
+beeper
+triode
+pentode
+computer monitor
+monitor
+screen
+digital display
+liquid crystal display
+flat panel display
+window
+dialog box
+caller ID
+computer screen
+background
+C-clamp
+chuck
+collet
+holder
+vise
+candlestick
+cigarette holder
+candelabrum
+menorah
+Menorah
+cache
+optical disk
+magnetic disk
+memory
+magnetic tape
+recording
+auxiliary storage
+compact disk
+videodisk
+CD-ROM
+CD-R
+audio CD
+hard disc
+diskette
+flash memory
+random-access memory
+videotape
+cassette tape
+tape
+phonograph record
+LP
+seventy-eight
+lamp
+light
+flash
+lantern
+candle
+neon lamp
+vigil light
+taillight
+gas lamp
+oil lamp
+hurricane lamp
+fluorescent lamp
+streetlight
+spotlight
+electric lamp
+jack-o'-lantern
+Chinese lantern
+flashlight
+light bulb
+penlight
+headlight
+room light
+strip lighting
+fairy light
+sconce
+searchlight
+night-light
+blinker
+torch
+flood
+fuel gauge
+gnomon
+dial
+vernier scale
+pointer
+light pen
+hand
+sweep hand
+minute hand
+second hand
+hour hand
+spring
+rubber band
+coil spring
+box spring
+hoist
+winch
+elevator
+crane
+wheel and axle
+derrick
+maze
+communication system
+network
+Global Positioning System
+resonator
+exhaust
+mechanical system
+computer system
+scaffolding
+reticle
+walkie-talkie
+radio
+telecommunication system
+telephone system
+intercommunication system
+interphone
+television
+satellite television
+surveillance system
+color television
+local area network
+superhighway
+ethernet
+wireless local area network
+production line
+linkage
+suspension
+fuel injection
+planter
+trophy case
+wastepaper basket
+dish
+bread-bin
+dispenser
+pot
+bunker
+reliquary
+cup
+bag
+cassette
+Dumpster
+bag
+measuring cup
+glass
+paintball
+measure
+envelope
+shaker
+piggy bank
+basket
+sewing basket
+savings bank
+powder horn
+can
+wheeled vehicle
+workbasket
+bin
+canister
+mold
+cargo container
+videocassette
+case
+case
+vessel
+drawer
+receptacle
+package
+watering can
+box
+cocotte
+Petri dish
+gravy boat
+serving dish
+tureen
+sugar bowl
+bowl
+casserole
+ramekin
+butter dish
+salad bowl
+mixing bowl
+porringer
+cereal bowl
+soup bowl
+punch bowl
+roll-on
+aerosol
+soap dispenser
+atomizer
+inhaler
+demitasse
+beaker
+kylix
+coffee cup
+chalice
+teacup
+Dixie cup
+evening bag
+shoulder bag
+clutch bag
+reticule
+backpack
+sachet
+beanbag
+sandbag
+carryall
+pannier
+duffel bag
+book bag
+tool bag
+mailbag
+purse
+drawstring bag
+envelope
+saddlebag
+sack
+pouch
+shopping bag
+toilet bag
+gamebag
+kitbag
+plastic bag
+golf bag
+sleeping bag
+gunnysack
+grocery bag
+sporran
+pocket
+waist pack
+fanny pack
+hip pocket
+patch pocket
+flute
+tumbler
+water glass
+bumper
+liqueur glass
+snifter
+shot glass
+beer glass
+rummer
+goblet
+wineglass
+cocktail shaker
+saltshaker
+pepper shaker
+pannier
+clothes hamper
+hamper
+breadbasket
+shopping basket
+wicker basket
+milk can
+beer can
+soda can
+pedicab
+camper trailer
+rolling stock
+motor scooter
+self-propelled vehicle
+unicycle
+wagon
+bassinet
+handcart
+baby buggy
+bicycle
+horse-drawn vehicle
+trailer
+car
+tricycle
+armored vehicle
+recreational vehicle
+tracked vehicle
+snowmobile
+bulldozer
+locomotive
+streetcar
+motor vehicle
+tractor
+forklift
+armored personnel carrier
+armored car
+dune buggy
+camper
+van
+shunter
+diesel locomotive
+electric locomotive
+tank engine
+traction engine
+steam locomotive
+diesel-electric locomotive
+diesel-hydraulic locomotive
+hearse
+truck
+amphibian
+four-wheel drive
+motorcycle
+go-kart
+car
+snowplow
+fire engine
+van
+trailer truck
+transporter
+garbage truck
+ladder truck
+tow truck
+dump truck
+tractor
+pickup
+delivery truck
+moving van
+passenger van
+police van
+bookmobile
+trail bike
+moped
+beach wagon
+loaner
+Model T
+electric
+minivan
+convertible
+compact
+cab
+shooting brake
+racer
+hatchback
+roadster
+berlin
+sport utility
+sedan
+jeep
+limousine
+cruiser
+ambulance
+used-car
+stock car
+subcompact
+pace car
+hot rod
+sports car
+coupe
+covered wagon
+cart
+horse cart
+dumpcart
+jinrikisha
+pony cart
+oxcart
+tea cart
+laundry cart
+serving cart
+barrow
+shopping cart
+hand truck
+bicycle-built-for-two
+safety bicycle
+push-bike
+mountain bike
+carriage
+gharry
+buggy
+stagecoach
+four-wheeler
+baggage car
+freight car
+passenger car
+cabin car
+boxcar
+tank car
+nonsmoker
+Pullman
+dining car
+smoker
+recycling bin
+ashcan
+litterbin
+sandbox
+pig bed
+briefcase
+compact
+dispatch case
+kit
+wallet
+cardcase
+portfolio
+ditty bag
+cigarette case
+shoe
+gun case
+attache case
+locket
+writing desk
+watch case
+baggage
+glasses case
+hand luggage
+satchel
+bag
+trunk
+hatbox
+garment bag
+weekender
+carpetbag
+portmanteau
+overnighter
+valise
+boiler
+flagon
+bowl
+ladle
+bottle
+bottle
+pot
+pitcher
+bathtub
+mortar
+bucket
+drinking vessel
+cream pitcher
+wine bucket
+pressure cooker
+tub
+inkwell
+tin
+basin
+monstrance
+autoclave
+churn
+barrel
+tank
+jar
+censer
+toilet bowl
+fishbowl
+scoop
+soup ladle
+smelling bottle
+pop bottle
+water bottle
+jug
+catsup bottle
+gourd
+pill bottle
+carboy
+flask
+beer bottle
+ink bottle
+demijohn
+whiskey bottle
+cruet
+wine bottle
+carafe
+phial
+whiskey jug
+water jug
+hipflask
+Erlenmeyer flask
+thermos
+canteen
+vacuum flask
+magnum
+jeroboam
+saucepot
+teapot
+Dutch oven
+urn
+stockpot
+kettle
+caldron
+percolator
+teakettle
+coffeepot
+coffee urn
+samovar
+tea urn
+sitz bath
+hot tub
+footbath
+mug
+loving cup
+tankard
+coffee mug
+toby
+beer mug
+bidet
+birdbath
+washbasin
+baptismal font
+beer barrel
+wine cask
+keg
+gas tank
+water heater
+septic tank
+aquarium
+reservoir
+water tower
+rain barrel
+canopic jar
+amphora
+cookie jar
+beaker
+urn
+Mason jar
+vase
+crock
+jampot
+plate
+tray
+cat box
+dustpan
+chamberpot
+salver
+garbage
+in-basket
+hot-water bottle
+ossuary
+socket
+ashtray
+packet
+bundle
+deck
+bale
+hay bale
+pack
+ballot box
+carton
+coffin
+shoebox
+snuffbox
+pencil box
+crate
+bandbox
+window box
+chest
+strongbox
+cereal box
+mailbox
+casket
+bier
+packing box
+toolbox
+toy box
+coffer
+hope chest
+treasure chest
+cedar chest
+cash register
+safe-deposit
+cashbox
+safe
+tramway
+chairlift
+sidecar
+public transport
+semitrailer
+horsebox
+vehicle
+ski tow
+roll-on roll-off
+trailer
+shipping
+litter
+express
+shuttle bus
+train
+bus
+local
+freight liner
+passenger train
+subway train
+mail train
+freight train
+commuter
+bullet train
+trolleybus
+minibus
+school bus
+steamroller
+bumper car
+rocket
+military vehicle
+missile
+craft
+sled
+half track
+tank
+panzer
+personnel carrier
+Humvee
+aircraft
+vessel
+spacecraft
+hovercraft
+heavier-than-air craft
+stealth aircraft
+lighter-than-air craft
+hang glider
+glider
+helicopter
+warplane
+airplane
+autogiro
+bomber
+amphibian
+propeller plane
+airliner
+biplane
+floatplane
+jet
+fighter
+stealth bomber
+seaplane
+airbus
+widebody aircraft
+jumbojet
+jetliner
+stealth fighter
+interceptor
+airship
+blimp
+balloon
+hot-air balloon
+boat
+trawler
+yacht
+ship
+sailing vessel
+bareboat
+lifeboat
+police boat
+gondola
+sea boat
+barge
+river boat
+tugboat
+punt
+pilot boat
+small boat
+ferry
+tender
+canal boat
+fireboat
+motorboat
+dredger
+pontoon
+houseboat
+skiff
+canoe
+dinghy
+racing boat
+coracle
+yawl
+gig
+jolly boat
+rowing boat
+kayak
+outrigger canoe
+dugout canoe
+racing gig
+racing skiff
+speedboat
+outboard motorboat
+cabin cruiser
+hydrofoil
+shipwreck
+wreck
+passenger ship
+pirate
+lightship
+hospital ship
+steamer
+cargo ship
+sister ship
+warship
+liner
+luxury liner
+cargo liner
+cruise ship
+paddle steamer
+sternwheeler
+bottom
+container ship
+banana boat
+oil tanker
+submarine
+guided missile cruiser
+frigate
+battleship
+guided missile frigate
+aircraft carrier
+man-of-war
+destroyer
+attack submarine
+nautilus
+yawl
+clipper
+felucca
+sloop
+ketch
+dhow
+sailboat
+bark
+schooner
+windjammer
+trimaran
+catamaran
+catboat
+space shuttle
+space capsule
+dogsled
+bobsled
+bobsled
+stretcher
+covered couch
+telecommunication
+vehicle
+print media
+broadcasting
+telephone
+radiotelephone
+television
+reception
+radio
+cable television
+high-definition television
+three-way calling
+call
+voice mail
+press
+journalism
+magazine
+newspaper
+pulp
+slick
+comic book
+news magazine
+tabloid
+daily
+gazette
+Fleet Street
+yellow journalism
+pillow
+pad
+sanitary napkin
+beer mat
+futon
+carpet pad
+range hood
+screen
+top
+footwear
+protective covering
+cloak
+wrapping
+upholstery
+cloth covering
+mask
+finger
+floor cover
+coating
+canopy
+flap
+domino
+folder
+planking
+earmuff
+camouflage
+shoji
+cap
+manhole cover
+lid
+radiator cap
+bottlecap
+nipple
+clog
+shoe
+arctic
+boot
+flats
+slipper
+overshoe
+sabot
+slingback
+chukka
+saddle oxford
+spectator pump
+brogan
+wing tip
+walker
+blucher
+anklet
+cleats
+gaiter
+Loafer
+running shoe
+oxford
+bowling shoe
+plimsoll
+pump
+sandal
+chopine
+pusher
+talaria
+flip-flop
+espadrille
+jodhpur
+buskin
+ski boot
+hip boot
+riding boot
+rubber boot
+Hessian boot
+waders
+cowboy boot
+mule
+bootee
+cold frame
+cloche
+washboard
+toecap
+mulch
+shield
+bracer
+screen
+sheathing
+bell jar
+shade
+shelter
+splashboard
+testudo
+roof
+faceplate
+hood
+sheath
+cap
+mask
+facing
+crystal
+calash
+armor
+binder
+binding
+housing
+blind
+lining
+plate
+horseshoe
+armor plate
+breastplate
+helmet
+cannon
+knee piece
+pickelhaube
+sallet
+window screen
+fire screen
+windshield
+mosquito net
+lampshade
+parasol
+lean-to
+bell cote
+sentry box
+birdhouse
+canopy
+kennel
+awning
+umbrella
+gamp
+gable roof
+sunroof
+mansard
+dome
+hip roof
+tile roof
+housetop
+vault
+slate roof
+gambrel
+thatch
+cupola
+geodesic dome
+onion dome
+barrel vault
+ribbed vault
+holster
+scabbard
+shoulder holster
+hubcap
+thimble
+distributor cap
+lens cap
+gasmask
+face mask
+ski mask
+catcher's mask
+body armor
+shield
+chain mail
+bulletproof vest
+corselet
+cuirass
+cabinet
+radome
+boot
+window blind
+jalousie
+curtain
+shutter
+Venetian blind
+window shade
+roller blind
+theater curtain
+shower curtain
+bushing
+brake lining
+gift wrapping
+envelope
+cellophane
+book jacket
+jacket
+plastic wrap
+shoulder
+pant leg
+leg
+back
+cosy
+bandage
+bosom
+slipcover
+bedclothes
+sleeve
+blindfold
+eyepatch
+skirt
+seat
+Band Aid
+swathe
+cast
+elastic bandage
+quilt
+afghan
+blanket
+bedspread
+mattress cover
+patchwork
+eiderdown
+crazy quilt
+coverlet
+quilted bedspread
+raglan sleeve
+long sleeve
+rug
+doormat
+mat
+scatter rug
+shag rug
+prayer rug
+broadloom
+stair-carpet
+red carpet
+Brussels carpet
+fixative
+gold plate
+verdigris
+paint
+nail polish
+gilt
+couch
+enamel
+veneer
+finger paint
+enamel
+encaustic
+oil paint
+water-base paint
+latex paint
+whitewash
+earflap
+pocket flap
+lapel
+tongue
+revers
+tent-fly
+file folder
+matchbook
+plush
+muslin
+tarpaulin
+velvet
+batik
+khaki
+belting
+sacking
+diaper
+voile
+duffel
+chenille
+cotton flannel
+toweling
+crinoline
+panting
+chintz
+felt
+cotton
+velveteen
+satin
+knit
+sateen
+print
+flannel
+webbing
+gabardine
+camouflage
+worsted
+cashmere
+tartan
+mohair
+brocade
+velour
+shirttail
+boucle
+madras
+net
+paisley
+yoke
+percale
+piece of cloth
+moquette
+terry
+rayon
+acetate rayon
+cord
+permanent press
+chiffon
+burlap
+ticking
+basket weave
+lace
+sheeting
+georgette
+poplin
+denim
+flannelette
+shantung
+camel's hair
+nylon
+drapery
+gauze
+organza
+foulard
+gingham
+wool
+suede cloth
+taffeta
+leatherette
+tweed
+organdy
+canopy
+etamine
+damask
+oilcloth
+tapestry
+broadcloth
+pique
+homespun
+tricot
+double knit
+jersey
+gauze
+tulle
+chicken wire
+handkerchief
+groundsheet
+dustcloth
+dishrag
+towel
+bandanna
+gusset
+bib
+sail
+patch
+hand towel
+paper towel
+dishtowel
+fore-and-aft sail
+foresail
+spinnaker
+headsail
+topsail
+mainsail
+balloon sail
+jib
+mizzen
+gaff topsail
+lugsail
+staysail
+lateen
+flash
+shoulder patch
+narrow wale
+Bedford cord
+macrame
+pillow lace
+raft
+life preserver
+life buoy
+Mae West
+life jacket
+stone
+brick
+lumber
+bricks and mortar
+tile
+concrete
+quoin
+millstone
+stele
+hone
+grindstone
+curbstone
+gravestone
+firebrick
+mud brick
+clinker
+adobe
+strip
+chipboard
+slat
+fingerboard
+toothpick
+hip tile
+pantile
+cornice
+embellishment
+graffito
+epergne
+necklet
+marquetry
+brass
+garnish
+arabesque
+design
+adornment
+frieze
+lambrequin
+tattoo
+mihrab
+emblem
+swastika
+herringbone
+spot
+flag
+banner
+totem pole
+crucifix
+fleur-de-lis
+macule
+parhelion
+jewelry
+frill
+lavaliere
+peplum
+bangle
+cigar band
+aigrette
+bracelet
+bling
+pendant earring
+necklace
+ghat
+path
+road
+passage
+sidewalk
+towpath
+pedestrian crossing
+highway
+carriageway
+thoroughfare
+trail
+divided highway
+expressway
+arterial road
+autostrada
+autobahn
+street
+street
+piste
+horse-trail
+adit
+conduit
+passageway
+tube
+sluice
+snorkel
+waterspout
+catheter
+barrel
+pipe
+hookah
+tailpipe
+drain
+culvert
+soil pipe
+tunnel
+stairwell
+gangway
+catacomb
+railroad tunnel
+tape
+band
+inkle
+adhesive tape
+plaster
+cellulose tape
+headstall
+girdle
+tire
+armlet
+radial
+car tire
+tableware
+riband
+cutlery
+glass
+hollowware
+platter
+spoon
+table knife
+fork
+Spork
+soupspoon
+teaspoon
+sugar spoon
+wooden spoon
+iced-tea spoon
+tablespoon
+dessert spoon
+case knife
+butter knife
+steak knife
+tablefork
+carving fork
+airfield
+telpherage
+air terminal
+airport
+menagerie
+storehouse
+station
+warehouse
+granary
+crib
+mineshaft
+ditch
+irrigation ditch
+furrow
+consumer goods
+linen
+clothing
+appliance
+leisure wear
+grey
+blue
+nightwear
+protective garment
+outerwear
+neckpiece
+knitwear
+loungewear
+apparel
+collar
+military uniform
+headdress
+pajama
+garment
+array
+woman's clothing
+overall
+glove
+accessory
+black
+footwear
+attire
+ready-to-wear
+beachwear
+man's clothing
+street clothes
+slip-on
+shin guard
+overall
+pressure suit
+arm guard
+foul-weather gear
+diving suit
+apron
+shoulder pad
+coverall
+chest protector
+elbow pad
+spacesuit
+knee pad
+gown
+vestment
+chasuble
+academic gown
+battle dress
+fatigues
+dress uniform
+khakis
+helmet
+hood
+turban
+hat
+cap
+cowl
+tiara
+football helmet
+hard hat
+crash helmet
+sunhat
+fur hat
+cowboy hat
+bearskin
+boater
+snap-brim hat
+fedora
+cavalier hat
+sombrero
+tricorn
+beaver
+porkpie
+bonnet
+pith hat
+bowler hat
+millinery
+cloche
+pillbox
+baseball cap
+coonskin cap
+shower cap
+kepi
+balaclava
+fez
+tam
+beret
+skullcap
+cloth cap
+ski cap
+watch cap
+bathing cap
+mortarboard
+yarmulke
+beanie
+head covering
+scarf
+romper
+diaper
+wraparound
+robe
+wet suit
+legging
+skirt
+undergarment
+separate
+vest
+shirt
+overgarment
+hose
+burqa
+trouser
+trouser
+straitjacket
+fur
+neckwear
+sweat suit
+leotard
+swimsuit
+hand-me-down
+raglan
+suit
+sweater
+gown
+face veil
+niqab
+chador
+mantilla
+muffler
+headscarf
+tudung
+feather boa
+stole
+hijab
+khimar
+dressing gown
+kimono
+abaya
+bathrobe
+gaiter
+spat
+overskirt
+grass skirt
+miniskirt
+kilt
+maxi
+ballet skirt
+dirndl
+sarong
+hoopskirt
+petticoat
+brassiere
+foundation garment
+singlet
+garter belt
+crinoline
+underwear
+body stocking
+camisole
+uplift
+chemise
+underpants
+corset
+panty girdle
+roll-on
+lingerie
+long johns
+BVD
+undies
+nightgown
+bloomers
+thong
+bikini pants
+briefs
+pantie
+drawers
+work-shirt
+kurta
+jersey
+dashiki
+polo shirt
+coat
+cloak
+snowsuit
+surcoat
+duffel coat
+sheepskin coat
+frock coat
+lab coat
+greatcoat
+jacket
+raincoat
+capote
+sack coat
+fur coat
+mess jacket
+single-breasted jacket
+bomber jacket
+pea jacket
+swallow-tailed coat
+doublet
+bolero
+parka
+oilskin
+trench coat
+mink
+sable coat
+poncho
+toga virilis
+toga
+kameez
+serape
+tunic
+shawl
+caftan
+short pants
+pajama
+sweat pants
+salwar
+breeches
+chino
+slacks
+jodhpurs
+pedal pusher
+long trousers
+jean
+cords
+Levi's
+stretch pants
+bellbottom trousers
+buckskins
+hot pants
+Bermuda shorts
+lederhosen
+necktie
+cravat
+bolo tie
+Windsor tie
+bow tie
+black tie
+maillot
+swimming trunks
+bikini
+double-breasted suit
+pinstripe
+single-breasted suit
+pants suit
+business suit
+three-piece suit
+two-piece
+turtleneck
+cardigan
+sweatshirt
+pullover
+top
+G-string
+camisole
+dress
+bodice
+blouse
+halter
+cocktail dress
+sari
+caftan
+sundress
+chemise
+strapless
+gown
+jumper
+dirndl
+bridal gown
+tea gown
+ball gown
+gauntlet
+mitten
+kid glove
+belt
+furnishing
+money belt
+holster
+cartridge belt
+hosiery
+tights
+sock
+stocking
+pantyhose
+maillot
+athletic sock
+tabi
+knee-high
+argyle
+nylons
+Christmas stocking
+formalwear
+ensemble
+outfit
+ao dai
+costume
+fancy dress
+costume
+frock
+sportswear
+academic costume
+disguise
+hairpiece
+dinner jacket
+balldress
+dinner dress
+dress suit
+Afro-wig
+toupee
+wig
+dress hat
+brace
+athletic supporter
+home appliance
+dryer
+vacuum
+iron
+trouser press
+curling iron
+white goods
+sewing machine
+serger
+kitchen appliance
+Hoover
+travel iron
+steam iron
+dishwasher
+refrigerator
+washer
+cooler
+electric refrigerator
+ice machine
+deep-freeze
+toaster
+microwave
+toaster oven
+coffee maker
+hot plate
+waffle iron
+disposal
+espresso maker
+stove
+oven
+food processor
+ice maker
+cookstove
+electric range
+gas range
+Primus stove
+broiler
+rotisserie
+Dutch oven
+gas oven
+hand blower
+clothes dryer
+spin dryer
+tumble-dryer
+wringer
+bath towel
+doily
+Turkish towel
+bed linen
+pillow sham
+sheet
+tinfoil
+plywood
+doorplate
+board
+drumhead
+panel
+laminate
+blackboard
+snowboard
+Sheetrock
+surfboard
+skateboard
+sideboard
+scoreboard
+wainscot
+headboard
+chandelier
+plumbing fixture
+soap dish
+toilet
+shower
+water faucet
+flush toilet
+potty seat
+rope
+cord
+lasso
+bungee
+spun yarn
+cordage
+thread
+bootlace
+wick
+lanyard
+floss
+woof
+worsted
+organism
+cell
+mistletoe
+plant
+animal
+microorganism
+bryophyte
+person
+fungus
+benthos
+flowering maple
+vascular plant
+strangler
+aquatic
+annual
+houseplant
+poisonous plant
+agave
+pteridophyte
+spermatophyte
+aquatic plant
+herb
+vine
+woody plant
+weed
+cultivar
+bulbous plant
+succulent
+American agave
+maguey
+maguey
+sansevieria
+dracaena
+mother-in-law's tongue
+fern ally
+fern
+club moss
+scouring rush
+ground pine
+ground cedar
+ground fir
+flowering fern
+lady fern
+Boston fern
+flowering fern
+royal fern
+tree fern
+oak fern
+common polypody
+mountain fern
+shield fern
+deer fern
+wood fern
+American maidenhair fern
+hart's-tongue
+soft shield fern
+holly fern
+maidenhair
+holly fern
+water clover
+sensitive fern
+Christmas fern
+angiopteris
+soft tree fern
+male fern
+marginal wood fern
+angiosperm
+gymnosperm
+barbados cherry
+dicot
+flower
+wildflower
+commelina
+woodland star
+nigella
+black-eyed Susan
+mistflower
+calceolaria
+toadflax
+zinnia
+centaury
+Easter daisy
+African violet
+brompton stock
+verbena
+blue daisy
+pink calla
+Mexican sunflower
+bloomer
+achimenes
+lychnis
+painted daisy
+treasure flower
+globe amaranth
+common valerian
+rose moss
+tidytips
+common daisy
+composite
+ice plant
+gentian
+soapwort
+anemone
+veronica
+larkspur
+spring beauty
+gazania
+damask violet
+Barberton daisy
+bush violet
+baby's breath
+corydalis
+calendula
+sunflower
+scabious
+valerian
+rue anemone
+sandwort
+candytuft
+horn poppy
+sandwort
+poppy
+stokes' aster
+dahlia
+Virginia spring beauty
+petunia
+orchid
+hybrid petunia
+African daisy
+pink
+African daisy
+African daisy
+daisy
+common ageratum
+oxeye daisy
+columbine
+calla lily
+sweet alyssum
+spathiphyllum
+four o'clock
+common marigold
+cornflower
+strawflower
+silene
+tuberose
+common four-o'clock
+rocket larkspur
+bellwort
+begonia
+streptocarpus
+Swan River daisy
+wallflower
+peony
+love-in-a-mist
+wallflower
+cineraria
+chrysanthemum
+stock
+sandwort
+Malcolm stock
+mountain sandwort
+coneflower
+ageratum
+coneflower
+sowbread
+scorpionweed
+cyclamen
+delphinium
+marigold
+aster
+cosmos
+Mediterranean snapdragon
+mullein pink
+ragged robin
+mayweed
+tansy
+dusty miller
+corn chamomile
+shasta daisy
+everlasting
+wingstem
+rosinweed
+oxeye daisy
+strawflower
+strawflower
+cudweed
+pearly everlasting
+gentianella
+agueweed
+closed gentian
+closed gentian
+great yellow gentian
+fringed gentian
+marsh gentian
+snowdrop anemone
+wood anemone
+wood anemone
+germander speedwell
+common speedwell
+common sunflower
+prairie sunflower
+giant sunflower
+Jerusalem artichoke
+sweet scabious
+field scabious
+Iceland poppy
+wind poppy
+Iceland poppy
+celandine
+oriental poppy
+opium poppy
+celandine poppy
+prickly poppy
+California poppy
+corn poppy
+blue poppy
+aerides
+coelogyne
+lady's slipper
+Venus' slipper
+cymbid
+sobralia
+spider orchid
+spider orchid
+Psychopsis papilio
+liparis
+butterfly orchid
+butterfly orchid
+butterfly orchid
+oncidium
+twayblade
+twayblade
+grass pink
+brassavola
+fragrant orchid
+fly orchid
+frog orchid
+coral root
+cattleya
+lesser butterfly orchid
+vanilla
+short-spurred fragrant orchid
+common spotted orchid
+bog rose
+ladies' tresses
+odontoglossum
+orchis
+vanda
+pansy orchid
+Bletilla striata
+rattlesnake plantain
+marsh orchid
+stanhopea
+laelia
+phaius
+lizard orchid
+caladenia
+calypso
+moth orchid
+blue orchid
+bee orchid
+early spider orchid
+masdevallia
+bog rein orchid
+European ladies' tresses
+fen orchid
+pogonia
+fringed orchis
+dendrobium
+fly orchid
+helleborine
+helleborine
+stelis
+greater butterfly orchid
+yellow lady's slipper
+large yellow lady's slipper
+common lady's-slipper
+moccasin flower
+butterfly orchid
+male orchis
+ragged orchid
+purple-fringed orchid
+stream orchid
+Epipactis helleborine
+sweet William
+china pink
+Japanese pink
+carnation
+cottage pink
+maiden pink
+meeting house
+granny's bonnets
+blue columbine
+fire pink
+white campion
+bladder campion
+red campion
+wild pink
+moss campion
+wax begonia
+hybrid tuberous begonia
+rex begonia
+crown daisy
+corn marigold
+florist's chrysanthemum
+African marigold
+French marigold
+New England aster
+bushy aster
+Michaelmas daisy
+Indian paintbrush
+goldenrod
+sand verbena
+bitterroot
+Indian pipe
+heliopsis
+meadow goldenrod
+pasqueflower
+fleabane
+blazing star
+edelweiss
+coneflower
+balloon flower
+wild carrot
+prairie gentian
+desert sunflower
+Arnica montana
+butterweed
+gaillardia
+brittlebush
+orange daisy
+daisy fleabane
+Mexican hat
+long-head coneflower
+cycad
+welwitschia
+encephalartos
+dioon
+macrozamia
+false sago
+water shamrock
+water hyacinth
+pistia
+water lily
+marsh plant
+water nymph
+European white lily
+bog star
+marsh marigold
+wild calla
+sedge
+parnassia
+skunk cabbage
+skunk cabbage
+cotton grass
+nutgrass
+common cotton grass
+winter aconite
+buttercup
+phlox
+willowherb
+stapelia
+skullcap
+bedstraw
+gumweed
+kangaroo paw
+common chickweed
+hyssop
+arum
+common comfrey
+borage
+nasturtium
+canna
+loosestrife
+toad lily
+globe thistle
+wild thyme
+common fennel
+bear's breech
+ironweed
+feverfew
+monarda
+physostegia
+creeping bugle
+vegetable
+hedge nettle
+plum tomato
+ground cherry
+flax
+primrose
+oxalis
+kniphofia
+boneset
+chickweed
+periwinkle
+garden angelica
+bugloss
+Dutchman's breeches
+pie plant
+cow parsnip
+butterbur
+milk thistle
+mouse-ear chickweed
+yellow bells
+lobelia
+anise hyssop
+banana
+Joe-Pye weed
+Joe-Pye weed
+garden forget-me-not
+evening primrose
+spiderflower
+sweet false chamomile
+agrimonia
+hepatica
+medic
+peperomia
+geranium
+viola
+okra
+bergenia
+astrantia
+aspidistra
+thyme
+common teasel
+carnivorous plant
+harvest-lice
+nemophila
+hawkweed
+hawkweed
+fleabane
+plumbago
+spiderwort
+prickly poppy
+common foxglove
+stonecrop
+garden lettuce
+teasel
+herb Paris
+coltsfoot
+basil
+sainfoin
+sneezeweed
+cockscomb
+baby blue-eyes
+coleus
+spurge nettle
+arnica
+sour dock
+clover
+mint
+coreopsis
+pimpernel
+kidney vetch
+foxglove
+legume
+reseda
+forget-me-not
+Virginia bluebell
+pineapple
+blueweed
+anchusa
+moss pink
+common dandelion
+false lupine
+sage
+chamomile
+crucifer
+chicory
+broad-leaved plantain
+bugle
+milkweed
+fireweed
+spirea
+inula
+hemp nettle
+garden nasturtium
+pokeweed
+moneywort
+asparagus
+Italian parsley
+rhubarb
+jewelweed
+asparagus fern
+sedum
+yarrow
+bird's foot trefoil
+scarlet pimpernel
+campanula
+mayapple
+painted nettle
+pigweed
+bleeding heart
+achillea
+snow-in-summer
+gramineous plant
+balsamroot
+Abyssinian banana
+herbage
+astilbe
+ginger
+saxifrage
+cow parsley
+dill
+common mullein
+dead nettle
+creeping buttercup
+meadow buttercup
+yellow bedstraw
+sweet woodruff
+caladium
+cuckoopint
+jack-in-the-pulpit
+alocasia
+taro
+amorphophallus
+bee balm
+bee balm
+artichoke
+cardoon
+tomatillo
+tomatillo
+English primrose
+oxlip
+cowslip
+polyanthus
+creeping oxalis
+common wood sorrel
+Bermuda buttercup
+red-hot poker
+poker plant
+dwarf banana
+Japanese banana
+plantain
+sundrops
+common evening primrose
+ivy geranium
+cranesbill
+fish geranium
+rose geranium
+meadow cranesbill
+wild geranium
+dove's foot geranium
+herb robert
+horned violet
+field pansy
+violet
+dog violet
+pale violet
+bird's-foot violet
+hedge violet
+Venus's flytrap
+pitcher plant
+tropical pitcher plant
+sundew
+white clover
+red clover
+crimson clover
+pennyroyal
+water-mint
+beach pea
+chickpea
+vetch
+tufted vetch
+bean
+wild pea
+scarlet runner
+sieva bean
+clary
+common sage
+clary sage
+wild sage
+purple sage
+meadow clary
+bok choy
+mustard
+cabbage
+cauliflower
+collard
+broccoli
+brussels sprout
+garlic mustard
+head cabbage
+radish plant
+bittercress
+alyssum
+field mustard
+rape
+radish
+radish
+lady's smock
+crinkleroot
+butterfly weed
+swamp milkweed
+tussock bellflower
+Canterbury bell
+clustered bellflower
+peach bells
+giant bamboo
+grass
+fescue
+cordgrass
+feather reed grass
+reed grass
+orchard grass
+cereal
+broom beard grass
+tall oat grass
+tallgrass
+St. Augustine grass
+pampas grass
+grama
+dallisgrass
+zoysia
+rye grass
+brome
+fountain grass
+rye
+popcorn
+wheat
+millet
+sorghum
+panic grass
+goose grass
+switch grass
+common ginger
+shellflower
+meadow saxifrage
+purple saxifrage
+white dead nettle
+henbit
+ground ivy
+blue pea
+purple clematis
+black-eyed Susan
+bougainvillea
+butterfly pea
+butterfly pea
+bindweed
+kudzu
+Boston ivy
+squash
+yellow jasmine
+wax plant
+morning glory
+liana
+Japanese wistaria
+allamanda
+field bindweed
+common allamanda
+passionflower
+convolvulus
+gourd
+grape
+Chinese gooseberry
+summer squash
+winter squash
+pumpkin
+spaghetti squash
+yellow squash
+acorn squash
+winter crookneck
+cypress vine
+Japanese morning glory
+moonflower
+golden pothos
+ceriman
+jade vine
+pothos
+love-in-a-mist
+maypop
+granadilla
+sweet melon
+bottle gourd
+net melon
+winter melon
+cantaloupe
+Sauvignon grape
+fox grape
+wild indigo
+shrub
+tree
+raspberry
+lupine
+abelia
+banksia
+bird pepper
+sea holly
+guelder rose
+crape myrtle
+castor-oil plant
+spirea
+hydrangea
+fuchsia
+redberry
+saltbush
+false indigo
+bridal wreath
+protea
+Oregon grape
+grevillea
+gorse
+rockrose
+cowberry
+subshrub
+honeypot
+California fuchsia
+sumac
+jasmine
+impala lily
+currant
+axseed
+mimosa
+southern buckthorn
+flowering quince
+yucca
+purple heather
+waratah
+mallow
+strawberry tree
+mock orange
+honeysuckle
+spurge
+kalmia
+bush hibiscus
+weigela
+Christmasberry
+angel's trumpet
+angel's trumpet
+gooseberry
+dusty miller
+croton
+Pyracantha
+forsythia
+artemisia
+silversword
+waratah
+philadelphus
+common lilac
+saltwort
+calliandra
+wahoo
+bird of paradise
+cape jasmine
+camellia
+night jasmine
+rose
+mountain laurel
+cotoneaster
+rhododendron
+frangipani
+broom
+desert pea
+lavender
+butterfly bush
+deutzia
+hortensia
+burdock
+prairie smoke
+centaury
+sea lavender
+common mugwort
+bird's foot trefoil
+large periwinkle
+great burdock
+St John's wort
+eriogonum
+purple loosestrife
+loosestrife
+mountain avens
+matilija poppy
+bur marigold
+wild lupine
+marguerite
+dusty miller
+great knapweed
+knapweed
+creeping St John's wort
+klammath weed
+common St John's wort
+common jasmine
+winter jasmine
+Adam's needle
+bear grass
+Joshua tree
+Spanish dagger
+hollyhock
+rose mallow
+common mallow
+marsh mallow
+musk mallow
+hibiscus
+althea
+rose mallow
+cotton rose
+woodbine
+trumpet honeysuckle
+Japanese honeysuckle
+poinsettia
+crown of thorns
+damask rose
+musk rose
+azalea
+rosebay
+swamp azalea
+common broom
+woodwaxen
+English lavender
+spike lavender
+French lavender
+locust tree
+kowhai
+bottle-tree
+timber tree
+linden
+bonsai
+snag
+hackberry
+pepper tree
+Japanese oak
+European hackberry
+cork tree
+birch
+star anise
+red silk-cotton tree
+roble
+common alder
+fig tree
+Japanese pagoda tree
+albizzia
+European hornbeam
+cassia
+coral tree
+neem
+white mangrove
+Chinese parasol tree
+bayberry
+yellowwood
+elm
+alder
+prickly ash
+angiospermous tree
+chestnut
+cabbage bark
+ash
+beech
+fringe tree
+golden shower tree
+lead tree
+palm
+balata
+sapling
+black beech
+acacia
+coffee
+gymnospermous tree
+ceibo
+incense tree
+lacebark
+shade tree
+pollard
+gum tree
+wild medlar
+hornbeam
+willow
+textile screw pine
+mescal bean
+Brazilian rosewood
+pandanus
+white mangrove
+oak
+bean tree
+plane tree
+blackwood
+coralwood
+Kentucky coffee tree
+black locust
+honey locust
+flame tree
+flame tree
+kurrajong
+American basswood
+silver lime
+black birch
+silver birch
+swamp birch
+downy birch
+grey birch
+golden fig
+India-rubber tree
+fig
+banyan
+pipal
+rain tree
+silk tree
+smooth-leaved elm
+American elm
+English elm
+cedar elm
+myrtle
+mangrove
+magnolia
+Queen's crape myrtle
+looking-glass plant
+tulip tree
+maple
+nut tree
+redbud
+baobab
+poplar
+tree of heaven
+ailanthus
+dogwood
+holly
+cacao
+laurel
+mountain ebony
+kapok
+sorrel tree
+cacao bean
+Spanish elm
+rowan
+mountain ash
+royal poinciana
+iron tree
+fruit tree
+sweet bay
+southern magnolia
+star magnolia
+umbrella tree
+box elder
+red maple
+hedge maple
+Norway maple
+Japanese maple
+sycamore
+California box elder
+silver maple
+sugar maple
+Oregon maple
+cashew
+walnut
+hazelnut
+black walnut
+English walnut
+black poplar
+aspen
+cottonwood
+white poplar
+quaking aspen
+Eastern cottonwood
+black cottonwood
+cornelian cherry
+bunchberry
+common European dogwood
+common white dogwood
+bearberry
+inkberry
+true laurel
+cassia
+citrus
+mulberry
+jackfruit
+pomegranate
+pawpaw
+persimmon
+carambola
+plum
+almond tree
+durian
+papaya
+olive tree
+longan
+pear
+loquat
+medlar
+peach
+white mulberry
+olive
+litchi
+Japanese apricot
+rambutan
+apple tree
+Japanese persimmon
+mango
+breadfruit
+guava
+guava
+jaboticaba
+cherry
+Surinam cherry
+lime
+mandarin
+orange
+kumquat
+lemon
+pomelo
+grapefruit
+clementine
+tangerine
+sweet orange
+sour orange
+bergamot
+cherry plum
+Allegheny plum
+flowering almond
+almond
+flowering almond
+crab apple
+apple
+wild apple
+Southern crab apple
+Bechtel crab
+Iowa crab
+sour cherry
+flowering cherry
+wild cherry
+sweet cherry
+chokecherry
+Japanese flowering cherry
+oriental cherry
+fuji
+hagberry tree
+black cherry
+Ozark chinkapin
+American chestnut
+pumpkin ash
+mountain ash
+manna ash
+European ash
+red ash
+weeping beech
+American beech
+copper beech
+bamboo palm
+wine palm
+fan palm
+royal palm
+cabbage palm
+cabbage palm
+sago palm
+miniature fan palm
+lady palm
+feather palm
+coconut
+cabbage palm
+carnauba
+caranday
+palmyra
+cabbage palmetto
+key palm
+saw palmetto
+palmetto
+date palm
+oil palm
+silver wattle
+wattle
+huisache
+ginkgo
+conifer
+kauri
+green douglas fir
+miro
+cedar
+cedar
+douglas fir
+matai
+arborvitae
+spruce
+yew
+araucaria
+cypress
+metasequoia
+pine
+fir
+larch
+hemlock
+cedar of Lebanon
+Atlas cedar
+deodar
+southern white cedar
+incense cedar
+Oregon cedar
+Japanese cedar
+Oriental arborvitae
+American arborvitae
+western red cedar
+Colorado spruce
+white spruce
+Norway spruce
+red spruce
+black spruce
+Sitka spruce
+oriental spruce
+bunya bunya
+monkey puzzle
+Monterey cypress
+Arizona cypress
+Italian cypress
+Scotch pine
+pond pine
+pitch pine
+table-mountain pine
+ancient pine
+stone pine
+Jeffrey pine
+loblolly pine
+Swiss pine
+spruce pine
+white pine
+red pine
+Japanese black pine
+Swiss mountain pine
+black pine
+Monterey pine
+yellow pine
+Torrey pine
+shore pine
+bristlecone pine
+whitebark pine
+western white pine
+longleaf pine
+ponderosa
+silver fir
+Fraser fir
+Alpine fir
+amabilis fir
+lowland fir
+balsam fir
+European silver fir
+white fir
+western larch
+American larch
+eastern hemlock
+western hemlock
+mountain hemlock
+gumbo-limbo
+elephant tree
+sweet gum
+eucalyptus
+sour gum
+liquidambar
+snow gum
+mountain ash
+black mallee
+alpine ash
+red gum
+red gum
+blue gum
+osier
+pussy willow
+bay willow
+weeping willow
+swamp willow
+purple willow
+common osier
+European turkey oak
+red oak
+cork oak
+black oak
+live oak
+chestnut oak
+bluejack oak
+pin oak
+post oak
+shingle oak
+white oak
+laurel oak
+northern red oak
+southern red oak
+southern live oak
+canyon oak
+coast live oak
+chinquapin oak
+basket oak
+swamp chestnut oak
+bur oak
+Oregon white oak
+common oak
+tamarind
+catalpa
+carob
+California sycamore
+American sycamore
+London plane
+lightwood
+black mangrove
+wild raspberry
+black raspberry
+bluebonnet
+Texas bluebonnet
+thistle
+cat's-ear
+corn cockle
+yellow rocket
+fireweed
+stinging nettle
+horseweed
+stemless carline thistle
+musk thistle
+cotton thistle
+plume thistle
+field thistle
+bull thistle
+Canada thistle
+hippeastrum
+narcissus
+iridaceous plant
+fritillary
+liliaceous plant
+star-of-Bethlehem
+daffodil
+jonquil
+jonquil
+iris
+blue-eyed grass
+blackberry-lily
+dwarf iris
+dwarf iris
+beardless iris
+bearded iris
+Japanese iris
+German iris
+snake's head fritillary
+crown imperial
+dogtooth violet
+lily
+African lily
+grape hyacinth
+common camas
+false lily of the valley
+common hyacinth
+camas
+clintonia
+lemon lily
+squaw grass
+scilla
+tulip
+alliaceous plant
+fawn lily
+glacier lily
+yellow adder's tongue
+Turk's-cap
+Turk's-cap
+tiger lily
+tiger lily
+mountain lily
+Easter lily
+tassel hyacinth
+common grape hyacinth
+Tulipa gesneriana
+Darwin tulip
+garlic chive
+wild garlic
+Hottentot fig
+livingstone daisy
+cactus
+nopal
+nopal
+barrel cactus
+night-blooming cereus
+night-blooming cereus
+night-blooming cereus
+cholla
+echinocactus
+mammillaria
+feather ball
+prickly pear
+crab cactus
+saguaro
+Christmas cactus
+hedgehog cactus
+golden barrel cactus
+flamingo flower
+anthurium
+gloxinia
+baneberry
+red baneberry
+poison ivy
+gloriosa
+monkshood
+American holly
+oleander
+poison ash
+herbivore
+big game
+thoroughbred
+creepy-crawly
+young
+domestic animal
+pet
+critter
+larva
+feeder
+male
+pest
+omnivore
+predator
+chordate
+work animal
+invertebrate
+female
+marine animal
+scavenger
+hexapod
+mate
+prey
+carnivore
+young mammal
+orphan
+spat
+young bird
+hatchling
+foal
+kitten
+calf
+pup
+calf
+lamb
+baby
+puppy
+suckling
+cub
+piglet
+nestling
+fledgling
+head
+stray
+feeder
+tadpole
+caterpillar
+nymph
+doodlebug
+tobacco hornworm
+cabbageworm
+tomato hornworm
+silkworm
+cutworm
+woolly bear
+measuring worm
+armyworm
+silkworm
+tussock caterpillar
+tent caterpillar
+colt
+ridgeling
+sire
+sea squirt
+ascidian
+vertebrate
+aquatic vertebrate
+amphibian
+mammal
+baby
+fetus
+quadruped
+reptile
+bird
+fish
+lamprey
+teleost fish
+food fish
+elasmobranch
+ganoid
+trumpetfish
+pipefish
+seahorse
+spiny-finned fish
+soft-finned fish
+needlefish
+beluga
+gar
+bowfin
+paddlefish
+sturgeon
+percoid fish
+dragonet
+frogfish
+barracuda
+soldierfish
+goosefish
+scorpaenoid
+flatfish
+great barracuda
+plectognath
+snook
+perch
+perch
+dolphinfish
+freshwater bass
+scombroid
+bass
+parrotfish
+sea bream
+grunt
+flathead
+bluefish
+carangid fish
+damselfish
+butterfly fish
+mudskipper
+pike
+goby
+tautog
+sunfish
+snapper
+snapper
+sciaenid fish
+wolffish
+cichlid
+wrasse
+yellow perch
+European perch
+walleye
+mackerel
+skipjack
+black marlin
+sailfish
+marlin
+bonito
+tuna
+wahoo
+Spanish mackerel
+Spanish mackerel
+cero
+king mackerel
+bluefin
+yellowfin
+jack
+permit
+scad
+crevalle jack
+kingfish
+amberjack
+yellowtail
+horse mackerel
+horse mackerel
+clown anemone fish
+sergeant major
+anemone fish
+chaetodon
+rock beauty
+angelfish
+northern pike
+pickerel
+muskellunge
+black bass
+pumpkinseed
+freshwater bream
+bluegill
+crappie
+smallmouth
+largemouth
+sea trout
+croaker
+kingfish
+mulloway
+red drum
+white croaker
+white croaker
+scorpaenid
+flathead
+scorpionfish
+lionfish
+stonefish
+rockfish
+plaice
+flounder
+halibut
+cowfish
+boxfish
+ocean sunfish
+puffer
+spiny puffer
+triggerfish
+balloonfish
+porcupinefish
+tarpon
+bonefish
+pollack
+anchovy
+lizardfish
+catfish
+cypriniform fish
+eel
+clupeid fish
+European catfish
+flathead catfish
+channel catfish
+blue catfish
+characin
+electric eel
+cyprinodont
+loach
+cyprinid
+topminnow
+piranha
+cardinal tetra
+tetra
+killifish
+striped killifish
+guppy
+swordtail
+carp
+minnow
+tench
+crucian carp
+goldfish
+gudgeon
+platy
+mosquitofish
+conger
+tuna
+moray
+sardine
+pilchard
+sea bass
+trout
+salmon
+barracouta
+grouper
+striped bass
+jewfish
+hind
+sea trout
+brook trout
+rainbow trout
+brown trout
+lake trout
+chinook
+Atlantic salmon
+redfish
+coho
+landlocked salmon
+shark
+ray
+sand tiger
+angel shark
+nurse shark
+requiem shark
+smooth dogfish
+hammerhead
+mackerel shark
+whale shark
+bull shark
+blue shark
+sandbar shark
+blacktip shark
+whitetip shark
+tiger shark
+lemon shark
+whitetip shark
+smoothhound
+great white shark
+mako
+porbeagle
+stingray
+electric ray
+spotted eagle ray
+Atlantic manta
+manta
+skate
+eagle ray
+salamander
+frog
+spotted salamander
+newt
+European fire salamander
+slender salamander
+ambystomid
+eft
+common newt
+red eft
+spotted salamander
+axolotl
+tiger salamander
+true toad
+true frog
+tailed frog
+crapaud
+tree toad
+tree frog
+natterjack
+Eurasian green toad
+bufo
+American toad
+agua
+western toad
+European toad
+grass frog
+wood-frog
+bullfrog
+leopard frog
+pickerel frog
+green frog
+spring peeper
+chorus frog
+placental
+tusker
+monotreme
+marsupial
+female mammal
+aardvark
+livestock
+insectivore
+hyrax
+doe
+edentate
+stag
+bull
+primate
+carnivore
+bat
+aquatic mammal
+lagomorph
+rock hyrax
+yearling
+rodent
+cow
+pachyderm
+buck
+pangolin
+ungulate
+shrew
+hedgehog
+peba
+sloth
+armadillo
+anteater
+two-toed sloth
+two-toed sloth
+three-toed sloth
+ant bear
+tamandua
+simian
+tarsier
+homo
+ape
+lemur
+monkey
+Homo sapiens sapiens
+Homo sapiens
+Neandertal man
+anthropoid ape
+lesser ape
+great ape
+siamang
+gibbon
+chimpanzee
+orangutan
+gorilla
+pygmy chimpanzee
+central chimpanzee
+western lowland gorilla
+mountain gorilla
+silverback
+indri
+Madagascar cat
+potto
+galago
+slow loris
+Old World monkey
+New World monkey
+baboon
+vervet
+proboscis monkey
+colobus
+patas
+macaque
+guenon
+langur
+chacma
+mandrill
+Barbary ape
+rhesus
+spider monkey
+marmoset
+squirrel monkey
+titi
+capuchin
+howler monkey
+tamarin
+pygmy marmoset
+procyonid
+feline
+viverrine
+canine
+musteline mammal
+bear
+coati
+common raccoon
+lesser panda
+raccoon
+kinkajou
+giant panda
+big cat
+cat
+jaguar
+tiger
+leopard
+cheetah
+lion
+snow leopard
+tigress
+Bengal tiger
+tiger cub
+lioness
+lion cub
+domestic cat
+wildcat
+tabby
+tiger cat
+tabby
+tortoiseshell
+Manx
+Egyptian cat
+Abyssinian
+kitty
+Angora
+Persian cat
+Burmese cat
+Siamese cat
+alley cat
+tom
+mouser
+margay
+ocelot
+lynx
+cougar
+European wildcat
+serval
+manul
+sand cat
+common lynx
+bobcat
+caracal
+Canada lynx
+meerkat
+genet
+mongoose
+slender-tailed meerkat
+suricate
+dog
+wild dog
+wolf
+bitch
+jackal
+fox
+hyena
+pug
+corgi
+Great Pyrenees
+Brabancon griffon
+poodle
+cur
+Leonberg
+griffon
+dalmatian
+pooch
+spitz
+toy dog
+hunting dog
+working dog
+basenji
+Mexican hairless
+Newfoundland
+lapdog
+Cardigan
+Pembroke
+standard poodle
+toy poodle
+miniature poodle
+Pomeranian
+keeshond
+chow
+Samoyed
+toy spaniel
+Shih-Tzu
+toy terrier
+Maltese dog
+Japanese spaniel
+Chihuahua
+Pekinese
+King Charles spaniel
+Blenheim spaniel
+papillon
+terrier
+Rhodesian ridgeback
+sausage dog
+sporting dog
+hound
+dachshund
+Dandie Dinmont
+schnauzer
+wirehair
+Airedale
+West Highland white terrier
+Kerry blue terrier
+Norfolk terrier
+Border terrier
+Yorkshire terrier
+wire-haired fox terrier
+Bedlington terrier
+Tibetan terrier
+silky terrier
+Lhasa
+Scotch terrier
+cairn
+Boston bull
+fox terrier
+Australian terrier
+bullterrier
+Norwich terrier
+Irish terrier
+rat terrier
+soft-coated wheaten terrier
+standard schnauzer
+giant schnauzer
+miniature schnauzer
+Lakeland terrier
+Welsh terrier
+Sealyham terrier
+Staffordshire bullterrier
+American Staffordshire terrier
+Manchester terrier
+toy Manchester
+water dog
+pointer
+bird dog
+setter
+spaniel
+retriever
+vizsla
+German short-haired pointer
+Gordon setter
+English setter
+Irish setter
+cocker spaniel
+water spaniel
+springer spaniel
+Brittany spaniel
+clumber
+Sussex spaniel
+Irish water spaniel
+English springer
+Welsh springer spaniel
+flat-coated retriever
+golden retriever
+curly-coated retriever
+Chesapeake Bay retriever
+Labrador retriever
+otterhound
+bloodhound
+wolfhound
+basset
+Ibizan hound
+Norwegian elkhound
+coonhound
+Saluki
+Afghan hound
+black-and-tan coonhound
+bluetick
+Scottish deerhound
+redbone
+foxhound
+beagle
+Weimaraner
+greyhound
+borzoi
+Irish wolfhound
+English foxhound
+Walker hound
+whippet
+Italian greyhound
+Great Dane
+watchdog
+Eskimo dog
+Tibetan mastiff
+sled dog
+Saint Bernard
+French bulldog
+police dog
+bulldog
+Sennenhunde
+bull mastiff
+shepherd dog
+boxer
+mastiff
+kuvasz
+housedog
+pinscher
+schipperke
+Doberman
+miniature pinscher
+affenpinscher
+Siberian husky
+malamute
+Greater Swiss Mountain dog
+EntleBucher
+Bernese mountain dog
+Appenzeller
+Belgian sheepdog
+kelpie
+Shetland sheepdog
+komondor
+Border collie
+collie
+Rottweiler
+Old English sheepdog
+German shepherd
+briard
+Bouvier des Flandres
+groenendael
+malinois
+African hunting dog
+dingo
+dhole
+coyote
+wolf pup
+red wolf
+white wolf
+timber wolf
+red fox
+red fox
+kit fox
+Arctic fox
+grey fox
+kit fox
+spotted hyena
+striped hyena
+mink
+black-footed ferret
+striped skunk
+pine marten
+sea otter
+otter
+weasel
+polecat
+glutton
+skunk
+badger
+ferret
+river otter
+Eurasian otter
+ice bear
+American black bear
+bear cub
+Asiatic black bear
+brown bear
+sloth bear
+grizzly
+Alaskan brown bear
+carnivorous bat
+flying fox
+fruit bat
+brown bat
+vespertilian bat
+pallid bat
+pipistrelle
+cetacean
+sea cow
+pinniped mammal
+whale
+toothed whale
+baleen whale
+dolphin
+bottle-nosed whale
+porpoise
+common dolphin
+bottlenose dolphin
+pilot whale
+killer whale
+white whale
+Pacific bottlenose dolphin
+Atlantic bottlenose dolphin
+grey whale
+rorqual
+blue whale
+lesser rorqual
+finback
+manatee
+dugong
+walrus
+seal
+earless seal
+eared seal
+elephant seal
+harbor seal
+harp seal
+fur seal
+fur seal
+sea lion
+California sea lion
+Australian sea lion
+Steller sea lion
+pika
+leporid
+rabbit
+hare
+eastern cottontail
+wood rabbit
+bunny
+European rabbit
+lapin
+Angora
+rabbit ears
+snowshoe hare
+European hare
+jackrabbit
+chinchilla
+rat
+capybara
+golden hamster
+water vole
+porcupine
+coypu
+vole
+beaver
+hamster
+prairie dog
+squirrel
+marmot
+blacktail prairie dog
+cavy
+gerbil
+mouse
+muskrat
+gopher
+brown rat
+black rat
+chipmunk
+ground squirrel
+eastern chipmunk
+tree squirrel
+rock squirrel
+mantled ground squirrel
+eastern grey squirrel
+red squirrel
+black squirrel
+American red squirrel
+fox squirrel
+hoary marmot
+groundhog
+aperea
+guinea pig
+field mouse
+house mouse
+elephant
+African elephant
+Indian elephant
+even-toed ungulate
+odd-toed ungulate
+ruminant
+camel
+swine
+llama
+vicuna
+collared peccary
+hippopotamus
+peccary
+pronghorn
+deer
+bovid
+giraffe
+okapi
+woodland caribou
+caribou
+fallow deer
+elk
+hart
+mule deer
+fawn
+red deer
+muntjac
+Virginia deer
+wapiti
+Japanese deer
+roe deer
+black-tailed deer
+wild sheep
+bison
+musk ox
+Old World buffalo
+bovine
+antelope
+sheep
+goat antelope
+goat
+aoudad
+mountain sheep
+Dall sheep
+bighorn
+mouflon
+American bison
+wisent
+carabao
+water buffalo
+Cape buffalo
+Brahman
+ox
+zebu
+cattle
+yak
+gaur
+beef
+ox
+bull
+bullock
+heifer
+cow
+dairy cattle
+longhorn
+Charolais
+Hereford
+Durham
+Aberdeen Angus
+Galloway
+Friesian
+Brown Swiss
+kudu
+addax
+blackbuck
+waterbuck
+eland
+steenbok
+dik-dik
+gnu
+harnessed antelope
+gerenuk
+sassaby
+impala
+greater kudu
+sable antelope
+hartebeest
+bongo
+gemsbok
+oryx
+gazelle
+nyala
+bushbuck
+Thomson's gazelle
+springbok antelope
+domestic sheep
+black sheep
+ewe
+wether
+ram
+mountain goat
+chamois
+takin
+nanny
+kid
+ibex
+Angora
+domestic goat
+billy
+wild goat
+Bactrian camel
+Arabian camel
+wild boar
+warthog
+boar
+hog
+guanaco
+alpaca
+rhinoceros
+tapir
+equine
+Malayan tapir
+Indian rhinoceros
+black rhinoceros
+white rhinoceros
+horse
+zebra
+ass
+bay
+broodmare
+racehorse
+palomino
+wild horse
+pinto
+hack
+roan
+male horse
+post horse
+liver chestnut
+tarpan
+saddle horse
+chestnut
+harness horse
+polo pony
+workhorse
+mare
+pony
+pony
+sorrel
+yearling
+thoroughbred
+trotting horse
+stud
+stallion
+gelding
+Tennessee walker
+hack
+cavalry horse
+grey
+Morgan
+buckskin
+dun
+Arabian
+quarter horse
+cob
+hackney
+plow horse
+farm horse
+draft horse
+carthorse
+Percheron
+Clydesdale
+shire
+cayuse
+bronco
+mustang
+Welsh pony
+Shetland pony
+Exmoor
+common zebra
+mountain zebra
+grevy's zebra
+jennet
+burro
+domestic ass
+echidna
+platypus
+echidna
+kangaroo
+koala
+wombat
+common opossum
+opossum
+dasyurid marsupial
+phalanger
+giant kangaroo
+wallaby
+rock wallaby
+tree wallaby
+Tasmanian devil
+numbat
+chelonian
+diapsid
+turtle
+Western box turtle
+box turtle
+common snapping turtle
+terrapin
+soft-shelled turtle
+painted turtle
+sea turtle
+snapping turtle
+slider
+tortoise
+mud turtle
+cooter
+hawksbill turtle
+loggerhead
+green turtle
+leatherback turtle
+ridley
+Pacific ridley
+Atlantic ridley
+giant tortoise
+gopher tortoise
+European tortoise
+desert tortoise
+crocodilian reptile
+snake
+tuatara
+lizard
+dinosaur
+alligator
+crocodile
+American alligator
+caiman
+Asian crocodile
+African crocodile
+blind snake
+viper
+sea snake
+elapid
+constrictor
+colubrid snake
+horned viper
+asp
+adder
+puff adder
+pit viper
+water moccasin
+copperhead
+rattlesnake
+ground rattler
+massasauga
+diamondback
+Mojave rattlesnake
+timber rattlesnake
+prairie rattlesnake
+Western diamondback
+sidewinder
+rock rattlesnake
+speckled rattlesnake
+cobra
+green mamba
+taipan
+copperhead
+mamba
+coral snake
+coral snake
+Indian cobra
+hamadryad
+boa
+python
+rosy boa
+boa constrictor
+anaconda
+reticulated python
+carpet snake
+rock python
+blacksnake
+garter snake
+bull snake
+hognose snake
+rat snake
+whip-snake
+water snake
+green snake
+racer
+green snake
+thunder snake
+ringneck snake
+vine snake
+king snake
+night snake
+ribbon snake
+common garter snake
+pine snake
+gopher snake
+corn snake
+black rat snake
+grass snake
+common water snake
+water moccasin
+smooth green snake
+rough green snake
+milk snake
+common kingsnake
+banded gecko
+chameleon
+monitor
+skink
+Gila monster
+Komodo dragon
+whiptail
+iguanid
+agamid
+gecko
+African chameleon
+lacertid lizard
+anguid lizard
+horned lizard
+tree lizard
+chuckwalla
+American chameleon
+basilisk
+side-blotched lizard
+spiny lizard
+collared lizard
+common iguana
+marine iguana
+leopard lizard
+western fence lizard
+fence lizard
+agama
+mountain devil
+frilled lizard
+green lizard
+sand lizard
+blindworm
+alligator lizard
+ornithischian
+tyrannosaur
+stegosaur
+triceratops
+bird of passage
+aquatic bird
+passerine
+cock
+hummingbird
+piciform bird
+coraciiform bird
+quetzal
+bird of prey
+caprimulgiform bird
+cuculiform bird
+gamecock
+ratite
+gallinaceous bird
+trogon
+parrot
+carinate
+dickeybird
+hen
+wading bird
+swan
+gallinule
+seabird
+waterfowl
+heron
+crested cariama
+trumpeter
+bustard
+ibis
+stork
+whooping crane
+crane
+limpkin
+chunga
+flamingo
+rail
+spoonbill
+shoebill
+shorebird
+great blue heron
+night heron
+little blue heron
+boatbill
+great white heron
+egret
+bittern
+black-crowned night heron
+yellow-crowned night heron
+great white heron
+little egret
+snowy egret
+American egret
+cattle egret
+least bittern
+American bittern
+wood ibis
+sacred ibis
+marabou
+black stork
+white stork
+saddlebill
+jabiru
+policeman bird
+wood ibis
+notornis
+weka
+spotted crake
+crake
+coot
+Old World coot
+American coot
+common spoonbill
+roseate spoonbill
+plover
+godwit
+Hudsonian godwit
+stilt
+stone curlew
+oystercatcher
+stilt
+American woodcock
+snipe
+woodcock
+avocet
+sandpiper
+European curlew
+pratincole
+curlew
+phalarope
+golden plover
+ruddy turnstone
+killdeer
+lapwing
+turnstone
+piping plover
+black-necked stilt
+black-winged stilt
+whole snipe
+Wilson's snipe
+great snipe
+dowitcher
+tattler
+greenshank
+willet
+curlew sandpiper
+sanderling
+redshank
+spotted sandpiper
+knot
+red-backed sandpiper
+upland sandpiper
+least sandpiper
+pectoral sandpiper
+ruff
+European sandpiper
+yellowlegs
+greater yellowlegs
+lesser yellowlegs
+red phalarope
+Wilson's phalarope
+pen
+cygnet
+trumpeter
+coscoroba
+mute swan
+cob
+whooper
+black swan
+tundra swan
+whistling swan
+Bewick's swan
+purple gallinule
+European gallinule
+moorhen
+coastal diving bird
+pelagic bird
+grebe
+auk
+loon
+pelecaniform seabird
+sphenisciform seabird
+puffin
+larid
+jaeger
+skimmer
+sea swallow
+gull
+tern
+ivory gull
+mew
+laughing gull
+black-backed gull
+kittiwake
+herring gull
+skua
+parasitic jaeger
+petrel
+albatross
+wandering albatross
+shearwater
+storm petrel
+fulmar
+red-necked grebe
+great crested grebe
+pied-billed grebe
+black-necked grebe
+dabchick
+razorbill
+guillemot
+auklet
+murre
+black guillemot
+common murre
+pigeon guillemot
+frigate bird
+cormorant
+snakebird
+pelican
+gannet
+water turkey
+tropic bird
+white pelican
+Old world white pelican
+solan
+booby
+penguin
+emperor penguin
+jackass penguin
+king penguin
+rock hopper
+Adelie
+horned puffin
+tufted puffin
+Atlantic puffin
+anseriform bird
+goose
+duck
+blue goose
+barnacle goose
+snow goose
+Chinese goose
+common brant goose
+brant
+gosling
+greylag
+gander
+honker
+diving duck
+scaup
+shelduck
+wood drake
+bufflehead
+black duck
+mandarin duck
+American widgeon
+pintail
+mallard
+sheldrake
+teal
+Barrow's goldeneye
+quack-quack
+wild duck
+ruddy duck
+wood duck
+drake
+muscovy duck
+shoveler
+dabbling duck
+widgeon
+sea duck
+redhead
+pochard
+goldeneye
+canvasback
+duckling
+greater scaup
+lesser scaup
+garganey
+greenwing
+bluewing
+eider
+old squaw
+merganser
+scoter
+common scoter
+American merganser
+red-breasted merganser
+hooded merganser
+smew
+goosander
+wren
+broadbill
+tyrannid
+oscine
+scrubbird
+sparrow
+marsh wren
+rock wren
+winter wren
+cactus wren
+house wren
+Carolina wren
+ovenbird
+manakin
+pitta
+woodhewer
+New World flycatcher
+kingbird
+phoebe
+pewee
+vermillion flycatcher
+western wood pewee
+scissortail
+grey kingbird
+eastern kingbird
+Arkansas kingbird
+warbler
+brown creeper
+corvine bird
+starling
+pipit
+titmouse
+fairy bluebird
+thrush
+hedge sparrow
+wood swallow
+shrike
+lark
+golden oriole
+Old World flycatcher
+thrasher
+vireo
+tanager
+honeycreeper
+finch
+bowerbird
+water ouzel
+accentor
+mockingbird
+brown thrasher
+skylark
+catbird
+satin bowerbird
+waxwing
+red-eyed vireo
+New World oriole
+Old World oriole
+babbler
+swallow
+creeper
+songbird
+Australian magpie
+wagtail
+meadow pipit
+spotted flycatcher
+weaver
+nuthatch
+greater whitethroat
+New World warbler
+kinglet
+Old World warbler
+gnatcatcher
+lesser whitethroat
+yellowthroat
+common yellowthroat
+ovenbird
+parula warbler
+Blackburn
+yellow warbler
+American redstart
+yellow-breasted chat
+Audubon's warbler
+Wilson's warbler
+Cape May warbler
+myrtle warbler
+goldcrest
+ruby-crowned kinglet
+tailorbird
+sedge warbler
+wren warbler
+blackcap
+rook
+Clark's nutcracker
+jackdaw
+European magpie
+jay
+raven
+crow
+magpie
+American crow
+blue jay
+Canada jay
+common starling
+hill myna
+myna
+bushtit
+chickadee
+blue tit
+tufted titmouse
+Carolina chickadee
+black-capped chickadee
+robin
+robin
+hermit thrush
+redwing
+fieldfare
+song thrush
+nightingale
+blackbird
+missel thrush
+ring ouzel
+wheatear
+bluebird
+thrush nightingale
+bluethroat
+redstart
+bulbul
+Old World chat
+wood thrush
+stonechat
+whinchat
+butcherbird
+loggerhead shrike
+bush shrike
+northern shrike
+European shrike
+western tanager
+summer tanager
+scarlet tanager
+serin
+bullfinch
+grosbeak
+goldfinch
+New World sparrow
+crossbill
+bunting
+linnet
+cardinal
+siskin
+common canary
+towhee
+purple finch
+honeycreeper
+brambling
+New World goldfinch
+pine siskin
+redpoll
+dark-eyed junco
+house finch
+chaffinch
+canary
+redpoll
+junco
+pine grosbeak
+evening grosbeak
+hawfinch
+song sparrow
+white-throated sparrow
+tree sparrow
+field sparrow
+white-crowned sparrow
+swamp sparrow
+chipping sparrow
+indigo bunting
+reed bunting
+snow bunting
+ortolan
+yellowhammer
+cedar waxwing
+Bohemian waxwing
+bobolink
+meadowlark
+northern oriole
+orchard oriole
+New World blackbird
+eastern meadowlark
+western meadowlark
+Bullock's oriole
+Baltimore oriole
+purple grackle
+cowbird
+grackle
+red-winged blackbird
+white-bellied swallow
+tree swallow
+martin
+barn swallow
+cliff swallow
+house martin
+bank martin
+butcherbird
+currawong
+Java sparrow
+zebra finch
+red-breasted nuthatch
+European nuthatch
+white-breasted nuthatch
+English sparrow
+tree sparrow
+thornbill
+Archilochus colubris
+jacamar
+woodpecker
+barbet
+toucanet
+toucan
+flicker
+downy woodpecker
+green woodpecker
+sapsucker
+wryneck
+redheaded woodpecker
+yellow-shafted flicker
+red-breasted sapsucker
+yellow-bellied sapsucker
+kingfisher
+roller
+motmot
+Euopean hoopoe
+hornbill
+European roller
+hoopoe
+bee eater
+kookaburra
+Eurasian kingfisher
+belted kingfisher
+vulture
+hawk
+secretary bird
+eagle
+owl
+Old World vulture
+New World vulture
+Egyptian vulture
+bearded vulture
+black vulture
+griffon vulture
+black vulture
+buzzard
+king vulture
+condor
+Andean condor
+California condor
+harrier
+goshawk
+red-shouldered hawk
+honey buzzard
+falcon
+harrier eagle
+Cooper's hawk
+osprey
+kite
+rough-legged hawk
+buzzard
+sparrow hawk
+marsh harrier
+marsh hawk
+carancha
+gyrfalcon
+peregrine
+caracara
+hobby
+pigeon hawk
+kestrel
+sparrow hawk
+white-tailed kite
+swallow-tailed kite
+black kite
+eaglet
+golden eagle
+sea eagle
+bald eagle
+harpy
+tawny eagle
+fishing eagle
+ern
+tawny owl
+owlet
+spotted owl
+screech owl
+horned owl
+screech owl
+little owl
+barn owl
+scops owl
+Old World scops owl
+hawk owl
+great horned owl
+barred owl
+long-eared owl
+great grey owl
+frogmouth
+goatsucker
+touraco
+cuckoo
+coucal
+roadrunner
+rhea
+rhea
+ostrich
+emu
+cassowary
+domestic fowl
+columbiform bird
+brush turkey
+red jungle fowl
+jungle fowl
+game bird
+turkey cock
+bantam
+turkey
+guinea fowl
+chicken
+cockerel
+cock
+Rhode Island red
+chick
+Orpington
+hen
+pullet
+brood hen
+sandgrouse
+pigeon
+domestic pigeon
+dove
+wood pigeon
+rock dove
+homing pigeon
+roller
+Streptopelia turtur
+turtledove
+Australian turtledove
+mourning dove
+phasianid
+tinamou
+grouse
+pheasant
+quail
+partridge
+tragopan
+ring-necked pheasant
+golden pheasant
+peafowl
+peahen
+blue peafowl
+peacock
+green peafowl
+bobwhite
+California quail
+northern bobwhite
+red-legged partridge
+Hungarian partridge
+spruce grouse
+prairie chicken
+capercaillie
+ruffed grouse
+sage grouse
+moorhen
+black grouse
+ptarmigan
+cockateel
+parakeet
+cockatoo
+poll
+kea
+African grey
+macaw
+amazon
+lovebird
+lory
+popinjay
+budgerigar
+ring-necked parakeet
+sulphur-crested cockatoo
+pink cockatoo
+rainbow lorikeet
+lorikeet
+beast of burden
+draft animal
+ctenophore
+worm
+mollusk
+echinoderm
+coelenterate
+arthropod
+sponge
+nematode
+annelid
+flatworm
+medicinal leech
+earthworm
+chiton
+bivalve
+cephalopod
+gastropod
+oyster
+ark shell
+clam
+mussel
+cockle
+scallop
+pearl oyster
+soft-shell clam
+quahog
+giant clam
+freshwater mussel
+edible mussel
+zebra mussel
+octopod
+chambered nautilus
+cuttlefish
+octopus
+paper nautilus
+sea hare
+cowrie
+conch
+seasnail
+ormer
+tiger cowrie
+sea slug
+slug
+snail
+common limpet
+whelk
+nerita
+edible snail
+brown snail
+garden snail
+starfish
+feather star
+sand dollar
+sea urchin
+sea cucumber
+brittle star
+polyp
+anthozoan
+Portuguese man-of-war
+jellyfish
+sea pen
+sea anemone
+coral
+stony coral
+gorgonian
+sea fan
+mushroom coral
+brain coral
+centipede
+crustacean
+trilobite
+millipede
+arachnid
+horseshoe crab
+instar
+insect
+house centipede
+daphnia
+brachyuran
+mantis shrimp
+malacostracan crustacean
+decapod crustacean
+isopod
+amphipod
+pill bug
+woodlouse
+lobster
+shrimp
+hermit crab
+prawn
+crab
+crayfish
+Norway lobster
+spiny lobster
+American lobster
+king crab
+blue crab
+rock crab
+Dungeness crab
+fiddler crab
+European spider crab
+scorpion
+harvestman
+acarine
+spider
+tick
+mite
+wood tick
+orb-weaving spider
+European wolf spider
+tarantula
+wolf spider
+garden spider
+black widow
+black and gold garden spider
+barn spider
+orthopterous insect
+hemipterous insect
+neuropteron
+dictyopterous insect
+collembolan
+mayfly
+homopterous insect
+dipterous insect
+earwig
+common European earwig
+phasmid
+pollinator
+bug
+pupa
+walking stick
+scorpion fly
+beetle
+heteropterous insect
+stonefly
+hymenopterous insect
+lepidopterous insect
+chrysalis
+odonate
+silverfish
+worker bee
+grasshopper
+cricket
+katydid
+locust
+true bug
+bedbug
+dobson
+green lacewing
+lacewing
+mantis
+praying mantis
+cockroach
+American cockroach
+German cockroach
+oriental cockroach
+plant louse
+cicada
+meadow spittlebug
+seventeen-year locust
+mealybug
+leafhopper
+aphid
+mosquito
+crane fly
+midge
+fruit fly
+fly
+horse tick
+robber fly
+Asian tiger mosquito
+common mosquito
+bee fly
+horsefly
+flesh fly
+blowfly
+housefly
+greenbottle
+bluebottle
+Colorado potato beetle
+firefly
+ground beetle
+sawyer
+ladybug
+lamellicorn beetle
+rove beetle
+Asian longhorned beetle
+leaf beetle
+elaterid beetle
+click beetle
+tiger beetle
+weevil
+long-horned beetle
+Hippodamia convergens
+vedalia
+scarabaeid beetle
+stag beetle
+rose chafer
+June beetle
+Japanese beetle
+rhinoceros beetle
+dung beetle
+scarab
+cockchafer
+water strider
+wheel bug
+wasp
+ichneumon fly
+ant
+bee
+cicada killer
+digger wasp
+vespid
+hornet
+paper wasp
+common wasp
+giant hornet
+yellow jacket
+carpenter ant
+fire ant
+wood ant
+carpenter bee
+honeybee
+mason bee
+andrena
+leaf-cutting bee
+bumblebee
+Africanized bee
+black bee
+butterfly
+moth
+lycaenid
+nymphalid
+sulphur butterfly
+ringlet
+monarch
+cabbage butterfly
+blue
+hairstreak
+copper
+tortoiseshell
+fritillary
+admiral
+banded purple
+peacock
+red-spotted purple
+painted beauty
+mourning cloak
+viceroy
+red admiral
+white admiral
+comma
+small white
+large white
+cinnabar
+saturniid
+noctuid moth
+hawkmoth
+tea tortrix
+geometrid
+tineid
+atlas moth
+emperor
+polyphemus moth
+cecropia
+luna moth
+carpet moth
+clothes moth
+dragonfly
+damselfly
+hen
+filly
+dam
+herpes
+protoctist
+herpes simplex
+herpes zoster
+cytomegalovirus
+herpes varicella zoster
+alga
+protozoan
+seagrass
+pond scum
+green algae
+plasmodium
+ameba
+ciliate
+paramecium
+sphagnum
+hepatica
+liverwort
+peer
+birth
+adult
+juvenile
+countrywoman
+businessperson
+native
+celebrant
+native
+Filipino
+male
+Gemini
+onlooker
+queen
+referee
+commoner
+expert
+newcomer
+face
+demonstrator
+orphan
+Black woman
+contestant
+bullfighter
+lowerclassman
+candidate
+friend
+life
+anomaly
+actor
+thrower
+creature
+child
+sheep
+scuba diver
+dancer
+garbage man
+entertainer
+lover
+unfortunate
+anti
+defender
+sphinx
+Indian
+patient
+Slav
+White
+brick
+recipient
+religious person
+rescuer
+Latin
+money handler
+rich person
+domestic partner
+creator
+consumer
+worker
+groom
+boy scout
+inhabitant
+African
+fan
+eager beaver
+leader
+schoolmate
+man
+philatelist
+advocate
+eccentric
+bad person
+transvestite
+citizen
+communicator
+nonworker
+parrot
+intellectual
+nonsmoker
+student
+chameleon
+combatant
+platinum blond
+appointee
+unpleasant person
+politician
+ruler
+ancient
+spectator
+right-hander
+traveler
+scientist
+picker
+female
+acquaintance
+Black
+relative
+beard
+redhead
+sleeper
+computer user
+associate
+participant
+member
+raiser
+groom
+bride
+commissioner
+director
+tribesman
+board member
+important person
+professional
+oldster
+celebrity
+very important person
+serjeant-at-law
+educator
+health professional
+teacher
+reading teacher
+schoolmaster
+nurse
+medical practitioner
+pharmacist
+head nurse
+probationer
+doctor
+surgeon
+specialist
+house physician
+cardiologist
+radiologist
+schoolchild
+child
+bairn
+orphan
+entrepreneur
+baron
+agent
+merchant
+certified public accountant
+syndic
+insurance broker
+fishmonger
+vintner
+peddler
+seller
+male child
+mother's boy
+son
+man
+cub
+farm boy
+bat boy
+Herr
+hunk
+Peter Pan
+patriarch
+adonis
+young buck
+stud
+guy
+patriarch
+sleuth
+archer
+authority
+military attache
+therapist
+technician
+black belt
+high priest
+critic
+taster
+panelist
+physical therapist
+osteopath
+player
+athlete
+rival
+billiard player
+medalist
+seeded player
+chess master
+pool player
+football player
+tennis player
+ball hawk
+vaulter
+runner
+skater
+acrobat
+climber
+diver
+alpinist
+soccer player
+winger
+tennis pro
+forward
+sport
+basketball player
+miler
+ballplayer
+gymnast
+back
+lineman
+halfback
+quarterback
+tailback
+skateboarder
+speedskater
+circus acrobat
+aerialist
+fielder
+designated hitter
+base runner
+minor leaguer
+first baseman
+outfielder
+right fielder
+infielder
+semifinalist
+foe
+matador
+picador
+banderillero
+buddy
+mate
+flatmate
+pitcher
+closer
+right-handed pitcher
+folk dancer
+square dancer
+morris dancer
+compere
+master of ceremonies
+caricaturist
+performer
+fire-eater
+executant
+dancer
+juggler
+puppeteer
+actor
+clown
+musician
+dancing-master
+ballet dancer
+understudy
+starlet
+tenor saxophonist
+percussionist
+guitarist
+keyboardist
+trumpeter
+sitar player
+singer
+oboist
+cellist
+violist
+flutist
+organist
+rock star
+drummer
+songster
+bass
+fiance
+darling
+fancier
+soul mate
+sweetheart
+kisser
+amputee
+homeless
+casualty
+guard
+fireman
+zoo keeper
+lawman
+military policeman
+attorney general
+policeman
+bobby
+Mountie
+detective
+motorcycle cop
+trooper
+traffic cop
+Kiliwa
+Biloxi
+Chickasaw
+Kickapoo
+Arab
+white man
+Omani
+Bedouin
+Yemeni
+protegee
+heiress
+swami
+Buddhist
+Muslim
+novitiate
+religious
+Muslimah
+Sufi
+mother
+monk
+Sister
+treasurer
+ratepayer
+state treasurer
+bursar
+cobbler
+artist
+choreographer
+farmer
+musician
+stylist
+sculptor
+press photographer
+songwriter
+arranger
+beekeeper
+breeder
+agriculturist
+drinker
+policyholder
+drinker
+concert-goer
+drunkard
+beer drinker
+maid
+employee
+assistant
+gondolier
+skilled worker
+skidder
+boatman
+waiter
+bartender
+staff member
+salesperson
+workman
+settler
+breadwinner
+waitress
+salesman
+gardener
+laborer
+mill-hand
+hired hand
+coal miner
+horse wrangler
+goat herder
+farmhand
+attendant
+cog
+model
+escort
+caddie
+companion
+lifeguard
+steward
+color guard
+honor guard
+cover girl
+artist's model
+electrician
+official
+falconer
+balloonist
+craftsman
+pilot
+blacksmith
+trawler
+mender
+baker
+serviceman
+painter
+diplomat
+judge
+incumbent
+appointee
+presbyter
+ambassador
+high commissioner
+plenipotentiary
+glassblower
+carpenter
+coiffeur
+machinist
+wright
+hairdresser
+fighter pilot
+copilot
+artilleryman
+Navy SEAL
+military officer
+enlisted person
+noncommissioned officer
+commanding officer
+naval commander
+adjutant general
+commander in chief
+commissioned officer
+army officer
+adjutant
+inspector general
+sergeant
+first sergeant
+staff sergeant
+commissioned military officer
+commissioned naval officer
+line officer
+major
+lieutenant
+first lieutenant
+marshal
+captain
+general
+lieutenant colonel
+lieutenant commander
+rear admiral
+soldier
+enlisted man
+tanker
+reservist
+Unknown Soldier
+private
+recruit
+yard bird
+villager
+Tahitian
+American
+Asian
+American
+Polynesian
+European
+New Zealander
+North Carolinian
+Minnesotan
+Nebraskan
+Floridian
+Afghan
+Tibetan
+Mongol
+Papuan
+Indian
+Jordanian
+Japanese
+Malay
+Korean
+Timorese
+Bornean
+Lao
+Iraqi
+Gujarati
+Punjabi
+West Indian
+Latin American
+North American
+South American
+Bahamian
+Barbadian
+Haitian
+Central American
+Canadian
+Mexican
+Nicaraguan
+Mexican-American
+Bolivian
+Guyanese
+Albanian
+Byelorussian
+Monegasque
+Frank
+Scandinavian
+Laconian
+Netherlander
+Slovene
+Sabine
+Bulgarian
+Romanian
+Lithuanian
+Englishwoman
+Britisher
+Yugoslav
+Dubliner
+Parisian
+Eritrean
+Tanzanian
+Zulu
+Black African
+Cameroonian
+Sudanese
+Senegalese
+Kenyan
+Togolese
+Ugandan
+Liberian
+Herero
+Zimbabwean
+Nigerian
+Gambian
+Tuareg
+Guinean
+Ethiopian
+South African
+mayor
+politician
+trainer
+employer
+Speaker
+lawgiver
+cheerleader
+head
+aristocrat
+spiritual leader
+instigator
+mistress
+boss
+demagogue
+Labourite
+animal trainer
+pitching coach
+legislator
+deputy
+senator
+administrator
+department head
+secretary
+manageress
+executive
+hotelier
+chief executive officer
+Treasury
+minister
+Secretary of State
+Secretary of the Interior
+duchess
+viscount
+clergyman
+lama
+rabbi
+Dalai Lama
+officiant
+priest
+cleric
+vicar
+Father
+bishop
+diocesan
+cardinal
+metropolitan
+federalist
+supporter
+ambassador
+protectionist
+loyalist
+cheerleader
+adulteress
+wrongdoer
+hypocrite
+abettor
+skinhead
+biographer
+disk jockey
+speaker
+representative
+reporter
+orator
+interlocutor
+organ-grinder
+head of state
+alderman
+resident commissioner
+President of the United States
+president
+television reporter
+anchor
+retiree
+sunbather
+camper
+scholar
+exponent
+casuist
+futurist
+licentiate
+reader
+brawler
+boxer
+wrestler
+flyweight
+middleweight
+sparring partner
+prizefighter
+light heavyweight
+featherweight
+lightweight
+heavyweight
+flyweight
+sumo wrestler
+bantamweight
+egotist
+fire-eater
+upstart
+bragger
+exhibitionist
+sovereign
+Pharaoh
+Cheops
+sheik
+rider
+motorcyclist
+musher
+astronaut
+pedestrian
+mover
+commuter
+pilgrim
+skin-diver
+settler
+tourist
+runner
+gringo
+unicyclist
+hang glider
+jockey
+horseman
+saunterer
+marcher
+hitter
+scrambler
+psycholinguist
+social scientist
+lumper
+sociologist
+political scientist
+economist
+econometrician
+microeconomist
+female child
+woman
+mother's daughter
+girl wonder
+Boy Scout
+Cub Scout
+enchantress
+lady
+old woman
+nymph
+donna
+bridesmaid
+smasher
+primigravida
+signorina
+girl
+beldam
+heroine
+widow
+call girl
+baggage
+wife
+gal
+baby
+lass
+maid
+first lady
+old lady
+crown princess
+father-in-law
+cousin
+kinswoman
+ancestor
+kinsman
+second cousin
+in-law
+kin
+twin
+offspring
+sibling
+niece
+aunt
+great-niece
+sister
+great-aunt
+little sister
+big sister
+parent
+forefather
+forebear
+patriarch
+mater
+father
+mother
+dad
+old man
+great grandparent
+grandparent
+great grandmother
+nan
+grandma
+grandfather
+great-nephew
+little brother
+grandchild
+firstborn
+child
+successor
+granddaughter
+great grandchild
+great grandson
+great granddaughter
+baby
+godson
+premature baby
+neonate
+shiitake
+common stinkhorn
+earthball
+truffle
+hen-of-the-woods
+gyromitra
+mildew
+lichen
+white fungus
+true slime mold
+slime mold
+club fungus
+earthstar
+coral fungus
+false morel
+puffball
+pythium
+helvella
+giant puffball
+Scleroderma citrinum
+jelly fungus
+agaric
+stinkhorn
+discomycete
+basidiomycete
+Phytophthora infestans
+Jew's-ear
+bolete
+powdery mildew
+downy mildew
+reindeer moss
+beard lichen
+Iceland moss
+lecanora
+Sarcoscypha coccinea
+Aleuria aurantia
+gill fungus
+polypore
+agaric
+mushroom
+Polyporus squamosus
+bracket fungus
+Entoloma lividum
+mushroom
+inky cap
+mushroom
+oyster mushroom
+deer mushroom
+parasol mushroom
+fairy-ring mushroom
+royal agaric
+blewits
+honey mushroom
+Pholiota squarrosa
+lepiota
+blushing mushroom
+horse mushroom
+nameko
+winter mushroom
+false deathcap
+shaggymane
+destroying angel
+toadstool
+chanterelle
+meadow mushroom
+death cap
+fly agaric
+morel
+common morel
+black morel
+Boletus edulis
+Boletus luridus
+Boletus chrysenteron
+somatic cell
+histiocyte
+leukocyte
+lymphocyte
+neutrophil
+nest
+tangle
+radiator
+plant part
+rock
+comet
+cadaver
+star
+snowdrift
+covering
+aerie
+wasp's nest
+lip
+tendril
+plant organ
+mycelium
+reproductive structure
+leaf
+root
+stalk
+hypanthium
+flower
+fruit
+pistil
+rosebud
+inflorescence
+floret
+umbel
+flower cluster
+panicle
+olive
+ear
+buckthorn berry
+berry
+wild cherry
+acorn
+rowanberry
+mealie
+gourd
+seed
+hip
+juniper berry
+pod
+corn
+coffee bean
+nut
+buckeye
+oilseed
+bean
+edible seed
+edible nut
+pine nut
+macadamia nut
+pistachio
+hazelnut
+walnut
+cashew
+chestnut
+pecan
+peanut
+coconut
+linseed
+rapeseed
+broad bean
+soy
+cumin
+sunflower seed
+pumpkin seed
+legume
+okra
+chickpea
+pea
+cowpea
+garden pea
+lentil
+dandelion green
+frond
+petal
+cassava
+chicory
+tuber
+spadix
+branchlet
+bulb
+petiole
+scape
+cornstalk
+rattan
+Jerusalem artichoke
+yam
+squill
+onion
+belay
+outcrop
+tor
+supernova
+sun
+shell
+bracteole
+shell
+cassia bark
+snowcap
+perianth
+body covering
+roof
+seashell
+scallop shell
+oyster shell
+exoskeleton
+cuticle
+plastron
+skin
+hair
+scapular
+hairdo
+forelock
+encolure
+facial hair
+pigtail
+thatch
+pompadour
+mustache
+beard
+mustachio
+soup-strainer
+stubble
+soul patch
+weather
+dust storm
+cloud
+snow
+wave
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.tree" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.tree"
new file mode 100644
index 00000000..deb61e2a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/9k.tree"
@@ -0,0 +1,9418 @@
+n00002452 -1
+n00020827 -1
+n00002684 -1
+n11425580 -1
+n05220461 0
+n09225146 0
+n05538625 4
+n01900150 4
+n05225602 4
+n05418717 8
+n05302499 8
+n05578095 8
+n09475179 5
+n09376198 5
+n14877585 1
+n15046900 1
+n00019613 1
+n00021265 1
+n15067877 14
+n09436708 14
+n14915184 15
+n07555863 15
+n07850329 21
+n07849336 21
+n07705711 21
+n07622061 21
+n07594066 21
+n07854982 22
+n07852833 22
+n07852614 22
+n07854184 22
+n07852229 22
+n07851443 22
+n07705931 24
+n07707451 24
+n07752966 33
+n07760859 33
+n07747055 33
+n07754684 33
+n07768694 33
+n07764847 33
+n07768858 33
+n07739125 33
+n07746551 33
+n07753113 33
+n07763987 33
+n07748574 33
+n07751451 33
+n07762244 33
+n07750872 33
+n07742704 33
+n07765208 33
+n07763792 33
+n07767847 33
+n07766173 33
+n07751004 33
+n07760153 33
+n07758680 33
+n07753592 33
+n07751280 33
+n07769731 33
+n07763629 33
+n07755411 33
+n07754451 33
+n07753275 33
+n07764155 33
+n07765073 33
+n07762114 33
+n07762913 33
+n07753743 33
+n07765999 33
+n07765361 33
+n07752377 33
+n07757132 33
+n07769584 33
+n07751148 33
+n07761141 36
+n07761309 36
+n07749731 37
+n07747951 37
+n07749446 37
+n07747607 37
+n07749582 37
+n07750449 37
+n07749969 37
+n07750146 37
+n07748157 79
+n07748416 79
+n07748276 79
+n07748912 81
+n07748753 81
+n07749192 89
+n07749312 89
+n07739344 42
+n07739506 42
+n07742313 94
+n07740220 94
+n07740954 94
+n07740461 96
+n07740342 96
+n07745940 50
+n07767171 50
+n07744246 50
+n07744057 50
+n07744811 50
+n07744682 50
+n07745466 50
+n07743902 50
+n07746334 50
+n07746186 50
+n07743544 50
+n07743224 50
+n07755707 62
+n07756951 62
+n07755929 62
+n07757990 73
+n07757312 73
+n07757511 73
+n07734744 34
+n07719213 34
+n07768423 34
+n07735510 34
+n07718472 34
+n07710283 34
+n07713395 34
+n07708398 34
+n07710007 34
+n07718747 34
+n07708798 34
+n07723039 34
+n07715561 34
+n07709333 34
+n07730406 34
+n07730033 34
+n07733394 34
+n07713267 34
+n07722217 34
+n07817871 34
+n07736813 123
+n07719839 123
+n07712267 123
+n07730207 123
+n07710616 123
+n07710952 142
+n07711569 142
+n07711080 142
+n07713763 124
+n07713895 124
+n07733567 124
+n07715103 124
+n07715221 124
+n07715407 124
+n07714990 124
+n07735687 124
+n07735803 124
+n07714188 147
+n07714448 147
+n07714895 147
+n07714571 147
+n07714078 147
+n07720442 126
+n07734017 126
+n07713074 126
+n07734555 126
+n07720615 160
+n07721325 160
+n07720875 164
+n07721195 164
+n07721018 164
+n07721456 165
+n07722052 165
+n07721942 169
+n07721678 169
+n07734292 161
+n07734183 161
+n07724943 128
+n07725376 128
+n07726095 128
+n07725255 128
+n07729485 175
+n07726796 175
+n07727458 180
+n07727048 180
+n07727578 180
+n07727868 183
+n07728804 183
+n07728053 184
+n07728585 184
+n07728181 184
+n07729384 185
+n07729828 185
+n07725531 176
+n07725789 191
+n07725888 191
+n07715721 130
+n07717070 130
+n07716906 194
+n07716358 194
+n07716034 194
+n07717556 195
+n07717410 195
+n07720277 131
+n07736256 131
+n07723330 131
+n07719616 131
+n07736692 131
+n07733712 131
+n07732747 203
+n07730855 203
+n07731587 203
+n07731006 203
+n07723559 203
+n07724654 211
+n07724269 211
+n07724492 211
+n07722485 136
+n07723177 136
+n07722888 136
+n07639069 25
+n07679356 25
+n07682197 219
+n07680517 219
+n07695878 219
+n07685730 219
+n07682316 219
+n07684517 219
+n07680761 219
+n07681691 219
+n07684600 219
+n07684164 219
+n07686720 219
+n07680932 219
+n07687211 219
+n07681450 219
+n07683786 219
+n07695742 219
+n07682477 219
+n07686873 219
+n07684289 219
+n07683490 219
+n07682808 219
+n07690585 228
+n07684938 228
+n07690892 228
+n07685399 228
+n07693972 228
+n07690273 228
+n07691091 228
+n07687789 228
+n07685218 228
+n07694516 245
+n07694839 245
+n07694659 245
+n07690511 246
+n07690739 246
+n07690431 246
+n07688624 248
+n07688898 248
+n07689003 248
+n07690152 231
+n07693725 231
+n07690019 231
+n07692614 231
+n07691758 231
+n07691539 231
+n07691650 231
+n07693223 262
+n07693048 262
+n07691237 262
+n07687626 232
+n07687381 232
+n07687469 232
+n07871810 234
+n07684084 234
+n14580897 16
+n15062057 16
+n14698884 274
+n14696793 274
+n14765422 274
+n14844693 274
+n15019030 274
+n12167075 274
+n14974264 274
+n14858292 274
+n15075141 282
+n04033425 282
+n07556637 17
+n07566340 17
+n07560652 17
+n07881800 17
+n07938313 17
+n07800091 17
+n07570720 17
+n01464844 17
+n07556406 17
+n07840804 287
+n07802417 287
+n07925608 287
+n07844867 287
+n07569644 287
+n07568502 287
+n07809096 287
+n07843775 287
+n07755089 287
+n07882497 287
+n07573347 287
+n07923748 287
+n07572957 287
+n07731952 296
+n07804323 296
+n07804771 296
+n07803093 296
+n07803545 296
+n07732168 308
+n07732636 308
+n07804657 309
+n07804900 309
+n07809368 301
+n07841345 301
+n07827284 317
+n07827130 317
+n07822518 317
+n07827410 317
+n07816052 317
+n07812184 317
+n07810907 317
+n07858595 317
+n07811416 317
+n07824702 317
+n07818277 317
+n07819769 317
+n07920989 317
+n07822323 317
+n07815424 324
+n07814390 324
+n07826930 324
+n07814487 324
+n07814203 324
+n07583066 325
+n07822845 325
+n07767344 325
+n07823105 325
+n07828987 325
+n07582609 325
+n07825972 325
+n07823460 325
+n07823698 325
+n07822197 325
+n07856270 325
+n07767709 325
+n07829412 325
+n07829331 342
+n07829248 342
+n07857731 348
+n07857170 348
+n07838233 350
+n07836838 350
+n07826091 350
+n07830593 350
+n07840027 350
+n07832416 350
+n07832902 350
+n07835921 350
+n07835457 350
+n07831146 355
+n07831267 355
+n07834618 361
+n07834507 361
+n07595914 326
+n07858978 326
+n07859583 326
+n07860103 370
+n07860331 370
+n07860447 370
+n07816164 327
+n07818689 327
+n07821260 327
+n07820683 327
+n07816575 327
+n07817160 327
+n07817315 327
+n07819166 327
+n07817024 327
+n07818995 327
+n07816398 327
+n07820497 327
+n07932841 327
+n07820145 327
+n07819896 327
+n07816296 327
+n07821758 327
+n07933154 386
+n07935379 386
+n07935043 386
+n07847198 302
+n07844042 302
+n07848196 394
+n07847453 394
+n07847917 394
+n07847827 394
+n07678729 304
+n07860805 304
+n07860988 304
+n07883031 304
+n07623136 402
+n07861158 402
+n07627931 404
+n07628068 404
+n07565161 288
+n07565083 288
+n07561590 288
+n07561112 288
+n07560903 288
+n07562495 411
+n07564971 411
+n07938149 413
+n07938007 413
+n07884567 289
+n07924033 289
+n07919310 289
+n07891189 289
+n07922764 289
+n07929519 289
+n07921455 289
+n07933274 289
+n07927197 289
+n07925966 289
+n07891309 289
+n07936263 289
+n07883251 289
+n07914271 289
+n07911371 417
+n07901587 417
+n07891433 417
+n07891726 417
+n07886176 417
+n07886057 417
+n07907943 417
+n07921615 417
+n07886572 417
+n07902121 417
+n07886463 417
+n07912211 431
+n07911677 431
+n07914777 431
+n07930554 431
+n07930433 431
+n07930315 431
+n07915491 442
+n07915094 442
+n07913393 443
+n07916041 443
+n07914995 443
+n07916183 443
+n07914413 443
+n07917392 443
+n07917133 443
+n07915918 443
+n07930864 445
+n07931870 445
+n07932039 445
+n07930062 445
+n07906111 432
+n07907037 432
+n07902799 432
+n07904865 432
+n07905474 432
+n07902937 432
+n07904395 432
+n07905038 432
+n07902336 432
+n07905979 432
+n07903101 432
+n07904760 432
+n07903208 432
+n07904934 432
+n07906284 432
+n07902443 474
+n07903841 474
+n07903962 474
+n07903731 474
+n07903643 474
+n07907161 476
+n07906718 476
+n07907831 476
+n07907548 476
+n07907429 476
+n07906877 476
+n07906572 476
+n07893253 434
+n07892418 434
+n07893642 434
+n07899003 434
+n07896287 434
+n07896661 434
+n07893528 434
+n07896165 434
+n07900225 434
+n07893891 434
+n07900406 434
+n07895237 434
+n07898745 434
+n07896060 434
+n07899108 434
+n07892512 434
+n07897750 434
+n07892813 434
+n07894703 498
+n07894102 498
+n07894551 498
+n07900616 499
+n07900958 499
+n07900734 499
+n07900825 499
+n07901457 499
+n07898117 500
+n07895435 500
+n07899434 503
+n07899292 503
+n07894298 504
+n07895595 504
+n07894965 504
+n07897865 504
+n07895839 504
+n07895710 504
+n07898333 504
+n07897438 506
+n07895962 506
+n07896893 506
+n07899899 506
+n07895100 506
+n07898443 506
+n07899533 506
+n07894799 506
+n07897975 506
+n07899660 506
+n07894451 506
+n07910656 437
+n07909593 437
+n07911249 437
+n07910048 437
+n07908411 437
+n07910379 437
+n07908647 437
+n07886849 439
+n07887634 544
+n07887099 544
+n07889510 544
+n07887192 544
+n07887304 545
+n07888229 545
+n07887967 545
+n07889274 545
+n07887461 545
+n07888465 547
+n07890226 547
+n07890352 547
+n07889814 547
+n07890068 547
+n07890540 547
+n07888816 547
+n07924834 418
+n07924443 418
+n07924276 418
+n07920540 422
+n07920222 422
+n07920052 422
+n07920349 422
+n07919441 422
+n07731284 422
+n07919572 422
+n07920872 422
+n07921239 422
+n07934282 424
+n07933799 424
+n07929172 425
+n07927931 425
+n07928488 425
+n07928367 425
+n07927512 425
+n07928887 425
+n07928696 576
+n07928790 576
+n07936745 428
+n07935737 428
+n07936548 428
+n07801508 291
+n07805594 291
+n07800740 291
+n07801091 588
+n07802026 588
+n07801779 588
+n07801892 588
+n07557165 292
+n07560193 292
+n07651025 292
+n07560331 292
+n07557434 292
+n07556970 292
+n05399243 292
+n15089258 292
+n07560542 292
+n07573696 292
+n07613815 593
+n07643981 593
+n07596684 593
+n07600696 605
+n07597145 605
+n07597365 605
+n07599998 605
+n07596967 605
+n07620689 605
+n07642471 607
+n07643200 612
+n07642742 612
+n07643026 612
+n07642933 612
+n07643306 612
+n07606538 608
+n07599911 608
+n07607138 608
+n07608429 608
+n07598256 608
+n07606669 608
+n07607605 608
+n07601572 608
+n07609632 608
+n07605597 608
+n07607967 608
+n07609215 608
+n07841907 608
+n07606764 608
+n07605944 608
+n07601686 608
+n07605380 608
+n07605040 608
+n07601809 608
+n07605474 608
+n07842130 630
+n07842044 630
+n07600285 609
+n07600177 609
+n07842202 597
+n07579688 597
+n07580053 597
+n07588947 597
+n07842753 597
+n07583197 597
+n07879350 597
+n07880751 597
+n07868200 597
+n07863802 597
+n07875152 597
+n07824191 597
+n07878785 597
+n07865484 597
+n07866015 597
+n07868955 597
+n07861557 597
+n07580253 597
+n07877187 597
+n07866868 597
+n07880458 597
+n07648913 597
+n07580470 597
+n07866277 597
+n07591961 597
+n07868508 597
+n07871436 597
+n07864934 597
+n07874780 597
+n07879659 597
+n07878926 597
+n07937461 597
+n07842433 597
+n07862611 597
+n07863374 597
+n07866723 597
+n07867021 597
+n07867164 597
+n07726525 597
+n07624466 597
+n07842308 597
+n07877299 597
+n07880080 597
+n07862348 597
+n07873464 597
+n07869775 597
+n07879953 597
+n07625061 597
+n07843636 597
+n07696403 597
+n07580592 597
+n07655263 597
+n07868340 597
+n07619004 597
+n07879174 597
+n07867324 597
+n07843464 597
+n07877961 597
+n07873807 597
+n07867421 597
+n07654298 597
+n07878647 597
+n07611839 597
+n07842605 597
+n07871720 597
+n07869611 597
+n07876651 597
+n07880968 597
+n07875436 597
+n07806221 597
+n07841495 597
+n07823951 597
+n07712382 597
+n07591586 645
+n07590320 645
+n07587111 645
+n07592481 645
+n07590611 645
+n07591473 645
+n07590502 645
+n07591049 645
+n07592768 645
+n07585758 647
+n07588193 647
+n07586894 647
+n07588299 647
+n07584110 647
+n07587441 647
+n07587023 647
+n07586099 647
+n07588574 647
+n07584332 647
+n07586604 647
+n07586718 647
+n07585107 647
+n07585557 647
+n07585208 647
+n07584593 647
+n07585906 647
+n07584423 647
+n07587618 729
+n07587700 729
+n07588111 729
+n07704054 670
+n07704205 670
+n07871234 676
+n07870167 676
+n07863547 676
+n07700003 676
+n07619208 695
+n07619409 695
+n07874159 700
+n07874343 700
+n07874259 700
+n07874441 700
+n07874063 700
+n07867751 701
+n07867616 701
+n07808587 711
+n07807834 711
+n07806633 711
+n07807171 711
+n07807710 711
+n07807922 711
+n07808904 711
+n07806774 762
+n07807472 762
+n07841639 712
+n07841800 712
+n07695965 714
+n07712748 714
+n07712559 714
+n07697825 771
+n07697313 771
+n07696728 771
+n07696625 771
+n07698543 771
+n07698401 771
+n07865105 771
+n07696977 771
+n07698250 771
+n07698782 771
+n07697100 771
+n07696839 771
+n07697537 771
+n07712856 772
+n07712959 772
+n07579575 598
+n07579787 598
+n07609840 598
+n07581346 598
+n07611991 791
+n07613266 791
+n07611358 791
+n07612632 791
+n07612996 791
+n07613480 791
+n07611267 791
+n07612367 791
+n07611148 791
+n07611046 791
+n07617611 791
+n07612137 791
+n07616386 795
+n07631926 795
+n07615774 795
+n07616487 795
+n07614730 795
+n07614500 795
+n07614198 795
+n07616748 795
+n07616046 795
+n07617051 795
+n07615671 810
+n07615190 810
+n07614825 810
+n07615460 810
+n07617708 796
+n07618432 796
+n07582152 792
+n07734879 792
+n07581775 792
+n07582277 792
+n07730320 792
+n07581249 792
+n15089645 600
+n15089472 600
+n15093137 827
+n15093298 827
+n15090742 827
+n15091473 831
+n14919819 831
+n15091669 831
+n14810561 831
+n14973585 831
+n15091304 831
+n15091846 831
+n15092227 828
+n15090065 828
+n07576438 602
+n07577374 602
+n07575984 602
+n07574602 602
+n07574426 602
+n07593199 602
+n07576182 602
+n07574923 602
+n07574780 602
+n07575726 602
+n07575076 602
+n07578093 602
+n07576577 841
+n07577144 853
+n07576781 853
+n07574504 842
+n07577538 842
+n09335240 2
+n00027167 2
+n09334396 2
+n09283193 2
+n03892891 2
+n09287968 2
+n03059685 2
+n00003553 2
+n09300905 2
+n09452395 858
+n09260907 858
+n08630039 859
+n08630985 859
+n09386842 859
+n08593262 859
+n08620061 859
+n09379111 859
+n08649711 869
+n08658309 869
+n08568978 869
+n08512259 877
+n03823111 877
+n04170933 878
+n09433839 878
+n08578517 870
+n08640739 870
+n08574314 870
+n08552138 870
+n08645104 884
+n08505018 884
+n08659861 884
+n08659446 884
+n08673395 884
+n08583455 890
+n08598301 890
+n08651247 890
+n03120491 890
+n02802544 890
+n08614632 890
+n08674739 890
+n08569998 890
+n08494231 890
+n08677424 892
+n08616050 892
+n08518171 893
+n08573842 893
+n08521623 893
+n03368352 897
+n03417345 897
+n04454908 906
+n03902482 906
+n04610879 898
+n08579352 898
+n03963645 909
+n03417749 909
+n08524735 885
+n08537837 885
+n08551296 885
+n08628141 914
+n08633683 914
+n08539072 914
+n09249034 871
+n09263912 871
+n08583292 872
+n09443281 872
+n08547544 872
+n08664443 873
+n04602044 873
+n08580944 873
+n03581125 924
+n08517676 924
+n08598568 924
+n08584914 924
+n03899933 925
+n02776631 925
+n03322099 925
+n03935234 933
+n04052442 933
+n03159535 933
+n15102894 874
+n09242389 874
+n09382099 860
+n09282208 860
+n09392402 860
+n09393605 860
+n09445289 860
+n03030880 862
+n03946162 862
+n03485997 862
+n03882960 946
+n04322026 946
+n03474896 946
+n02764398 946
+n02907082 946
+n03948830 946
+n09205509 863
+n09472413 863
+n09443453 863
+n09309292 863
+n09366017 863
+n09366317 863
+n09376786 863
+n09348460 863
+n09246464 863
+n09433442 863
+n09454153 863
+n09409752 863
+n09403734 863
+n09331251 863
+n09437454 863
+n09238926 863
+n09283866 863
+n09217230 863
+n09305898 955
+n09288635 955
+n09308743 956
+n09308572 956
+n09194227 956
+n09289331 956
+n09468604 957
+n09344324 957
+n09335809 957
+n09435739 957
+n09215437 957
+n09259219 957
+n09217638 957
+n09304750 957
+n09206896 977
+n09405787 977
+n09233446 986
+n09290444 986
+n09457979 981
+n09245515 981
+n09376526 983
+n09415671 983
+n09448690 983
+n09230041 984
+n09398076 984
+n09453008 958
+n09303008 958
+n09359803 958
+n09302616 958
+n09409512 958
+n09399592 958
+n09199101 997
+n09230202 997
+n09283405 997
+n09326662 997
+n09193705 998
+n09218641 998
+n09472597 998
+n09421951 1000
+n09270735 1000
+n09406793 1000
+n09213434 1000
+n09256479 1011
+n09210862 1011
+n09421799 1012
+n09224725 1012
+n09396465 1001
+n09362945 1001
+n09259025 961
+n09398677 961
+n09428293 962
+n09447666 962
+n09332890 962
+n08596076 1021
+n09428628 1021
+n09361517 967
+n09265620 967
+n09303528 967
+n09436444 967
+n09274152 967
+n09213565 967
+n09269472 967
+n09206985 967
+n09228055 967
+n09466678 967
+n09415584 1031
+n09475925 1031
+n09257843 968
+n09239302 968
+n09294877 968
+n00021939 865
+n00004258 865
+n00019128 865
+n02749953 865
+n02852523 1041
+n03767112 1041
+n14977504 1041
+n03129123 1041
+n03848729 1041
+n03964744 1041
+n04362025 1041
+n04469003 1041
+n04341686 1041
+n03575240 1041
+n03873064 1041
+n03122748 1041
+n03309808 1041
+n02871147 1041
+n03364340 1041
+n14786479 1041
+n03169390 1041
+n04564698 1041
+n04339291 1041
+n00022903 1041
+n03315023 1041
+n03302121 1041
+n03076708 1041
+n04188643 1041
+n03354613 1041
+n14976871 1041
+n03670849 1041
+n02917521 1045
+n04414909 1045
+n04435180 1045
+n02725872 1045
+n04076846 1048
+n02743547 1048
+n03816849 1048
+n04007894 1048
+n03934656 1076
+n03720163 1076
+n04227144 1076
+n04260364 1076
+n03925226 1076
+n04564581 1076
+n02744844 1084
+n04042358 1084
+n03927091 1084
+n03927539 1084
+n03876519 1077
+n04485423 1077
+n03835197 1090
+n03342127 1090
+n04246271 1078
+n04321238 1078
+n04180314 1095
+n03625783 1095
+n03684611 1096
+n03514693 1096
+n03421485 1097
+n04026180 1097
+n02870526 1079
+n04599396 1079
+n06415688 1079
+n03822171 1079
+n04582205 1103
+n03727605 1103
+n03849679 1103
+n04598792 1103
+n03631922 1103
+n02933649 1109
+n03600722 1109
+n03169176 1049
+n03418618 1049
+n02727016 1049
+n03526198 1049
+n03794798 1049
+n03859608 1049
+n03968581 1116
+n03717447 1116
+n03614782 1116
+n03915900 1116
+n04431025 1116
+n03974070 1050
+n02779435 1050
+n03941231 1050
+n04399382 1050
+n03603442 1050
+n09229709 1050
+n03548402 1050
+n03944138 1050
+n04238128 1050
+n04284869 1050
+n03061211 1050
+n03219135 1050
+n09282724 1129
+n09191635 1129
+n09443641 1136
+n04186268 1136
+n03447358 1135
+n03607029 1135
+n03536348 1051
+n02857023 1051
+n04381860 1051
+n04213626 1051
+n03961939 1142
+n04394630 1142
+n03365592 1142
+n04501550 1146
+n04296562 1146
+n03159640 1146
+n04354182 1146
+n03549732 1146
+n03360300 1148
+n03892178 1148
+n02768973 1143
+n03906224 1143
+n03313333 1145
+n02990373 1145
+n02861886 1053
+n03365991 1053
+n02898711 1053
+n03109693 1053
+n13898207 1053
+n04358874 1053
+n02687821 1053
+n03135532 1053
+n03545756 1053
+n03548626 1053
+n03469175 1053
+n03688943 1053
+n02914991 1053
+n04191595 1053
+n09218315 1053
+n03074380 1053
+n02699494 1053
+n02733524 1053
+n04460130 1053
+n04471148 1053
+n03792048 1053
+n03388043 1053
+n03837869 1053
+n03321954 1053
+n02733213 1053
+n03687137 1053
+n03065424 1053
+n02839110 1053
+n03894379 1053
+n03725717 1053
+n04226464 1053
+n03071160 1053
+n03839993 1053
+n02913152 1053
+n04128413 1053
+n04008947 1053
+n03917198 1053
+n03222318 1053
+n04295881 1053
+n03241335 1053
+n02735688 1053
+n02777734 1053
+n03984381 1053
+n03216828 1053
+n03517899 1053
+n03546340 1053
+n04361095 1053
+n13897996 1053
+n03171356 1053
+n03290195 1053
+n03743902 1053
+n03297735 1053
+n04217882 1053
+n02863426 1160
+n03408054 1160
+n03463381 1161
+n03758089 1161
+n03686130 1161
+n02800497 1161
+n03379828 1162
+n03233744 1162
+n02953197 1162
+n04108822 1162
+n03865557 1162
+n04492749 1162
+n04532670 1162
+n04311004 1162
+n03122073 1162
+n03415486 1162
+n04366367 1162
+n04479939 1162
+n03956922 1172
+n03069752 1172
+n04592465 1231
+n03316406 1231
+n03212811 1231
+n03844673 1231
+n04068441 1231
+n04103094 1234
+n03387653 1234
+n04311595 1234
+n03697007 1234
+n04300358 1234
+n04032603 1242
+n02810782 1242
+n03492250 1173
+n03826186 1173
+n03547054 1173
+n04411264 1173
+n03550153 1173
+n03560430 1173
+n03254189 1173
+n03792972 1248
+n04025508 1248
+n03900979 1248
+n02769963 1248
+n03374473 1248
+n02954163 1248
+n03334291 1257
+n04549028 1257
+n03035252 1257
+n03448956 1177
+n04113765 1177
+n03975035 1177
+n04486054 1177
+n02905152 1177
+n03784896 1262
+n04104384 1262
+n02946127 1178
+n04501947 1178
+n03047052 1178
+n04206790 1178
+n03029197 1178
+n03767745 1178
+n04028581 1178
+n04220250 1178
+n04556948 1178
+n04479823 1178
+n04028764 1178
+n04312432 1178
+n03347617 1178
+n03519387 1178
+n04361260 1178
+n03098959 1178
+n02826886 1178
+n02814860 1178
+n02922292 1180
+n04251701 1180
+n04051825 1180
+n03390786 1288
+n02811936 1288
+n02699770 1188
+n04546855 1188
+n03409393 1292
+n04544325 1292
+n02755823 1292
+n03904657 1293
+n02825961 1293
+n02898369 1189
+n04326799 1189
+n02796623 1192
+n03839795 1192
+n03967942 1192
+n03659686 1192
+n03454707 1300
+n04127395 1300
+n03795580 1300
+n02788148 1300
+n02894605 1300
+n03459775 1300
+n04571566 1300
+n04047401 1300
+n03549589 1300
+n04304680 1300
+n03327234 1300
+n03160309 1300
+n03427296 1306
+n03221720 1306
+n03698815 1316
+n03985881 1316
+n04501370 1316
+n03395514 1317
+n02963821 1317
+n04153025 1317
+n03394649 1317
+n03226880 1317
+n03579538 1317
+n04239074 1317
+n04086446 1317
+n02793842 1317
+n03498662 1317
+n04329834 1317
+n04547592 1314
+n04082710 1314
+n04046974 1314
+n03000134 1314
+n03252637 1314
+n03511175 1314
+n04604644 1314
+n03930313 1314
+n04326547 1314
+n04560882 1301
+n02920369 1301
+n03262072 1302
+n03108853 1302
+n04390977 1302
+n03999160 1193
+n03542333 1193
+n04409384 1193
+n02666943 1193
+n02726681 1193
+n02763604 1193
+n03478756 1193
+n03545150 1193
+n04104500 1193
+n04081699 1193
+n03859280 1193
+n03402941 1193
+n03739518 1193
+n03542605 1193
+n03661043 1193
+n02977936 1193
+n03322570 1193
+n03953416 1193
+n04081281 1193
+n03770316 1193
+n04112654 1193
+n03839671 1193
+n03842012 1193
+n04407686 1193
+n04217546 1193
+n03449564 1193
+n03457902 1193
+n04093625 1193
+n03956157 1193
+n04018399 1193
+n02882190 1193
+n03544360 1193
+n04118635 1193
+n02734725 1193
+n04233124 1193
+n03430418 1193
+n04146050 1193
+n03007444 1193
+n04417809 1193
+n03479397 1193
+n03092166 1193
+n02993546 1193
+n04080705 1347
+n08640531 1347
+n03788498 1347
+n08560295 1347
+n04095109 1347
+n04229737 1347
+n03541696 1347
+n03790755 1347
+n03036022 1352
+n03466839 1352
+n03698723 1352
+n03333610 1353
+n03837698 1353
+n03121298 1353
+n04187547 1356
+n03416489 1356
+n02968074 1356
+n03860404 1356
+n03055857 1356
+n02859443 1402
+n04598318 1402
+n02727426 1402
+n03730334 1358
+n03210552 1358
+n04294879 1362
+n03016389 1362
+n03123809 1362
+n02793495 1362
+n03884778 1363
+n03028079 1363
+n04407435 1363
+n04210390 1363
+n04346328 1363
+n03724756 1363
+n04374735 1363
+n03788195 1363
+n03007130 1363
+n03618982 1417
+n02667576 1417
+n02984061 1417
+n02984203 1417
+n03772077 1417
+n02935658 1364
+n04111414 1364
+n02760099 1364
+n02892499 1364
+n02935891 1364
+n03199647 1364
+n02956699 1371
+n03282295 1371
+n04461437 1371
+n03005033 1371
+n03152303 1371
+n04305210 1371
+n03121431 1371
+n03558176 1373
+n03557360 1373
+n02696165 1375
+n03393017 1375
+n04258438 1377
+n02919792 1377
+n04115256 1377
+n02932400 1377
+n03257210 1377
+n03719053 1377
+n03685820 1377
+n03428090 1377
+n03686924 1377
+n04131368 1377
+n03118969 1377
+n03219483 1377
+n04052658 1377
+n02857477 1377
+n03180865 1377
+n04535524 1377
+n03002816 1377
+n04079244 1377
+n03322836 1377
+n04413969 1449
+n02907873 1449
+n03878066 1452
+n04305323 1452
+n03718458 1452
+n04354026 1457
+n03158186 1457
+n04535370 1457
+n03010915 1457
+n03718935 1464
+n04073948 1464
+n03439348 1464
+n03892557 1464
+n03877845 1464
+n03781244 1476
+n02667379 1476
+n02667478 1476
+n03165616 1382
+n03092314 1382
+n03801671 1382
+n03849814 1384
+n03801533 1384
+n03032252 1384
+n03678729 1384
+n03529860 1384
+n03097362 1387
+n04177931 1387
+n02940385 1387
+n03111041 1195
+n03064935 1195
+n03626115 1195
+n02838728 1195
+n03356858 1195
+n02902079 1195
+n04439585 1195
+n03263076 1195
+n04453037 1195
+n03942920 1195
+n03379204 1198
+n03522003 1198
+n03220692 1198
+n02782778 1198
+n02918112 1198
+n02704949 1198
+n03899768 1200
+n03109881 1200
+n02775178 1200
+n03517647 1200
+n03024064 1200
+n02894158 1200
+n04030518 1200
+n03004824 1200
+n02758134 1200
+n03120198 1200
+n03200231 1200
+n04105893 1200
+n02750070 1200
+n03285912 1200
+n03813078 1200
+n02694045 1200
+n04328946 1200
+n03443005 1200
+n03378005 1519
+n02754656 1519
+n03047941 1519
+n03382292 1519
+n04446276 1521
+n04356925 1521
+n03288500 1521
+n04363991 1521
+n04112579 1521
+n03038685 1521
+n03412058 1521
+n03718581 1521
+n02991302 1521
+n03691817 1521
+n04139395 1521
+n03238131 1521
+n02839592 1521
+n02824319 1521
+n03619890 1521
+n03660909 1521
+n04329477 1521
+n04602762 1521
+n04180229 1521
+n02710324 1521
+n03200701 1521
+n04065464 1521
+n03541091 1521
+n04058096 1521
+n02873839 1521
+n03089879 1521
+n02821627 1521
+n03040376 1521
+n03679712 1521
+n03222176 1521
+n03478907 1521
+n04061793 1521
+n02857644 1521
+n04345028 1521
+n03683708 1521
+n03062122 1521
+n04406239 1521
+n03079741 1521
+n03120778 1521
+n03982331 1521
+n02807731 1521
+n03098688 1521
+n02715513 1521
+n04558478 1532
+n03746486 1532
+n04555291 1532
+n04018667 1532
+n03529175 1537
+n03653740 1537
+n04345201 1537
+n03885535 1548
+n04324387 1548
+n04523831 1548
+n04067818 1552
+n03200539 1552
+n02952585 1553
+n03319745 1553
+n04119478 1553
+n03283221 1554
+n04064862 1554
+n03850245 1554
+n04401680 1556
+n04541987 1556
+n03090172 1556
+n04209613 1556
+n03727465 1558
+n03788601 1558
+n03465718 1558
+n03542860 1558
+n03225108 1558
+n03836062 1558
+n03165466 1558
+n03457008 1562
+n03086580 1562
+n03878211 1562
+n03303831 1562
+n03891538 1563
+n03235042 1563
+n04000592 1569
+n03075946 1569
+n02932019 1569
+n03939677 1569
+n02931148 1569
+n03696065 1569
+n02933462 1569
+n03061505 1569
+n04305572 1569
+n02960352 1569
+n02934451 1569
+n04299370 1569
+n03235180 1569
+n04414199 1523
+n02936714 1523
+n03964495 1523
+n03907227 1523
+n04539203 1523
+n03993703 1523
+n03683079 1523
+n03016737 1523
+n03003730 1523
+n04061969 1523
+n02843276 1624
+n04037220 1624
+n03550289 1624
+n03124590 1626
+n04100519 1626
+n03376159 1626
+n04262161 1631
+n02921884 1631
+n03348868 1631
+n04080454 1631
+n03404449 1631
+n02868638 1631
+n03555006 1631
+n04076713 1640
+n03732114 1640
+n03617095 1643
+n02849885 1643
+n03837606 1643
+n03425325 1643
+n03566193 1643
+n03762434 1632
+n03073694 1632
+n03343560 1632
+n03346455 1632
+n02731398 1632
+n02991847 1526
+n03148324 1526
+n04295571 1526
+n03411544 1201
+n02705201 1661
+n03854722 1661
+n04327204 1202
+n04355267 1202
+n03399677 1202
+n04527648 1202
+n03168107 1202
+n02770211 1202
+n03986704 1202
+n03721590 1203
+n03251533 1203
+n02853016 1205
+n03259505 1205
+n04409625 1205
+n03679384 1205
+n03776460 1205
+n03088389 1205
+n02726305 1205
+n04549919 1673
+n02992032 1673
+n03088580 1674
+n04613696 1674
+n03685307 1674
+n04517408 1674
+n03507241 1674
+n03354207 1674
+n03042490 1674
+n03529629 1674
+n04172107 1674
+n04584373 1684
+n04412416 1684
+n02672371 1676
+n03349892 1693
+n02932693 1693
+n02822064 1679
+n03361297 1679
+n03010473 1206
+n04360501 1206
+n03391770 1206
+n03903868 1699
+n02929289 1699
+n03373943 1699
+n02669295 1699
+n04087826 1700
+n02926591 1700
+n04589593 1700
+n03390983 1700
+n03416094 1700
+n03530642 1700
+n04492375 1700
+n03646916 1700
+n03111296 1700
+n03931765 1700
+n04587648 1700
+n03042697 1700
+n04478512 1700
+n02689144 1700
+n03454536 1700
+n03453443 1700
+n04545305 1700
+n02977619 1700
+n04387261 1700
+n02732827 1700
+n04038727 1700
+n03793186 1700
+n04136510 1700
+n02976350 1700
+n03855333 1715
+n02813399 1715
+n04297750 1715
+n04232800 1715
+n03211789 1715
+n04110178 1715
+n03986562 1715
+n04473108 1715
+n03041810 1715
+n03224603 1715
+n03224753 1715
+n03637898 1715
+n03320959 1715
+n03961711 1725
+n02790669 1725
+n02835829 1725
+n03696301 1725
+n03207630 1725
+n04459773 1725
+n03896526 1726
+n03900393 1726
+n03792526 1726
+n04340935 1208
+n03386011 1208
+n03385557 1208
+n02806088 1751
+n03610098 1751
+n03628511 1754
+n02676938 1754
+n02695627 1752
+n03723781 1752
+n03334382 1753
+n02805983 1753
+n03296328 1753
+n03878963 1753
+n02980441 1753
+n02993194 1210
+n03743016 1210
+n04178329 1210
+n02892201 1210
+n03810952 1210
+n03884926 1210
+n03220237 1766
+n03745571 1766
+n03953020 1211
+n03574555 1211
+n04511002 1211
+n03748162 1773
+n03841666 1773
+n02931417 1773
+n03506370 1773
+n03965456 1776
+n03119203 1776
+n03176763 1776
+n04202417 1776
+n03722288 1776
+n02879309 1783
+n04131208 1783
+n04200800 1783
+n02871525 1783
+n03871371 1783
+n04428634 1783
+n03606251 1783
+n04462240 1783
+n03039827 1783
+n02813544 1783
+n03436417 1783
+n03367410 1783
+n03249342 1783
+n03416640 1783
+n03173387 1783
+n04245508 1783
+n02791270 1783
+n04299215 1783
+n04443257 1783
+n03822656 1783
+n02927161 1783
+n03952576 1783
+n03089624 1783
+n03099274 1783
+n02813645 1784
+n08492461 1784
+n03461385 1784
+n03847823 1784
+n04358707 1811
+n03555426 1811
+n03457686 1811
+n04261281 1812
+n03322704 1812
+n08571898 1812
+n03822504 1777
+n02885882 1777
+n03504723 1777
+n03111690 1774
+n03856012 1774
+n03592245 1822
+n03911513 1822
+n04005630 1822
+n04447443 1054
+n04566257 1054
+n03294048 1054
+n03091374 1054
+n03563967 1054
+n03405265 1054
+n03183080 1054
+n02997391 1054
+n04377057 1054
+n03094503 1054
+n03100490 1054
+n06254669 1054
+n03176594 1827
+n02807523 1827
+n03128519 1827
+n03690938 1827
+n04186051 1827
+n03476991 1827
+n03794136 1827
+n03916031 1827
+n03475823 1827
+n02723165 1827
+n03994008 1827
+n03113152 1827
+n02808185 1827
+n03484487 1841
+n03067339 1841
+n04357314 1841
+n03640850 1841
+n02862916 1842
+n04450640 1842
+n03487444 1842
+n02683791 1842
+n03992325 1846
+n03898271 1846
+n03916470 1846
+n03071021 1846
+n04448070 1846
+n03980026 1847
+n02901793 1847
+n04447276 1849
+n04386792 1849
+n03177165 1850
+n03519081 1850
+n03714235 1850
+n03314780 1871
+n03676087 1871
+n03309687 1871
+n03724066 1871
+n03676483 1871
+n04112752 1871
+n03309110 1871
+n03308481 1871
+n02738031 1828
+n03171228 1828
+n02866578 1828
+n02703275 1828
+n03812924 1828
+n02813752 1880
+n02746365 1880
+n03647520 1880
+n02950256 1886
+n03332393 1886
+n03786715 1888
+n02801450 1888
+n03553248 1882
+n02753044 1882
+n04113641 1883
+n04206570 1883
+n04063373 1829
+n04285146 1829
+n03926148 1829
+n03811847 1829
+n03889726 1829
+n03430959 1829
+n04137444 1829
+n03414162 1829
+n03888257 1829
+n03278248 1829
+n02727825 1829
+n02761206 1829
+n03729951 1829
+n02774921 1829
+n04393095 1896
+n02979290 1896
+n03192543 1910
+n04533802 1910
+n02799897 1897
+n03135030 1897
+n03039259 1897
+n04225729 1897
+n04607035 1897
+n03132261 1897
+n02802721 1897
+n03594148 1897
+n04212282 1897
+n03446832 1897
+n04275661 1897
+n04318131 1897
+n02885338 1897
+n02885462 1897
+n03472232 1897
+n04571292 1897
+n02800213 1914
+n02811059 1914
+n02811204 1914
+n02797881 1914
+n02811350 1914
+n02799175 1914
+n03528901 1933
+n03349771 1933
+n04425804 1933
+n04164406 1933
+n04102037 1917
+n04102162 1917
+n04102618 1917
+n03558404 1917
+n03523987 1943
+n04273972 1943
+n03336282 1943
+n03132076 1919
+n04582869 1919
+n03445924 1923
+n03447075 1923
+n04399537 1923
+n03446070 1923
+n04597066 1952
+n03585073 1952
+n03244047 1953
+n04284341 1953
+n04569822 1954
+n03762332 1954
+n04028074 1954
+n03823216 1954
+n03950537 1957
+n04135024 1957
+n03524150 1925
+n03978686 1925
+n03535780 1928
+n03538037 1928
+n04509260 1928
+n03888605 1928
+n04469514 1928
+n02777292 1928
+n04524142 1966
+n03980478 1966
+n03255030 1929
+n02790996 1929
+n03289660 1898
+n02942699 1898
+n03037404 1898
+n03338821 1898
+n03667664 1898
+n02884994 1976
+n03358726 1976
+n03976467 1976
+n03974915 1976
+n04569063 1976
+n03789171 1976
+n03196062 1976
+n03987266 1976
+n04069434 1976
+n04609531 1978
+n04067658 1978
+n03817191 1978
+n04071263 1901
+n03619396 1901
+n04091097 1901
+n03351434 1901
+n04295081 1901
+n04091693 1901
+n03138669 1992
+n03139464 1992
+n04179824 1993
+n03349469 1993
+n02966687 1993
+n03650551 1993
+n03241093 1994
+n03240683 1994
+n03494706 1996
+n04247876 1996
+n03503718 1996
+n04124202 1996
+n03480719 2008
+n02900160 2008
+n04290615 1902
+n04266162 1902
+n02768226 1903
+n02778669 1903
+n04028315 1903
+n03982430 1903
+n02882647 1903
+n03716327 1903
+n03020416 1903
+n04113406 1903
+n03442756 1903
+n04540255 1903
+n03941417 1903
+n04254680 2015
+n03982232 2015
+n02882301 2015
+n04256891 2015
+n03333252 2015
+n04023962 2015
+n02839351 2015
+n03134739 2015
+n03131967 2015
+n04409515 2015
+n03445777 2015
+n04118538 2015
+n03145719 2015
+n03742019 2015
+n02802426 2015
+n03267113 2015
+n03942813 2015
+n03482877 2015
+n02799071 2015
+n04039742 2015
+n02861147 2015
+n04540053 2015
+n03598930 2016
+n06785654 2016
+n03014440 2019
+n04579986 2019
+n03901750 2019
+n02802215 2022
+n03820318 2022
+n03278914 1905
+n03782006 1905
+n03781787 1905
+n04405762 1905
+n04401088 1905
+n03857828 1905
+n03916720 1905
+n02872529 1905
+n02979186 1905
+n02988304 1905
+n04060647 1905
+n02757462 1905
+n03656957 1905
+n03963294 1905
+n04405540 1905
+n03034405 1905
+n02979074 1905
+n02995345 1905
+n03775388 1905
+n04142731 1905
+n04392985 1905
+n03181293 1905
+n03777754 1905
+n03293741 1905
+n04392526 1905
+n02705944 1905
+n02992529 2058
+n04270371 2058
+n03179910 2058
+n03902125 2058
+n03488438 2058
+n03187595 2058
+n04044498 2058
+n04405907 2064
+n04043733 2064
+n04137773 2064
+n03516996 2088
+n03046921 2088
+n04077430 2065
+n03517760 2092
+n04315948 2092
+n03584254 2094
+n04546340 2094
+n03584400 2094
+n03436182 2094
+n02942349 2068
+n04404997 2068
+n03909160 1906
+n04026053 1906
+n04173511 1906
+n04070003 1906
+n03257586 1906
+n03509608 1906
+n04171208 1906
+n04450243 1906
+n04506506 1906
+n03434188 1906
+n03567066 1906
+n02923129 1906
+n03386544 2101
+n03046802 2101
+n03757604 2101
+n03927299 2105
+n03924679 2105
+n04608923 2105
+n03316105 2105
+n03767459 2105
+n03987990 2108
+n03084834 2108
+n03422072 2112
+n02855390 2112
+n02921029 2123
+n03425769 2123
+n03871524 1908
+n02852360 1908
+n04105704 1908
+n04408871 1830
+n04241573 1830
+n04402057 1830
+n03664943 1830
+n03605915 1830
+n03543012 2132
+n03196990 2132
+n03639497 2132
+n02840134 2133
+n04594218 2133
+n02999410 2133
+n03086868 2139
+n02790823 2139
+n03886641 2140
+n02709637 2140
+n03374838 2140
+n02835412 2140
+n04440963 2140
+n03011018 2140
+n03600977 2134
+n03093792 2134
+n03228967 2149
+n04573281 2149
+n03521076 2149
+n04144241 2149
+n04571958 2149
+n04160372 2149
+n03787523 2149
+n02928299 2153
+n04333869 2153
+n03213826 2150
+n04476972 2150
+n04593866 2150
+n02788689 1831
+n04451818 1831
+n04516672 1831
+n04116512 1831
+n03816136 1831
+n03294833 1831
+n04317420 1831
+n02908217 1831
+n03532342 1831
+n04185071 1831
+n04285622 1831
+n03653220 1831
+n04369282 1831
+n03346135 1831
+n03837422 1831
+n04317833 1831
+n03039947 1831
+n04100174 1831
+n04608567 1831
+n04208427 1831
+n04282872 2163
+n03396074 2163
+n02865931 2163
+n04112147 2163
+n04459909 2163
+n03659292 2163
+n04463679 2163
+n03487090 2163
+n03138344 2188
+n04317976 2188
+n03613592 2188
+n04393808 2188
+n03903424 2188
+n04099003 2188
+n03470629 2188
+n04264628 2193
+n02771004 2193
+n04193377 2193
+n04400737 2193
+n02670683 2195
+n04367011 2195
+n03489162 2164
+n03588951 2164
+n03919430 2164
+n03418242 2164
+n03967562 2164
+n03075097 2164
+n03239726 2164
+n03154446 2164
+n04387706 2164
+n03417970 2164
+n04050066 2164
+n04299963 2164
+n03684224 2204
+n03919289 2204
+n03970156 2204
+n03941684 2204
+n03966976 2204
+n04258859 2204
+n04266486 2204
+n03481172 2204
+n03946076 2204
+n04606574 2204
+n04154565 2204
+n04489817 2204
+n04140064 2204
+n03848348 2204
+n04150980 2204
+n04208210 2204
+n02898269 2204
+n04269944 2204
+n02966545 2223
+n03430313 2223
+n03715386 2223
+n03731695 2223
+n04457910 2225
+n03947466 2225
+n02680754 2225
+n03848168 2225
+n02697675 2225
+n02886434 2225
+n03474779 2228
+n03376938 2228
+n03488188 2228
+n04016240 2246
+n04016576 2246
+n03109150 2229
+n02877962 2229
+n02951585 2229
+n03511333 2207
+n03649909 2207
+n03995856 2253
+n04089976 2253
+n03995372 2210
+n03240140 2210
+n03154073 2211
+n04503593 2211
+n02844307 2211
+n02848216 2211
+n03624400 2211
+n02866386 2258
+n03030557 2258
+n03265032 2258
+n04148054 2265
+n03623556 2265
+n02764044 2265
+n04057047 2265
+n04594828 2265
+n03020692 2265
+n03954731 2265
+n04186848 2266
+n04250473 2273
+n04016684 2273
+n04163530 2273
+n02973904 2267
+n02880842 2267
+n03973628 2267
+n03041632 2267
+n03549473 2267
+n02976123 2267
+n03890093 2267
+n03658185 2267
+n04373089 2279
+n03911658 2279
+n02811468 2268
+n03498962 2268
+n04185804 2269
+n04332074 2269
+n04127521 2269
+n03067212 2271
+n04597400 2271
+n03601638 2272
+n04247630 2272
+n04283585 2272
+n03621049 2165
+n02997607 2165
+n03403643 2165
+n04103206 2297
+n04059516 2297
+n03724417 2297
+n03621377 2297
+n04293119 2297
+n03775199 2297
+n03101517 2297
+n03101986 2297
+n03454885 2297
+n03767966 2297
+n03266371 2305
+n04578934 2305
+n02850732 2305
+n03880531 2307
+n03133878 2307
+n02999138 2307
+n04270147 2307
+n03459328 2307
+n03284981 2307
+n04309548 2307
+n03101796 2307
+n03101156 2307
+n04500060 2307
+n03846677 2313
+n04317325 2313
+n03400231 2313
+n04097760 2313
+n04596742 2313
+n04138977 2313
+n03453231 2318
+n03047799 2318
+n03984234 2298
+n03262519 2298
+n04326676 2298
+n03992703 2298
+n04282992 2331
+n03018209 2331
+n02869155 2331
+n03713436 2332
+n03317788 2332
+n03625646 2167
+n03133050 2167
+n04546194 2169
+n03729826 2169
+n03053474 2169
+n03332271 2169
+n04277352 2169
+n04321453 2169
+n04296261 2169
+n03250847 2169
+n03715669 2169
+n02949202 2342
+n04374315 2342
+n02806379 2344
+n04381724 2344
+n04491388 2344
+n02698634 2348
+n03355925 2348
+n03141823 2348
+n03274265 2170
+n04453156 2170
+n04122349 2170
+n04156140 2170
+n03475581 2170
+n02902687 2170
+n04185946 2170
+n03908714 2172
+n04310904 2172
+n03145522 2173
+n04039381 2173
+n04292414 2369
+n04409806 2369
+n02772700 2369
+n04426316 2174
+n04333129 2174
+n03012013 2374
+n04072551 2374
+n03831382 2374
+n03651843 2374
+n04156946 2177
+n03873416 2177
+n02831894 2179
+n04150153 2179
+n03258905 2179
+n04292921 2179
+n02906734 2179
+n04367480 2179
+n04111190 2180
+n04549629 2180
+n04182322 2180
+n03949317 2180
+n03616428 2180
+n02764779 2180
+n03976657 2180
+n03351979 2180
+n03091044 2180
+n04434531 2180
+n03244231 2387
+n03127408 2387
+n04472563 2387
+n04277493 2387
+n02946824 2387
+n02871824 2393
+n04319937 2393
+n04230603 2393
+n03051396 2393
+n02931836 2393
+n04267577 2393
+n03726993 2393
+n03726760 2407
+n02883004 2407
+n04610676 2407
+n03775847 2409
+n04115996 2409
+n03711999 2409
+n03382856 2409
+n03374372 2394
+n04279353 2394
+n03908204 2181
+n03906997 2181
+n03518943 2181
+n03003091 2181
+n03128248 2181
+n03652100 2181
+n02783161 2419
+n04185529 2419
+n04033901 2419
+n03388183 2419
+n03326948 2419
+n03405725 1832
+n03842156 2429
+n03200906 2429
+n04550184 2429
+n02821943 2429
+n04379243 2429
+n04379964 2429
+n04549122 2429
+n03636649 2429
+n03201035 2429
+n04555400 2429
+n02912065 2429
+n02933112 2429
+n02766320 2429
+n02822579 2429
+n03649797 2429
+n03129753 2429
+n02870880 2429
+n03290653 2429
+n03298716 2429
+n04161981 2429
+n04165409 2429
+n03015254 2429
+n03337140 2430
+n04104147 2452
+n02963302 2452
+n04529681 2452
+n03050546 2432
+n02739550 2432
+n02818832 2433
+n02831724 2458
+n03962852 2458
+n03540914 2458
+n02920083 2458
+n04491638 2458
+n03388549 2458
+n03115762 2458
+n02920259 2458
+n04503413 2458
+n04236809 2458
+n04222210 2458
+n03482252 2458
+n03799876 2458
+n03225988 2458
+n03414676 2434
+n03465426 2434
+n04381587 2434
+n03116530 2434
+n02699629 2434
+n02894337 2434
+n04301000 2434
+n03090000 2434
+n03904060 2434
+n03620967 2434
+n03850492 2434
+n04398951 2434
+n03653583 2434
+n04603729 2434
+n03428226 2434
+n03238586 2434
+n03179701 2434
+n03246933 2434
+n03063968 2434
+n04480033 2434
+n03092883 2434
+n03011741 2476
+n02789487 2476
+n03735963 2476
+n04061681 2476
+n04130143 2495
+n04247736 2495
+n03231368 2486
+n03630262 2486
+n04608329 2489
+n04164868 2489
+n03164722 2489
+n03201208 2435
+n03202354 2505
+n04067921 2505
+n03367059 2437
+n04380533 2437
+n04057981 2437
+n03237340 2441
+n03018349 2441
+n03742115 2441
+n02804414 2442
+n03131574 2442
+n02970534 2442
+n03125729 2442
+n03001627 2449
+n04447861 2449
+n04326896 2449
+n04256520 2449
+n03858418 2449
+n02828884 2449
+n03649674 2518
+n03002711 2518
+n04099969 2518
+n04373704 2518
+n04429376 2518
+n04331277 2518
+n03632729 2518
+n03518445 2518
+n02738535 2518
+n04590933 2518
+n03376595 2518
+n04576002 2518
+n03790953 2518
+n02791124 2518
+n03262932 2532
+n04062428 2532
+n03786621 2532
+n04593077 2532
+n03168217 2534
+n02946270 2534
+n03801880 2520
+n04382438 2520
+n03380724 2520
+n04177755 2521
+n03165096 2521
+n03100346 2521
+n03693474 2521
+n03015149 2549
+n04344873 2549
+n03891251 2523
+n03360622 2523
+n03920867 2523
+n04177820 2523
+n04590021 2523
+n03016953 2451
+n03518305 2451
+n02843553 1833
+n03508101 1833
+n03666591 1833
+n06791372 1833
+n03099945 1833
+n03141702 1833
+n03243218 1833
+n03626760 1833
+n03904909 1833
+n03800933 1833
+n04200537 1833
+n04198797 1833
+n03699975 1833
+n03088707 1833
+n02776205 1833
+n04294212 1833
+n03339643 1833
+n03738472 1833
+n02676261 1833
+n04474466 1833
+n03008976 1833
+n02688443 1833
+n04114844 1833
+n03929660 1833
+n03287351 1833
+n03320046 1833
+n03553019 1833
+n03175604 1833
+n02678897 1833
+n04461879 1833
+n04359589 1833
+n03851341 1833
+n04331639 1833
+n04450749 1833
+n03923918 1833
+n03574816 1833
+n03074855 1833
+n04074963 1833
+n03302790 1833
+n03075768 1833
+n04554406 1833
+n04210120 1833
+n04562262 1833
+n02855089 1833
+n04526964 1833
+n02895606 1833
+n02730265 1833
+n04226826 1833
+n03467796 1833
+n04081844 1833
+n03614007 1833
+n03269401 1833
+n02729965 1833
+n03345837 1833
+n03111899 1833
+n04069276 1833
+n02694426 1833
+n03277771 1833
+n04252331 1833
+n03525827 1833
+n03744840 1833
+n03613294 1833
+n03827536 1833
+n04263760 1833
+n03568117 1833
+n03180969 1833
+n02895438 1833
+n03565288 1833
+n02683558 1833
+n03537241 1833
+n03267972 1833
+n04228054 1833
+n03664675 1833
+n04258333 2561
+n03272239 2561
+n04041069 2561
+n03423479 2561
+n03099147 2561
+n04265275 2561
+n04330267 2561
+n03031422 2562
+n03728437 2562
+n07273802 2563
+n06793231 2563
+n06794110 2563
+n06874185 2563
+n03269203 2564
+n02981321 2564
+n03582959 2646
+n04375405 2646
+n03307792 2566
+n02988963 2566
+n03580518 2566
+n04338517 2569
+n03279153 2569
+n03614532 2569
+n04586932 2569
+n02803349 2569
+n03915437 2569
+n03254862 2653
+n03025886 2653
+n02787622 2653
+n04615226 2653
+n04132603 2653
+n03467517 2653
+n02880546 2653
+n04224842 2653
+n03698360 2660
+n03716887 2660
+n03716966 2660
+n03495258 2660
+n02676566 2664
+n03499907 2664
+n04506289 2664
+n03272010 2664
+n04536153 2665
+n04536866 2665
+n02992211 2665
+n04536335 2665
+n04536595 2665
+n04330998 2665
+n04419642 2654
+n03273551 2654
+n04376400 2654
+n03928116 2655
+n03039015 2655
+n03854065 2655
+n02672831 2655
+n03452741 2684
+n04515003 2684
+n04278353 2684
+n03738066 2684
+n02766792 2688
+n03086457 2688
+n03496296 2685
+n04278247 2685
+n03840681 2656
+n04598582 2656
+n02891788 2656
+n03854815 2656
+n03393324 2656
+n04579667 2656
+n03945615 2656
+n03609397 2656
+n03372029 2697
+n02817799 2697
+n03228016 2705
+n04222847 2705
+n02804610 2706
+n03838899 2706
+n03037709 2707
+n04141076 2707
+n02793089 2698
+n02912894 2698
+n03369276 2698
+n03394916 2698
+n04487394 2698
+n03110669 2698
+n03494537 2700
+n03494278 2700
+n03086670 2700
+n03006626 2702
+n03884397 2702
+n02775483 2702
+n03343354 2702
+n03912218 2702
+n03245724 2702
+n02803934 2657
+n02804252 2657
+n02804123 2657
+n03301568 2657
+n03483230 2658
+n02869249 2658
+n03447721 2658
+n04532831 2658
+n04311174 2658
+n03721384 2658
+n03440682 2658
+n03017168 2658
+n03612965 2658
+n03720891 2658
+n03249569 2658
+n03157348 2658
+n02869737 2741
+n02803666 2741
+n04387400 2741
+n04249415 2741
+n04410086 2741
+n04243941 2572
+n03996416 2572
+n03999992 2572
+n02769290 2572
+n04004475 2572
+n03702248 2572
+n03789946 2572
+n04252653 2572
+n02977058 2572
+n03322940 2572
+n03082979 2572
+n04613939 2572
+n03765561 2572
+n04303357 2572
+n03997484 2572
+n03087069 2572
+n04303497 2572
+n04237423 2572
+n04417180 2572
+n04064401 2572
+n02938886 2572
+n04525305 2748
+n04243546 2748
+n02760199 2748
+n03418915 2750
+n02829596 2750
+n03551395 2750
+n04024274 2750
+n03007591 2752
+n03563200 2752
+n04004767 2752
+n03250405 2752
+n03672827 2752
+n03643737 2752
+n03675235 2752
+n04419868 2752
+n03985069 2776
+n04505036 2776
+n02794664 2777
+n04595285 2777
+n03225777 2778
+n02909285 2788
+n03571942 2788
+n04184435 2753
+n03240892 2753
+n03460040 2753
+n03646296 2791
+n03766044 2791
+n03287733 2754
+n03273061 2754
+n03507963 2796
+n03596285 2796
+n02761557 2796
+n02687423 2796
+n03433877 2796
+n04309049 2798
+n03579982 2798
+n04591517 2804
+n03424630 2804
+n03193107 2804
+n03859000 2804
+n04040373 2804
+n04099175 2799
+n03321103 2799
+n02872333 2810
+n04265904 2810
+n02700064 2802
+n04587404 2802
+n04304375 2797
+n03616763 2797
+n03146846 2757
+n03500699 2757
+n03075634 2757
+n04428191 2757
+n03496892 2757
+n03210245 2818
+n03496612 2818
+n04238763 2758
+n06359193 2758
+n03528523 2758
+n04175147 2758
+n03196324 2758
+n04358117 2829
+n04603399 2829
+n03918480 2829
+n03985232 2832
+n03180011 2832
+n03832673 2833
+n03956785 2833
+n03642806 2833
+n03485407 2833
+n03914337 2760
+n04561422 2760
+n03736064 2760
+n03063485 2760
+n04477219 2760
+n04587559 2760
+n03272125 2762
+n03996145 2762
+n02911332 2762
+n03034663 2846
+n03000684 2846
+n04380916 2846
+n04121728 2846
+n02786837 2846
+n04279462 2766
+n03689157 2766
+n03604156 2767
+n03452267 2767
+n02666196 2768
+n02679257 2768
+n03483823 2768
+n04171831 2573
+n04594489 2573
+n03106898 2573
+n03510244 2573
+n02934168 2573
+n03760310 2860
+n04471632 2860
+n03666362 2860
+n03020034 2860
+n03336575 2861
+n03604843 2861
+n04402984 2861
+n03898129 2861
+n04401828 2861
+n03995265 2862
+n03307037 2862
+n03300443 2864
+n03268918 2864
+n04004990 2864
+n03995535 2864
+n03350602 2574
+n03373237 2880
+n03251932 2881
+n04573937 2881
+n04334365 2881
+n03861271 2575
+n04520784 2575
+n04332243 2576
+n02688273 2576
+n03843555 2576
+n04216634 2887
+n04398834 2887
+n03066849 2887
+n03407865 2577
+n02710201 2577
+n04040759 2577
+n03736970 2577
+n04110955 2577
+n04112430 2577
+n02969010 2577
+n03096960 2577
+n03996849 2577
+n02761392 2577
+n02677718 2577
+n03102859 2577
+n03431243 2577
+n04392764 2577
+n03339529 2577
+n04289027 2896
+n04011827 2896
+n02709367 2896
+n03446268 2896
+n04568069 2896
+n03700963 2896
+n04167346 2896
+n04021798 2896
+n03432129 2896
+n04088797 2896
+n02918595 2896
+n03532672 2896
+n04228215 2896
+n03119510 2896
+n04063154 2896
+n04371774 2896
+n04590746 2896
+n04586581 2896
+n04586421 2896
+n03189083 2896
+n04211528 2896
+n03296081 2896
+n02903204 2896
+n03150232 2896
+n04282494 2896
+n03082807 2896
+n02686227 2896
+n02962200 2896
+n03198500 2896
+n02973017 2896
+n04475411 2896
+n03431745 2896
+n04306592 2896
+n02692086 2909
+n04154152 2909
+n04020298 2913
+n04574999 2913
+n03559999 2913
+n03659809 2913
+n03566329 2913
+n03767203 2944
+n04563204 2944
+n04101701 2944
+n02836035 2944
+n02980036 2944
+n03460147 2944
+n04115144 2944
+n03334912 2944
+n04543772 2944
+n04563413 2944
+n02974003 2944
+n04289690 2944
+n03944341 2944
+n03992509 2944
+n03430551 2944
+n03244919 2944
+n03874293 2944
+n04113194 2944
+n04290507 2962
+n02833793 2962
+n03943115 2962
+n04051549 2947
+n02764505 2947
+n04154340 2947
+n03456299 2915
+n03425413 2915
+n02835724 2915
+n04354487 2915
+n03487886 2915
+n02995871 2915
+n03329302 2917
+n04102406 2917
+n02966193 2917
+n04510706 2921
+n03054901 2921
+n03393761 2982
+n03209359 2982
+n02860415 2926
+n04067472 2926
+n04211857 2926
+n02848523 2897
+n03473227 2897
+n03032811 2897
+n04111668 2897
+n03873699 2988
+n03563460 2988
+n03320421 2988
+n03208556 2990
+n04019541 2995
+n02890188 2995
+n04448361 2995
+n03397947 2995
+n03954393 2995
+n04385799 2991
+n03712111 2991
+n04519153 2900
+n04313503 2900
+n03450018 2900
+n03602883 2900
+n04072193 2900
+n04372370 2900
+n02783459 3003
+n02927887 3003
+n04438507 3005
+n03374649 3005
+n03325088 3007
+n04422875 3007
+n02727141 3007
+n03775636 3013
+n04327682 3013
+n04445952 3008
+n04027023 3008
+n03186818 3008
+n03537412 3019
+n03793850 3019
+n03222516 3019
+n02826589 3019
+n03363549 2903
+n03795758 2903
+n03469493 2903
+n03103396 2904
+n03301833 2904
+n02686379 2904
+n03432061 2905
+n03389611 2905
+n04579432 2578
+n04218564 2578
+n03743279 2578
+n03506560 2578
+n02824448 2578
+n03123917 3037
+n03028596 3037
+n03201529 3037
+n04275548 2579
+n03794056 2579
+n03680858 2579
+n04568557 2579
+n03819994 2579
+n03639077 3045
+n03352628 3045
+n04529962 2581
+n04283255 2581
+n04283096 2581
+n04112252 2581
+n03357716 2581
+n04117464 2581
+n03536122 2581
+n04592741 2581
+n03303217 2585
+n03271574 2585
+n02887079 2587
+n03176386 2587
+n02768114 2590
+n04320973 2590
+n03933933 2590
+n03934042 2590
+n02767433 2590
+n04190052 2590
+n03638883 2590
+n02783994 2590
+n04283378 2590
+n02797692 2590
+n04314914 2590
+n02887209 2590
+n03938401 2590
+n02817031 2590
+n04098513 2590
+n03057920 2590
+n03495570 2590
+n04081044 2590
+n02888569 2590
+n04386051 2590
+n02871005 2590
+n04341414 2590
+n03506184 2590
+n04161358 2590
+n04430475 2590
+n03490884 2590
+n04038440 2590
+n03495039 2590
+n02953455 3064
+n03632577 3064
+n02871439 3065
+n03719343 3065
+n03814639 3071
+n03622839 3071
+n02713003 3071
+n02768655 3071
+n02737660 3077
+n03505133 3077
+n03019685 3077
+n02741475 3077
+n04148579 3078
+n03105467 3078
+n04190376 3078
+n04220036 3081
+n04094720 3081
+n04515129 3081
+n02886599 3081
+n04476831 3081
+n02815950 3081
+n04590263 3103
+n03223686 3103
+n04318787 3105
+n03592773 3105
+n03073977 3105
+n03988170 3105
+n04360798 3113
+n02974348 3113
+n03443149 3114
+n03821518 3114
+n02864593 3114
+n03637181 3114
+n04402449 3114
+n03733131 3114
+n04436329 3114
+n04119751 3106
+n04433585 3106
+n04045644 3108
+n03437941 3108
+n04436185 3108
+n03366974 3108
+n03601840 3108
+n02970685 3083
+n03937931 3083
+n03955489 3083
+n04123740 3083
+n03002096 3083
+n02835915 3083
+n02910145 3083
+n02770830 3083
+n04325041 3134
+n03288886 3134
+n04485082 3086
+n04275175 3086
+n03704549 3086
+n03801760 3086
+n02943871 3141
+n03262809 3141
+n02759257 2591
+n04009801 2591
+n03340723 2591
+n03643253 2591
+n03656484 2591
+n03838298 3151
+n03087366 3151
+n02943241 3151
+n02709101 3151
+n03094159 3151
+n04355933 3151
+n03309465 3151
+n03333711 3151
+n03395859 3151
+n03987376 3154
+n03049782 3154
+n04403413 3154
+n04583212 3154
+n03967396 2595
+n04147495 2595
+n03733925 2595
+n04565375 2595
+n03467068 2595
+n03231160 2595
+n02708711 2595
+n03813176 2595
+n03852280 2595
+n03739693 2595
+n03575958 2595
+n02981911 2595
+n03308152 2595
+n04419073 2595
+n04089836 2595
+n04383015 2595
+n03070193 3166
+n03760944 3166
+n02670382 3166
+n04340521 3166
+n03709206 3166
+n03092656 3166
+n04403638 3185
+n03760671 3185
+n02751295 3187
+n03293863 3187
+n03852688 3189
+n04044716 3189
+n04070207 3191
+n03333129 3191
+n04068601 3191
+n02978478 3195
+n03822767 3195
+n04145863 3195
+n03715114 3195
+n03279508 3188
+n03332989 3188
+n03667829 3188
+n02841506 3202
+n03484931 3202
+n03850053 3202
+n03082280 3202
+n03692522 3202
+n03868643 3167
+n03247083 3167
+n04070415 3167
+n04053508 3167
+n02794156 3167
+n03904782 3167
+n04421872 3167
+n02751215 3167
+n03735637 3167
+n03429288 3167
+n04437953 3167
+n02710600 3167
+n02939866 3167
+n03991837 3167
+n04382880 3167
+n04141975 3167
+n04392113 3167
+n03753077 3167
+n03554460 3167
+n04180888 3167
+n04118776 3167
+n02699915 3167
+n04029734 3214
+n03736470 3214
+n04559730 3217
+n04518343 3217
+n02710429 3217
+n03424862 3217
+n04001499 3217
+n03718335 3236
+n04274985 3236
+n02753394 3218
+n03046257 3218
+n04555897 3218
+n04355338 3218
+n04438304 3218
+n03544143 3218
+n03452594 3240
+n03196217 3240
+n02694662 3240
+n04548280 3240
+n02708093 3240
+n03909406 3240
+n03145147 3240
+n03197337 3241
+n02708433 3241
+n03973839 3241
+n04607869 3241
+n04328186 3243
+n03891332 3243
+n03026907 3243
+n04528968 3220
+n03759661 3220
+n02777100 3223
+n02708555 3261
+n03277459 3261
+n03272810 3225
+n03841143 3225
+n02702989 3225
+n04273796 3225
+n03842986 3225
+n04561287 3225
+n04541320 3225
+n03708843 3225
+n04449966 3168
+n03467984 3168
+n02879718 3168
+n02880393 3168
+n02892948 3168
+n03624134 3168
+n04373894 3168
+n04346157 3168
+n04008634 3168
+n02715712 3273
+n03343853 3273
+n04177041 3273
+n02689274 3273
+n03423306 3273
+n03875955 3273
+n02950826 3273
+n02759963 3282
+n03948459 3282
+n04502851 3282
+n03732020 3282
+n03803116 3282
+n04090263 3282
+n04076284 3282
+n04171459 3288
+n02760429 3288
+n03416775 3295
+n03695857 3295
+n04171629 3295
+n02760855 3296
+n02749479 3296
+n02760658 3296
+n03701391 3296
+n04347519 3303
+n02923682 3304
+n04517211 3304
+n03607659 3304
+n04450133 3304
+n03073296 3289
+n03178674 3289
+n04086273 3289
+n03427202 3289
+n03363749 3292
+n03802007 3292
+n04250224 3293
+n04585980 3293
+n02961451 3293
+n03136369 3274
+n03687928 3274
+n03615790 3277
+n02812949 3277
+n03699591 3277
+n03158885 3277
+n04054361 3278
+n03327691 3278
+n02904640 3278
+n02987492 3278
+n04121511 3325
+n03292475 3325
+n03375575 3325
+n02916350 3280
+n02950943 3280
+n03080633 3170
+n04015908 3170
+n02745611 3172
+n03178000 3172
+n03706229 3172
+n03080497 3172
+n02841315 3173
+n04272054 3173
+n04009552 3173
+n04403925 3173
+n03443912 3340
+n04356056 3340
+n04238617 3341
+n03399761 3341
+n03795976 3341
+n03864692 3341
+n03555662 3174
+n02963503 3174
+n04376876 3174
+n04317175 3174
+n03643149 3174
+n03858183 3174
+n04364545 3174
+n04083800 3355
+n03514451 3355
+n03938037 3175
+n04056180 3175
+n03302671 2598
+n04477387 2598
+n04080833 2605
+n04251144 2605
+n03868863 2605
+n02731629 2605
+n03876231 2606
+n04287747 2606
+n02889646 2609
+n03484576 2609
+n03323703 2609
+n04162706 2609
+n03652932 2609
+n04125853 2609
+n02891188 2609
+n03803284 2609
+n02999936 2609
+n02865665 3370
+n02910353 3370
+n03627232 3370
+n03041114 3370
+n03051249 3370
+n02982599 3370
+n03940256 3370
+n03229244 3370
+n04153751 3370
+n04238321 3370
+n02928608 3370
+n04159354 3370
+n03887185 3370
+n03682487 3370
+n04431745 3370
+n03683606 3370
+n03038281 3370
+n03043958 3370
+n02960690 3370
+n03804744 3370
+n04445327 3370
+n03836451 3370
+n02881906 3379
+n02880189 3379
+n03644858 3382
+n03497352 3382
+n04095342 3383
+n03476313 3383
+n04227900 3383
+n03499354 3383
+n02903126 3383
+n02860640 3383
+n02796318 3383
+n04127249 3383
+n04197781 3387
+n03057541 3387
+n04554871 3388
+n03423719 3388
+n03503477 3414
+n03855604 3414
+n03874599 3390
+n04136800 3390
+n03645011 3390
+n03075370 3390
+n03223162 3390
+n03886762 3394
+n02915904 3394
+n03476684 3394
+n03551084 3374
+n03208938 3425
+n03250089 3425
+n04505470 2610
+n04036303 2610
+n03085013 2610
+n03928814 2610
+n03033362 2611
+n04168199 2611
+n03589513 2611
+n03098140 2611
+n04401949 2611
+n03034244 2611
+n03968293 2611
+n03275681 2611
+n03163222 2611
+n04470953 2611
+n04257986 2611
+n02715229 2611
+n02955247 2611
+n04269270 2611
+n04072960 2611
+n04364160 2611
+n04257790 2611
+n02810471 2611
+n04414675 2611
+n03048883 3432
+n04595855 3432
+n03084420 3432
+n03577090 3453
+n03778817 3453
+n04004210 3453
+n03578656 3453
+n03125057 3456
+n03033986 3456
+n03788047 3441
+n03274561 3441
+n03261776 3461
+n03759954 3461
+n03691459 3461
+n04402580 3462
+n03505667 3462
+n03087816 3463
+n02963692 3463
+n04502670 3464
+n02917377 3464
+n04390873 3464
+n04599124 3464
+n04349401 3464
+n03846772 3443
+n03204955 3443
+n04041747 3474
+n04404817 3474
+n03207305 3475
+n04142999 3475
+n04610274 3475
+n04540547 3449
+n03359285 3481
+n03651388 3481
+n03870980 2614
+n04013729 2614
+n04258138 2615
+n03773035 2615
+n03485198 3487
+n02965783 3487
+n04059947 3489
+n03861842 3489
+n02921756 2616
+n02761834 2616
+n04201064 2616
+n03343737 2616
+n04058594 2617
+n04143140 2617
+n04494204 2617
+n03211117 2617
+n03918737 2617
+n03221351 2617
+n04464615 2617
+n03793489 2617
+n02714751 2617
+n03506727 2617
+n02823124 2617
+n04484432 3498
+n03913343 3498
+n03085219 3499
+n03782190 3499
+n04152593 3499
+n03196598 3499
+n03676759 3499
+n03361380 3499
+n04588739 3499
+n03187268 3499
+n02940570 3499
+n03085602 3511
+n02769075 3511
+n02988066 2619
+n03027250 2619
+n03070059 2619
+n03525454 2619
+n04538552 2619
+n02948557 3523
+n03031152 3523
+n02947818 3525
+n03746005 3527
+n03746155 3527
+n02935017 2620
+n03851787 2620
+n03706653 2620
+n03744276 2620
+n03708036 2620
+n04063868 2620
+n02763306 2620
+n03079230 3531
+n04533946 3531
+n02988679 3537
+n02988486 3537
+n02757061 3537
+n03492542 3532
+n03209910 3532
+n03359436 3533
+n04052757 3533
+n04534359 3534
+n02979399 3534
+n04391838 3535
+n03924069 3535
+n03694639 3549
+n04178190 3549
+n03636248 2623
+n03665366 2623
+n03358172 3552
+n03640988 3552
+n02948072 3552
+n03818343 3552
+n04534895 3552
+n04384910 3552
+n03423877 3552
+n03844045 3552
+n03549897 3552
+n03370387 3552
+n04335886 3552
+n04286575 3552
+n03272383 3552
+n03590841 3555
+n03018712 3555
+n03359137 3566
+n03665924 3566
+n03911767 3566
+n03503997 3553
+n04107743 3553
+n04339879 3553
+n03318294 3553
+n04148703 3553
+n04160847 3553
+n03824713 3553
+n02852173 3553
+n04456115 3553
+n03365374 3553
+n03401129 2624
+n03442597 2624
+n03187037 2624
+n04529108 2624
+n03975232 2624
+n03668279 3586
+n03482523 3586
+n04371050 3588
+n03772584 3588
+n04164757 3588
+n03544238 3588
+n04288272 2630
+n04116098 2630
+n03066359 3593
+n02886321 3593
+n03525074 2632
+n04585745 2632
+n03281145 2632
+n03126707 2632
+n04575824 2632
+n03178430 2632
+n03733281 1835
+n03078287 1835
+n03820728 1835
+n03440216 1835
+n04080138 1835
+n03302938 1835
+n03738241 1835
+n03085915 1835
+n04141712 1835
+n04082886 1835
+n04545858 3604
+n04041544 3604
+n04400289 3604
+n04402746 3604
+n03578055 3604
+n03580845 3604
+n04404412 3615
+n04137897 3619
+n04365328 3619
+n03072201 3619
+n03681477 3605
+n04358491 3605
+n03300216 3623
+n04595028 3623
+n04008385 3609
+n03674440 3609
+n04366116 3609
+n03401279 3609
+n03957315 1836
+n04488202 1836
+n04555700 1836
+n03206908 1836
+n02893692 1836
+n03210683 1836
+n03991062 1836
+n02920658 1836
+n04074185 1836
+n03147509 1836
+n02774152 1836
+n02978881 1836
+n03256032 1836
+n02773037 1836
+n03733805 1836
+n03438257 1836
+n03875806 1836
+n03733644 1836
+n03291819 1836
+n04183329 1836
+n03935335 1836
+n02801938 1836
+n04179712 1836
+n04139859 1836
+n03994614 1836
+n02946921 1836
+n04576211 1836
+n04600312 1836
+n02839910 1836
+n02949542 1836
+n03779370 1836
+n02964843 1836
+n04533700 1836
+n02975212 1836
+n02974697 1836
+n04531098 1836
+n03233905 1836
+n04060904 1836
+n03871083 1836
+n04560292 1836
+n02883344 1836
+n03062336 3634
+n03920288 3634
+n03456024 3634
+n04176190 3634
+n04499062 3634
+n04350581 3634
+n02880940 3634
+n02978753 3634
+n04050933 3634
+n02927764 3634
+n04130257 3678
+n03775546 3678
+n03984759 3678
+n02997910 3678
+n04263257 3678
+n04023695 3678
+n04103769 3636
+n02682922 3636
+n04254120 3636
+n02754103 3636
+n03571280 3636
+n03174731 3640
+n02815749 3640
+n03629520 3640
+n03063073 3640
+n03002948 3640
+n04397452 3640
+n03216710 3640
+n03301940 3641
+n04207343 3641
+n03055418 3641
+n04083309 3641
+n02769748 3644
+n04122685 3644
+n02816656 3644
+n04134008 3644
+n02970408 3644
+n03883524 3644
+n03253886 3644
+n02870676 3644
+n04452528 3644
+n03709823 3644
+n04026417 3644
+n03235796 3644
+n03291963 3644
+n04124098 3644
+n04122825 3644
+n03993180 3644
+n04204081 3644
+n04446844 3644
+n03414029 3644
+n03619793 3644
+n03958227 3644
+n03445617 3644
+n04235860 3644
+n03469903 3644
+n03461288 3644
+n04284572 3719
+n03972524 3719
+n04544450 3719
+n03321563 3719
+n03521899 3730
+n03898395 3730
+n03372549 3646
+n04496872 3646
+n04559910 3646
+n02918831 3646
+n03676623 3646
+n04249882 3646
+n04206225 3646
+n02823750 3646
+n04119360 3646
+n03443371 3646
+n04592099 3646
+n03062245 3650
+n04131690 3650
+n03914438 3650
+n03883385 3652
+n03050864 3652
+n03482405 3652
+n02893608 3652
+n04204238 3652
+n04582349 3652
+n03764736 3656
+n02823510 3656
+n04255586 3656
+n03904433 3657
+n02946509 3657
+n04103364 3657
+n03791053 3657
+n04170037 3657
+n04509417 3657
+n04543158 3657
+n02804515 3657
+n03484083 3657
+n02766534 3657
+n02834778 3657
+n03538634 3657
+n04467099 3657
+n02959942 3657
+n04482393 3657
+n02740533 3762
+n04065272 3762
+n04464852 3762
+n04252077 3762
+n02916179 3762
+n03684823 3762
+n04335435 3762
+n03791235 3762
+n04465501 3762
+n03384352 3762
+n02740300 3773
+n02739889 3773
+n03256788 3774
+n02946348 3774
+n04520382 3774
+n04211219 3778
+n03193597 3778
+n03272562 3778
+n04389854 3778
+n04465358 3778
+n04310018 3778
+n03193260 3789
+n03193423 3789
+n03506880 3780
+n04490091 3780
+n02704792 3780
+n03389761 3780
+n03790512 3780
+n03444034 3780
+n02958343 3780
+n04252225 3780
+n03345487 3797
+n04520170 3797
+n04467665 3797
+n04474035 3797
+n03417042 3797
+n03632852 3797
+n04461696 3797
+n03256166 3797
+n04465666 3797
+n03930630 3797
+n03173929 3805
+n03796401 3805
+n03896419 3805
+n03977966 3805
+n02871314 3805
+n04466871 3800
+n03785016 3800
+n02814533 3802
+n03680512 3802
+n03777568 3802
+n03268790 3802
+n03770679 3802
+n03100240 3802
+n03079136 3802
+n02930766 3802
+n04201733 3802
+n04037443 3802
+n03498781 3802
+n04097373 3802
+n02831335 3802
+n04285965 3802
+n04166281 3802
+n03594945 3802
+n03670208 3802
+n03141065 3802
+n02701002 3802
+n04516354 3802
+n04322801 3802
+n04347119 3802
+n03870105 3802
+n03543394 3802
+n04285008 3802
+n03119396 3802
+n03122295 3764
+n02970849 3764
+n03538406 3848
+n03255899 3848
+n03599486 3848
+n03981924 3848
+n03868242 3848
+n04397027 3766
+n03648431 3766
+n04176068 3766
+n02797295 3766
+n04204347 3766
+n03490119 3766
+n02835271 3768
+n04126066 3768
+n04026813 3768
+n03792782 3768
+n02968473 3769
+n03435991 3864
+n02912557 3864
+n04297098 3864
+n03389889 3864
+n02775039 3771
+n03393912 3771
+n03895866 3771
+n02932523 3771
+n02885108 3870
+n04389521 3870
+n03828020 3871
+n04020912 3871
+n03200357 3871
+n04246855 3871
+n04065789 3659
+n02747177 3659
+n03678558 3659
+n04134523 3661
+n03935116 3661
+n02900705 3665
+n03078995 3665
+n03210372 3665
+n03619650 3665
+n04548362 3665
+n02962843 3665
+n03986355 3665
+n03214582 3665
+n03031012 3665
+n04200000 3665
+n03468821 3665
+n02755140 3665
+n03683995 3665
+n04608435 3665
+n04556533 3665
+n02774630 3665
+n03438863 3665
+n03487533 3899
+n04137217 3899
+n02773838 3899
+n04491769 3899
+n03498441 3899
+n03420345 3903
+n04570815 3903
+n02967294 3903
+n03986949 3903
+n03865371 3903
+n04518764 3903
+n02863750 3666
+n03355768 3666
+n02881193 3666
+n03633091 3666
+n02876657 3666
+n02877266 3666
+n03990474 3666
+n03950228 3666
+n02808440 3666
+n03786901 3666
+n02909870 3666
+n03241496 3666
+n03129001 3666
+n04591887 3666
+n04001265 3666
+n04493381 3666
+n03572321 3666
+n04438897 3666
+n02801525 3666
+n03784270 3666
+n02758960 3666
+n03029445 3666
+n02795169 3666
+n04388743 3666
+n03593526 3666
+n02993368 3666
+n04447028 3914
+n03350204 3914
+n04149083 3915
+n04263336 3915
+n04246060 3916
+n03983396 3916
+n04557648 3916
+n03603722 3916
+n02985963 3916
+n03449451 3916
+n03937543 3916
+n02962061 3916
+n03359566 3916
+n02823428 3916
+n03571625 3916
+n03174450 3916
+n04579056 3916
+n03140431 3916
+n04591713 3916
+n02960903 3916
+n03923379 3916
+n04579145 3945
+n04560804 3945
+n03521675 3950
+n03295246 3950
+n04422727 3950
+n02952374 3950
+n04518132 3950
+n03709363 3956
+n03595409 3956
+n04139140 3918
+n04398044 3918
+n03259401 3918
+n04516214 3918
+n04324297 3918
+n03612814 3918
+n02939185 3918
+n03915118 3918
+n04397768 3918
+n03063689 3918
+n03064250 3971
+n04132985 3971
+n04399158 3971
+n04225031 3920
+n03543603 3920
+n03379343 3920
+n03797390 3923
+n03693707 3923
+n04389430 3923
+n03063599 3984
+n04443766 3984
+n02824058 3984
+n02836174 3930
+n02843158 3930
+n04553703 3930
+n02788572 3930
+n02823335 3934
+n04592005 3934
+n03610418 3934
+n03426134 3935
+n04560113 3935
+n04173046 3935
+n02732072 3935
+n04078574 3935
+n04562935 4001
+n04049303 4001
+n02951703 3936
+n02705429 3936
+n03101664 3936
+n02815834 3936
+n04516116 3936
+n03725600 3936
+n04522168 3936
+n03133415 3936
+n03593122 3936
+n03960374 3668
+n04476259 3668
+n02982515 3668
+n03259009 3668
+n03004275 3668
+n04131929 3668
+n03416900 3668
+n03565830 3668
+n03543735 3668
+n03858085 3668
+n04255163 3668
+n02747802 3668
+n03871628 3669
+n02919414 3669
+n03167978 3669
+n02778456 4026
+n03500389 4026
+n03870672 4026
+n02782681 3671
+n02971356 3671
+n03064758 3671
+n04200258 3671
+n04253057 3671
+n03908618 3671
+n03127925 3671
+n02786331 3671
+n04589325 3671
+n03014705 3671
+n04340750 3671
+n02998003 3671
+n03710193 3671
+n02978055 3671
+n02836392 3671
+n03871724 3671
+n04452615 4040
+n04462011 4040
+n03064350 4040
+n03535024 4040
+n04477548 4040
+n02989099 4040
+n02977438 4041
+n04125257 4041
+n02976939 4041
+n04125021 4041
+n04469813 1837
+n03002341 1837
+n04214282 1837
+n04019101 1837
+n04172342 1837
+n03538179 1837
+n04524313 1837
+n04231693 1837
+n04103918 1837
+n04467307 1837
+n04196502 1837
+n03678362 1837
+n03306385 4060
+n04212165 4060
+n04468005 4060
+n02924116 4060
+n03680942 4060
+n03394272 4071
+n03896233 4071
+n04349306 4071
+n03711044 4071
+n03394480 4071
+n03078802 4075
+n02917067 4075
+n04487081 4072
+n03769881 4072
+n04146614 4072
+n04310157 4063
+n02918964 4063
+n04099429 4063
+n03764276 4063
+n03773504 4063
+n03125870 4063
+n04235291 4063
+n03478589 4087
+n04389033 4087
+n03886053 4087
+n03919096 4087
+n03549199 4087
+n02686568 4089
+n04530566 4089
+n04264914 4089
+n03547229 4089
+n03510583 4096
+n04308084 4096
+n03666917 4096
+n03491032 4100
+n03439814 4100
+n03512147 4100
+n04552348 4100
+n02691156 4100
+n02759387 4100
+n02867715 4107
+n02704645 4107
+n04012084 4107
+n02690373 4107
+n02842573 4107
+n03365231 4107
+n03595860 4107
+n03335030 4107
+n04308273 4107
+n04160586 4107
+n02686121 4112
+n04583620 4112
+n03604311 4115
+n03596543 4115
+n04308397 4116
+n03577672 4116
+n02692877 4102
+n02850950 4102
+n02782093 4102
+n03541923 4102
+n02858304 4097
+n04476116 4097
+n04610013 4097
+n04194289 4097
+n04128837 4097
+n02792409 4097
+n03662601 4129
+n03977592 4129
+n03447447 4129
+n04158807 4129
+n02792552 4129
+n04095210 4129
+n04495843 4129
+n04024983 4129
+n03939178 4129
+n04244997 4129
+n03329663 4129
+n04409128 4129
+n02947660 4129
+n03344393 4129
+n03790230 4129
+n03236423 4139
+n03981566 4139
+n03545470 4139
+n04229480 4144
+n02951358 4144
+n03199901 4144
+n04037964 4144
+n03105306 4144
+n04612504 4144
+n03436891 4144
+n03602081 4144
+n04115456 4144
+n03609235 4154
+n03861430 4154
+n03254374 4154
+n04038231 4156
+n04038338 4156
+n04273569 4149
+n03859170 4149
+n02932891 4149
+n03552749 4149
+n04197110 4132
+n04606251 4132
+n03896103 4132
+n03947888 4132
+n03668488 4132
+n03541269 4132
+n04309348 4132
+n02965300 4132
+n04224543 4132
+n04552696 4132
+n03673027 4173
+n03698604 4181
+n02965216 4181
+n03141327 4181
+n03874138 4177
+n04317063 4177
+n02878222 4178
+n03095699 4178
+n02784124 4178
+n03845190 4178
+n04347754 4180
+n03466493 4180
+n03397266 4180
+n02812201 4180
+n03466600 4180
+n02687172 4180
+n03718212 4180
+n03180504 4180
+n02755529 4191
+n03811295 4191
+n04612373 4133
+n03045228 4133
+n03327133 4133
+n04242408 4133
+n03612010 4133
+n03186285 4133
+n04128499 4133
+n02793199 4133
+n04147183 4133
+n04587327 4133
+n04483307 4207
+n02981792 4207
+n02982416 4207
+n04266014 4098
+n04264765 4098
+n03218198 4090
+n02860847 4090
+n02861022 4090
+n04336792 4068
+n03122202 4068
+n06271778 1838
+n06255081 1838
+n06263609 1838
+n06276697 4221
+n06272290 4221
+n06276501 4221
+n06277280 4224
+n06281040 4224
+n06277135 4224
+n06278338 4227
+n06278475 4227
+n06274760 4225
+n06272803 4225
+n06272612 4225
+n06263369 4223
+n06266417 4223
+n06595351 4235
+n06267145 4235
+n06596607 4237
+n06596727 4237
+n06596364 4237
+n06596474 4237
+n06267893 4238
+n06267564 4238
+n06267655 4238
+n06266633 4236
+n06267991 4236
+n03938244 1055
+n03872495 1055
+n04135315 4249
+n02823964 4249
+n03408444 4249
+n02967626 4249
+n04053677 1056
+n04151940 1056
+n04453910 1056
+n03380867 1056
+n04014297 1056
+n03045698 1056
+n04605726 1056
+n04513827 1056
+n03050026 1056
+n03724870 1056
+n03341153 1056
+n03366823 1056
+n03058107 1056
+n02952237 1056
+n03357376 1056
+n03221059 1056
+n03376279 1056
+n03956623 1056
+n03261603 1056
+n02944459 4255
+n04201297 4255
+n02954938 4256
+n03717622 4256
+n03661340 4256
+n04041243 4275
+n02877765 4275
+n03825788 4275
+n03047690 4257
+n04199027 4257
+n02735538 4257
+n02872752 4257
+n03361550 4257
+n04241394 4257
+n03865949 4257
+n04122578 4282
+n04239786 4282
+n03027625 4282
+n04124370 4282
+n04272389 4282
+n02904927 4282
+n04593524 4282
+n04545748 4282
+n02855701 4282
+n02713364 4282
+n03041449 4282
+n03411079 4282
+n03680355 4282
+n04120489 4282
+n03868406 4282
+n02882894 4282
+n03967270 4282
+n04022332 4282
+n04133789 4282
+n03025250 4282
+n04027706 4306
+n04386664 4306
+n03364008 4306
+n03297103 4306
+n03600475 4284
+n02925666 4284
+n04228581 4284
+n03521544 4284
+n04089666 4284
+n04116294 4284
+n03516844 4284
+n04542715 4284
+n03124043 4284
+n03798061 4286
+n02873733 4286
+n03067518 4258
+n03046133 4258
+n04554211 4258
+n04444749 4258
+n03797896 4258
+n04192858 4258
+n02888270 4258
+n04151581 4258
+n04187233 4258
+n02826068 4258
+n04181718 4258
+n04191943 4258
+n04281375 4258
+n04416005 4258
+n04105068 4258
+n03314608 4258
+n03530910 4258
+n04187061 4258
+n02955065 4258
+n03725035 4258
+n03315644 4258
+n03142679 4258
+n02937958 4258
+n02739668 4258
+n02840245 4258
+n02840619 4258
+n03546766 4258
+n02851099 4258
+n03673767 4258
+n03959701 4328
+n03539433 4352
+n02740764 4352
+n02895154 4354
+n03513376 4354
+n02950632 4354
+n03623338 4354
+n03929855 4356
+n04130907 4356
+n04589890 4330
+n03347037 4330
+n04590553 4330
+n03788365 4330
+n03637318 4333
+n03889871 4333
+n03652729 4334
+n02825657 4334
+n04172776 4334
+n02843684 4334
+n02951843 4334
+n03610524 4334
+n02763901 4371
+n04507155 4371
+n03415252 4371
+n03409591 4337
+n04357121 4337
+n03718789 4337
+n03220513 4337
+n03522100 4337
+n04435653 4337
+n03546235 4337
+n04523525 4337
+n04234887 4337
+n03413684 4337
+n04417672 4337
+n03148727 4379
+n03435593 4379
+n03847471 4379
+n02796207 4383
+n04087709 4383
+n03527444 4340
+n04141327 4340
+n04207763 4340
+n03548086 4341
+n04423845 4341
+n03213538 4341
+n03657121 4341
+n03424325 4342
+n03314378 4342
+n04229816 4400
+n02983189 4400
+n02862048 4346
+n04192698 4346
+n03000247 4403
+n02916936 4403
+n03112719 4403
+n03146219 4403
+n02933340 4349
+n04045255 4349
+n02873520 4349
+n04589190 4350
+n03592669 4350
+n03151077 4350
+n04211356 4350
+n04525584 4412
+n04590129 4412
+n04102285 4412
+n04418357 4414
+n04209239 4414
+n02925107 4351
+n02890513 4351
+n03436549 4260
+n03291741 4260
+n02992368 4260
+n07248320 4260
+n03590306 4260
+n03958752 4260
+n04207151 4262
+n03885293 4262
+n03654576 4262
+n02767665 4262
+n03114379 4262
+n02785648 4262
+n02876084 4262
+n04240752 4262
+n02820210 4262
+n04236377 4262
+n02851939 4262
+n03309356 4262
+n04231272 4262
+n04162433 4262
+n02786058 4434
+n04369025 4434
+n02979836 4434
+n03267821 4434
+n04033995 4437
+n02683323 4437
+n02849154 4437
+n02822220 4437
+n03731483 4437
+n03898633 4447
+n03266749 4447
+n03128427 4447
+n03123553 4450
+n04034262 4450
+n04046400 4438
+n03688405 4438
+n04118021 4265
+n03223299 4265
+n03727837 4265
+n04144539 4459
+n04183217 4459
+n03998194 4459
+n02904233 4459
+n04297847 4459
+n04066270 4459
+n02908773 4459
+n03353951 4266
+n03445326 4266
+n04528079 4266
+n03875218 4266
+n03805725 4266
+n03437430 4266
+n03115897 4266
+n03284743 4266
+n04525417 4266
+n03342015 4472
+n03284886 4472
+n03285578 4472
+n03844233 4472
+n04557308 4472
+n03646020 4482
+n04581102 4482
+n03261019 4268
+n03973402 4268
+n03642444 4268
+n04450994 4268
+n04084889 4268
+n04412097 4268
+n03337383 4270
+n03729308 4270
+n03970546 1057
+n03802393 1057
+n04395024 1057
+n04525038 1057
+n02809105 1057
+n03615406 1057
+n02828427 1057
+n04123567 1057
+n03188725 1057
+n04539794 1057
+n03253796 1057
+n03013850 1057
+n03115400 1057
+n04459610 1057
+n03132666 1057
+n03885194 1057
+n03019938 1057
+n03326795 1057
+n03115180 1057
+n04525191 1057
+n04138261 1057
+n03625355 1057
+n04137355 1057
+n04003856 1057
+n03356982 1057
+n04568841 1057
+n03409297 1057
+n02944579 1057
+n04605163 1057
+n02977330 1057
+n04395106 1057
+n03779128 1057
+n02904803 1057
+n04524941 1057
+n04198453 1057
+n02878425 1057
+n03703862 1057
+n03819595 1057
+n03877351 1057
+n04613015 1057
+n03914831 1057
+n03932670 1057
+n03785237 1057
+n04414476 1057
+n04056932 1057
+n02675219 1057
+n03106722 1057
+n03917814 1057
+n03016868 1057
+n02922798 1057
+n04432662 1057
+n02802990 1057
+n03631177 1057
+n04189282 1057
+n03435743 1057
+n03983612 1057
+n03175189 1057
+n03357267 1057
+n04184316 1057
+n02942460 1057
+n03836906 1057
+n03233123 1057
+n03430091 1057
+n03855214 1057
+n03386726 1057
+n03437741 1057
+n04599235 1057
+n04350458 1057
+n04383839 1057
+n03653110 1057
+n04502502 1057
+n03854421 1057
+n02952109 1057
+n03298858 1057
+n03160740 1057
+n03843438 1057
+n04393549 1057
+n02903852 1057
+n03947798 1057
+n03529444 1057
+n04482297 4514
+n03227317 4514
+n03595523 4514
+n03429914 4530
+n04496614 4530
+n03016609 4530
+n03485794 4534
+n03463666 4534
+n03258330 4534
+n03207743 4534
+n04459362 4534
+n02786198 4534
+n03471190 4534
+n02834397 4534
+n04127904 4534
+n03897943 4534
+n03490006 4583
+n03887697 4583
+n03207835 4583
+n03381776 4587
+n03383099 4587
+n04278447 4587
+n03505383 4587
+n04455652 4587
+n03712337 4587
+n02782602 4587
+n03598151 4592
+n03775747 4592
+n03410571 4592
+n03696568 4592
+n04307767 4592
+n03645577 4592
+n03358380 4588
+n04208065 4588
+n03809603 4539
+n02820556 4539
+n03703730 4545
+n03938522 4545
+n04045397 1059
+n03663531 1059
+n03662719 4612
+n03703945 4612
+n03662887 4612
+n04326084 1060
+n02897820 1060
+n14943580 1060
+n14785065 1060
+n15074568 1060
+n14820180 1060
+n04035912 1060
+n03766935 4616
+n04313628 4616
+n03530511 4616
+n03460297 4616
+n03149686 4616
+n03455488 4616
+n03344642 4617
+n03796522 4617
+n03043693 4617
+n02681392 4617
+n04339638 4618
+n15102455 4618
+n04234455 4633
+n03341297 4633
+n04453390 4633
+n14908027 4620
+n14976759 4620
+n03111177 1061
+n03282401 1061
+n03451798 1061
+n03292603 1061
+n03815149 1061
+n03723267 1061
+n02892304 1061
+n07621618 1061
+n02732572 1061
+n03178782 1061
+n02681518 1061
+n03397087 1061
+n03635108 1061
+n04395651 4649
+n03762602 4649
+n03282591 4649
+n06883725 4649
+n03516367 4649
+n04682462 4649
+n03354903 4655
+n02788021 4655
+n04458633 4655
+n03140292 4655
+n03362890 4655
+n05244934 4658
+n11487732 4658
+n03597469 4650
+n03397532 4650
+n03649161 4650
+n03914106 4650
+n02787435 4650
+n03030262 4650
+n02685082 4650
+n02887970 4666
+n02852043 4666
+n03909020 4666
+n03814906 4666
+n03436075 1062
+n03899328 1062
+n04096066 1062
+n03895293 1062
+n04215402 4678
+n04461570 4678
+n03904183 4678
+n03519981 4679
+n02969323 4679
+n04426618 4679
+n04466613 4679
+n03215508 4684
+n03306610 4684
+n02744323 4684
+n02762508 4689
+n02758863 4689
+n04335209 4686
+n04334599 4686
+n03948242 4687
+n03539678 4687
+n02680512 4680
+n03089014 4680
+n03895585 4680
+n04493505 4698
+n04244379 4698
+n04250850 4698
+n04562496 4698
+n02984469 4700
+n02795528 4700
+n03944672 4700
+n03533014 4700
+n04385536 4706
+n03231912 4706
+n03147280 4709
+n04257684 4709
+n04497962 4699
+n04298661 4699
+n03415749 4699
+n02981024 4712
+n04048441 4712
+n04391569 1063
+n02784218 1063
+n03572107 4717
+n02680337 4717
+n03957420 4720
+n02992795 4720
+n03506028 4718
+n03438071 4718
+n04440749 4718
+n02739427 4718
+n04040247 4725
+n02971167 4725
+n04381994 1064
+n04087432 1064
+n03153375 4729
+n03438661 4729
+n03527149 4729
+n03963198 4729
+n04284002 4731
+n04380346 4731
+n03383948 4731
+n04284438 4731
+n04263502 4735
+n04398688 4735
+n04350769 4735
+n04597913 4735
+n03557270 4735
+n04381073 4735
+n03180384 4735
+n02976249 4736
+n02928049 4736
+n04307986 4736
+n04380255 4737
+n02973805 4737
+n02687992 1065
+n04406817 1065
+n02693246 1065
+n02692232 1065
+n03745146 1065
+n04329190 1065
+n04306080 1065
+n04551055 4756
+n03452449 4756
+n03131669 4756
+n03768916 1066
+n03214253 1066
+n03587205 4762
+n03406966 4762
+n03093574 1067
+n03672352 1067
+n03051540 4765
+n02729837 4765
+n03655720 4767
+n03456186 4767
+n02855925 4767
+n03825080 4767
+n04015204 4767
+n03859495 4767
+n03815482 4767
+n03625943 4767
+n03692379 4767
+n02728440 4767
+n03068998 4767
+n03763968 4767
+n03502509 4767
+n03877472 4767
+n03419014 4767
+n02742322 4767
+n04596852 4767
+n03863108 4767
+n03441112 4767
+n02671780 4767
+n02846141 4767
+n03381126 4767
+n02756098 4767
+n04059157 4767
+n02814774 4767
+n03746330 4767
+n04335693 4767
+n04241249 4767
+n04194127 4773
+n03863262 4773
+n04001845 4773
+n02738859 4773
+n03386870 4773
+n03216402 4773
+n02730930 4773
+n04207903 4773
+n03121897 4773
+n03015478 4773
+n03268645 4773
+n04266375 4773
+n03623198 4773
+n03450516 4774
+n04532106 4810
+n03010795 4810
+n02669723 4810
+n02811719 4780
+n03324928 4780
+n03239259 4780
+n03615563 4780
+n03513137 4781
+n03531281 4781
+n04498389 4781
+n03497657 4781
+n02954340 4781
+n03124474 4781
+n04432203 4781
+n03379051 4818
+n03492922 4818
+n03127747 4818
+n04356595 4821
+n03404360 4821
+n03124170 4821
+n02817516 4821
+n02859184 4821
+n04248507 4821
+n03325941 4821
+n02987379 4821
+n04259630 4821
+n04482177 4821
+n02818135 4821
+n03984643 4821
+n02869837 4821
+n03950899 4821
+n02881757 4821
+n03766322 4821
+n03046029 4843
+n03937835 4843
+n02799323 4822
+n03103563 4822
+n04209133 4822
+n03610682 4822
+n02776825 4822
+n03331077 4822
+n04387095 4822
+n02831237 4822
+n04232153 4822
+n03049924 4822
+n04228693 4822
+n04556408 4822
+n02807133 4822
+n03787032 4822
+n04612026 4854
+n02816768 4854
+n03502331 4783
+n04143897 4783
+n04104770 4783
+n03188531 4783
+n04605572 4783
+n04097866 4783
+n04574067 4783
+n03655072 4783
+n04230808 4783
+n04508163 4783
+n04172904 4783
+n04531873 4783
+n04197391 4783
+n03863923 4783
+n03540090 4783
+n02922578 4783
+n04488530 4783
+n04489008 4783
+n04332580 4783
+n03404149 4783
+n03816005 4783
+n04370774 4783
+n03657511 4783
+n04371563 4783
+n03487642 4783
+n04046277 4783
+n04350905 4783
+n04370048 4783
+n03450734 4783
+n03314884 4862
+n03826039 4862
+n02998841 4862
+n03719743 4863
+n03797182 4863
+n03505504 4863
+n04495698 4863
+n03325584 4863
+n04325704 4863
+n03520493 4896
+n03615655 4896
+n03237992 4867
+n03617480 4867
+n02667093 4867
+n02807616 4867
+n03410938 4869
+n04269822 4869
+n03866082 4870
+n03454442 4870
+n03770439 4870
+n03617312 4870
+n03732458 4870
+n02780815 4870
+n03205669 4870
+n04136333 4870
+n03534580 4870
+n03920737 4871
+n02892767 4871
+n03387323 4871
+n04223299 4871
+n03421324 4871
+n03132776 4871
+n04508949 4871
+n02863014 4871
+n02944146 4871
+n04514241 4871
+n03013580 4871
+n04508489 4871
+n03112869 4919
+n03885788 4919
+n04103665 4919
+n03673450 4923
+n03688192 4923
+n02930214 4923
+n04509171 4932
+n03824381 4932
+n02854739 4928
+n04426427 4928
+n02837887 4928
+n02901114 4928
+n03885028 4928
+n03234164 4928
+n04602956 4874
+n03629231 4874
+n03595614 4874
+n03163381 4874
+n03978966 4874
+n03057021 4875
+n03045337 4875
+n04252560 4875
+n04363777 4948
+n03254046 4948
+n04187970 4948
+n03398228 4948
+n03630383 4948
+n03456665 4948
+n03589791 4948
+n04049405 4948
+n02957008 4948
+n04123448 4948
+n03404251 4948
+n03751269 4957
+n04222307 4957
+n02867966 4957
+n03902756 4957
+n04368496 4957
+n03228254 4957
+n02864504 4957
+n03891051 4957
+n03844815 4958
+n04479046 4958
+n03770954 4961
+n04122492 4961
+n03980874 4949
+n04445154 4949
+n04445040 4949
+n03607923 4949
+n04173907 4949
+n04497570 4949
+n04186455 4949
+n02936402 4949
+n04205318 4879
+n03877674 4879
+n04370288 4879
+n04132158 4879
+n02896442 4879
+n03019434 4879
+n04233715 4879
+n03600285 4879
+n03903733 4879
+n03688605 4879
+n03594734 4879
+n03107488 4879
+n03660124 4879
+n04337287 4879
+n02825442 4879
+n02910864 4879
+n03543112 4982
+n02831595 4982
+n03653833 4982
+n03815615 4882
+n03128085 4882
+n02865351 5001
+n04591157 5001
+n02883205 5001
+n02847631 5001
+n03710721 4885
+n04371430 4885
+n02837789 4885
+n03226538 4888
+n03943920 4888
+n04222470 4888
+n03885669 4888
+n02925519 4888
+n04427715 5014
+n04504141 5014
+n04502197 4889
+n02963159 4889
+n04370456 4889
+n04021028 4889
+n04453666 4785
+n03464053 4785
+n02944075 4785
+n03236735 4785
+n02861387 5021
+n02854926 5021
+n03480579 5021
+n03062015 5024
+n04136161 5024
+n02936570 5024
+n04355511 5024
+n03013438 5024
+n04334105 5024
+n03450230 5024
+n03604400 5024
+n03205574 5024
+n02898585 5034
+n04397645 5034
+n02781121 5034
+n03429682 4787
+n03775071 4787
+n03616979 4787
+n02827606 4788
+n03405595 4788
+n03781683 5043
+n03527565 5043
+n02972397 5043
+n03540267 4790
+n04434932 5048
+n04254777 5048
+n04323819 5048
+n03885904 5049
+n03710637 5049
+n02752496 5050
+n04378956 5050
+n03622931 5050
+n02736798 5050
+n03836976 5051
+n03026506 5051
+n03384891 4791
+n03289985 4791
+n03859958 4791
+n02726017 4791
+n03113657 4791
+n03320519 4791
+n03113835 4791
+n03398153 4791
+n04285803 4791
+n02669534 4791
+n03206718 4791
+n03476083 4791
+n03201776 5060
+n02780704 5060
+n03201638 5060
+n03239054 5060
+n02683454 5071
+n04459018 5071
+n04584207 5071
+n03237416 4794
+n02887489 4794
+n02752615 4794
+n03528263 4768
+n03251766 4768
+n04517823 5082
+n03584829 5082
+n04488857 5082
+n03150511 5082
+n04580493 5082
+n04179913 5082
+n04174101 5082
+n03620052 5082
+n03534776 5082
+n04475631 5085
+n04309833 5085
+n03207941 5088
+n04070727 5088
+n04554684 5088
+n03102654 5096
+n03273913 5096
+n03557590 5099
+n03170635 5099
+n04442312 5091
+n03761084 5091
+n04442441 5091
+n03063338 5091
+n03543254 5091
+n04542943 5091
+n03212114 5091
+n03297495 5091
+n04330340 5091
+n03862676 5091
+n03378174 5091
+n03557692 5091
+n03102371 5110
+n03273740 5110
+n03425595 5110
+n04003241 5110
+n02905036 5111
+n04111531 5111
+n03259280 5111
+n03425241 5111
+n03483316 5083
+n03050655 5083
+n04277826 5123
+n04496726 5123
+n04607242 5123
+n02808304 4766
+n03219010 4766
+n04499446 4766
+n02821030 4766
+n03938725 5130
+n04188179 5130
+n04439712 1068
+n03971218 1068
+n03223553 1068
+n02856463 1068
+n03250279 1068
+n03882058 1068
+n03635668 1068
+n02846511 1068
+n04251791 5136
+n04189816 5136
+n02731900 5136
+n04225987 5136
+n04214046 5136
+n04149813 5136
+n04543996 5138
+n03502200 5138
+n03005285 1069
+n03969259 1069
+n04254009 1069
+n04446521 5150
+n04208936 5150
+n04559451 5150
+n03371875 5152
+n03993053 5152
+n04108268 1071
+n03106110 1071
+n03644378 5157
+n02919890 5157
+n04290079 5157
+n03107046 5157
+n04426788 5158
+n02874537 5158
+n04581829 5158
+n03641569 5158
+n03367545 5163
+n04598965 5163
+n04605321 5163
+n00004475 1042
+n00006484 1042
+n12739332 5170
+n00017222 5170
+n00015388 5170
+n01326291 5170
+n11537327 5170
+n00007846 5170
+n12992868 5170
+n00005787 5170
+n12172906 5173
+n13083586 5173
+n13123431 5173
+n11536673 5173
+n11552806 5173
+n13083023 5173
+n13100156 5173
+n12476510 5181
+n11545524 5181
+n11552386 5181
+n13121544 5181
+n12205694 5181
+n13100677 5181
+n13103136 5181
+n13085113 5181
+n13084834 5181
+n13134302 5181
+n13084184 5181
+n12477163 5187
+n12477583 5187
+n12477747 5187
+n12480895 5187
+n12479537 5187
+n12481458 5187
+n11547562 5188
+n11545714 5188
+n13221529 5204
+n13220122 5204
+n13223265 5206
+n13223588 5208
+n13223710 5208
+n12953206 5205
+n13194572 5205
+n13205058 5205
+n12961879 5205
+n12953484 5205
+n13186654 5205
+n13197274 5205
+n13173882 5205
+n13229543 5205
+n13192625 5205
+n13185269 5205
+n13193642 5205
+n13207335 5205
+n13183056 5205
+n13200651 5205
+n13195341 5205
+n13206817 5205
+n13199970 5205
+n12957924 5205
+n13198914 5205
+n13199717 5205
+n13215586 5216
+n13190747 5216
+n13193856 5222
+n13194036 5222
+n11665372 5189
+n11596108 5189
+n12694486 5236
+n11666854 5236
+n11669921 5236
+n11672400 5236
+n12606438 5240
+n12799776 5240
+n11736694 5240
+n12008487 5240
+n11955896 5240
+n12879527 5240
+n12884260 5240
+n12034141 5240
+n12290748 5240
+n12026476 5240
+n12833149 5240
+n11892817 5240
+n12914923 5240
+n11969607 5240
+n11794024 5240
+n12026018 5240
+n11672269 5240
+n12830222 5240
+n11811473 5240
+n12022054 5240
+n11971406 5240
+n11826198 5240
+n12950314 5240
+n11857875 5240
+n11988596 5240
+n11939699 5240
+n11915214 5240
+n11821184 5240
+n12293723 5240
+n11814584 5240
+n11725015 5240
+n12890265 5240
+n11733312 5240
+n11859472 5240
+n11971248 5240
+n11888800 5240
+n11971927 5240
+n12898774 5240
+n11810358 5240
+n11904109 5240
+n11943407 5240
+n11978233 5240
+n12683407 5240
+n12950126 5240
+n11726707 5240
+n11813077 5240
+n11889619 5240
+n11905749 5240
+n11812910 5240
+n11900569 5240
+n12020184 5240
+n11960245 5240
+n11859737 5240
+n12909421 5240
+n12041446 5240
+n12909917 5240
+n11992806 5240
+n11807979 5240
+n11925303 5240
+n11971783 5240
+n11939491 5240
+n11918473 5240
+n11989869 5240
+n11727091 5240
+n11793779 5240
+n11891175 5240
+n11792341 5240
+n11839568 5240
+n11943660 5240
+n11947802 5240
+n12475242 5240
+n11815491 5240
+n12480456 5240
+n11839823 5240
+n11732567 5240
+n12475035 5240
+n12360108 5240
+n12833985 5240
+n11941924 5240
+n11883328 5240
+n11719286 5240
+n11736851 5240
+n11887119 5240
+n12001707 5240
+n11950345 5240
+n11892637 5240
+n11805956 5240
+n11892029 5240
+n11806219 5240
+n12008252 5240
+n11918286 5240
+n11962272 5240
+n12093600 5240
+n12836862 5240
+n12093329 5240
+n11733054 5240
+n12020507 5240
+n11931918 5240
+n11958080 5240
+n12877838 5240
+n11812094 5260
+n11811706 5260
+n11923174 5268
+n12023726 5268
+n12023407 5268
+n11923637 5268
+n11990313 5268
+n11915899 5268
+n12030908 5268
+n12015221 5268
+n11990167 5268
+n11981192 5349
+n11980318 5349
+n11972759 5349
+n11921395 5349
+n12294124 5270
+n12295796 5270
+n12294723 5270
+n12294331 5270
+n12294871 5270
+n12296432 5270
+n12295033 5270
+n11726269 5272
+n11725821 5272
+n11725973 5272
+n12891305 5273
+n12891643 5273
+n11978713 5283
+n11979527 5283
+n11978961 5283
+n11979715 5283
+n12683571 5284
+n12683791 5284
+n11901759 5291
+n11908549 5291
+n11901294 5291
+n11903671 5291
+n11901977 5291
+n11902389 5291
+n11908846 5291
+n11901597 5291
+n11905392 5291
+n11902200 5291
+n11906917 5291
+n12044467 5296
+n12052787 5296
+n12056217 5296
+n12075830 5296
+n12055516 5296
+n12083113 5296
+n12047884 5296
+n12048056 5296
+n12080820 5296
+n12070381 5296
+n12061380 5296
+n12080395 5296
+n12061614 5296
+n12074408 5296
+n12070583 5296
+n12071744 5296
+n12049282 5296
+n12047345 5296
+n12064389 5296
+n12075010 5296
+n12052447 5296
+n12053405 5296
+n12050533 5296
+n12077944 5296
+n12086539 5296
+n12064591 5296
+n12058822 5296
+n12046028 5296
+n12083591 5296
+n12073991 5296
+n12043444 5296
+n12086012 5296
+n12073554 5296
+n12046815 5296
+n12063639 5296
+n12058630 5296
+n12084890 5296
+n12070016 5296
+n12076223 5296
+n12069679 5296
+n12048399 5296
+n12049562 5296
+n12076577 5296
+n12086192 5296
+n12074867 5296
+n12075299 5296
+n12072722 5296
+n12066018 5296
+n12084555 5296
+n12070712 5296
+n12079963 5296
+n12065316 5296
+n12059314 5296
+n12085664 5296
+n12050959 5296
+n12062468 5296
+n12085267 5296
+n12078172 5296
+n12057211 5388
+n12057447 5388
+n12056758 5388
+n12056601 5388
+n12043836 5416
+n12043673 5416
+n12067193 5437
+n12066630 5437
+n12062781 5441
+n12062626 5441
+n11808299 5299
+n11808721 5299
+n11808932 5299
+n11808468 5299
+n11809594 5299
+n11809094 5299
+n11727358 5305
+n11727738 5305
+n11727540 5305
+n11816649 5313
+n11816336 5313
+n11816829 5313
+n11816121 5313
+n11815918 5313
+n11815721 5313
+n12362274 5318
+n12362668 5318
+n12361946 5318
+n11950877 5326
+n11950686 5326
+n11961100 5326
+n12020736 5338
+n12020941 5338
+n11934616 5339
+n11933546 5339
+n11934807 5339
+n12879963 5241
+n12015959 5241
+n11836722 5241
+n11860555 5241
+n12258885 5241
+n11980682 5241
+n12016567 5241
+n11737534 5241
+n11965627 5241
+n11991263 5241
+n11989393 5241
+n12006766 5241
+n12887293 5241
+n12937130 5241
+n12291959 5241
+n11972291 5241
+n11927215 5241
+n12012111 5241
+n11970586 5241
+n11963932 5241
+n11966215 5488
+n11966083 5488
+n12006930 5491
+n12007196 5491
+n11600372 5237
+n11599324 5237
+n11603246 5504
+n11602873 5504
+n11603835 5504
+n11601333 5504
+n12484784 5190
+n12610328 5190
+n11791569 5190
+n11714853 5190
+n13122364 5190
+n11715430 5513
+n11715678 5513
+n12801781 5514
+n11728099 5514
+n11786131 5514
+n12150028 5514
+n12801520 5514
+n11789066 5514
+n11792742 5514
+n12152532 5520
+n12151615 5520
+n12152722 5520
+n11733548 5191
+n11720353 5191
+n12810595 5191
+n12342299 5191
+n13238375 5191
+n12867826 5191
+n12665048 5191
+n11973341 5191
+n12312728 5191
+n11818069 5191
+n12848499 5191
+n11779300 5191
+n12822955 5191
+n12816508 5191
+n12719684 5191
+n12350758 5191
+n12095020 5191
+n11861641 5191
+n11962667 5191
+n12870891 5191
+n12939282 5191
+n12812478 5191
+n12031927 5191
+n12023108 5191
+n12858150 5191
+n12861892 5191
+n12841007 5191
+n12212361 5191
+n12869061 5191
+n12906214 5191
+n12910285 5191
+n12486574 5191
+n12090890 5191
+n12702948 5191
+n12437513 5191
+n11968931 5191
+n11817914 5191
+n11772408 5191
+n12932173 5191
+n12817694 5191
+n11910460 5191
+n12603449 5191
+n12939874 5191
+n12002428 5191
+n12015525 5191
+n11807108 5191
+n12835331 5191
+n12168565 5191
+n12840362 5191
+n12352287 5191
+n11969166 5191
+n11968704 5191
+n12821895 5191
+n12344283 5191
+n11866248 5191
+n11995092 5191
+n12622875 5191
+n11735053 5191
+n12548280 5191
+n13150894 5191
+n12685431 5191
+n12387633 5191
+n12171966 5191
+n12796022 5191
+n12934036 5191
+n12443323 5191
+n12870535 5191
+n12682668 5191
+n12778605 5191
+n12623077 5191
+n12836212 5191
+n11982115 5191
+n12003696 5191
+n12005656 5191
+n12098403 5191
+n12606545 5191
+n11902709 5191
+n12882945 5191
+n12785889 5191
+n11986511 5191
+n12682411 5191
+n12469517 5191
+n12029635 5191
+n12860365 5191
+n12552309 5191
+n11977303 5191
+n11825351 5191
+n12836337 5191
+n12844939 5191
+n12925179 5191
+n11926833 5191
+n12604228 5191
+n11752578 5191
+n12855042 5191
+n11956850 5191
+n12092262 5191
+n12506991 5191
+n12882779 5191
+n11747468 5191
+n12385429 5191
+n12822115 5191
+n12821505 5191
+n12607456 5191
+n12819728 5191
+n12817464 5191
+n12811027 5191
+n12024445 5191
+n12573474 5191
+n12864545 5191
+n11949402 5191
+n11868814 5191
+n11953038 5191
+n12599435 5191
+n12840749 5191
+n13233727 5191
+n12342498 5191
+n12795555 5191
+n11984542 5191
+n12847008 5191
+n12719944 5191
+n11855274 5191
+n12095647 5191
+n12441183 5191
+n12942572 5191
+n12602980 5191
+n12684379 5191
+n12441390 5191
+n12785724 5191
+n11916696 5191
+n12574320 5191
+n12092417 5191
+n12036939 5191
+n11700058 5191
+n12845413 5191
+n11824146 5191
+n11910271 5191
+n11916467 5191
+n11807525 5191
+n12101870 5191
+n11939180 5191
+n12353754 5191
+n12104501 5191
+n12794985 5191
+n12355760 5191
+n12793015 5191
+n12932966 5191
+n12931542 5191
+n12889713 5191
+n12849061 5191
+n11722466 5528
+n11720643 5528
+n12665857 5533
+n12665271 5533
+n11785668 5538
+n11780148 5538
+n11784497 5538
+n11782036 5538
+n11786539 5538
+n11782761 5538
+n12858871 5551
+n12858397 5551
+n11959632 5554
+n11959862 5554
+n12911673 5557
+n12911440 5557
+n12091213 5559
+n12091550 5559
+n12091377 5559
+n12091953 5559
+n12703557 5560
+n12703190 5560
+n12703383 5560
+n12437930 5561
+n12437769 5561
+n12352639 5576
+n12352844 5576
+n12352990 5576
+n12344700 5580
+n12344483 5580
+n12687957 5587
+n12685831 5587
+n12687698 5587
+n12687462 5587
+n12686274 5707
+n12686077 5707
+n12687044 5707
+n12686676 5707
+n12388989 5588
+n12388143 5588
+n12387839 5588
+n12388858 5716
+n12390099 5716
+n12389501 5716
+n12390314 5716
+n12782915 5595
+n12779603 5595
+n12781940 5595
+n12782530 5595
+n11753700 5619
+n11753355 5619
+n11753143 5619
+n12856680 5620
+n12855494 5620
+n12540250 5625
+n12515711 5625
+n12575322 5625
+n12575812 5625
+n12556307 5625
+n12539306 5625
+n12557681 5734
+n12558425 5734
+n12866162 5635
+n12865824 5635
+n12865037 5635
+n12866635 5635
+n12865562 5635
+n12866002 5635
+n11879054 5637
+n11878283 5637
+n11875691 5637
+n11876634 5637
+n11877193 5637
+n11876803 5637
+n11876432 5637
+n11870418 5637
+n11875938 5637
+n11894327 5637
+n11881742 5637
+n11870747 5637
+n11896722 5745
+n11879722 5745
+n11895092 5753
+n11894770 5753
+n11882074 5754
+n11882426 5754
+n13235503 5641
+n13234678 5641
+n12039317 5658
+n12037691 5658
+n12038406 5658
+n12038585 5658
+n12148757 5665
+n12102133 5665
+n12121610 5769
+n12139575 5769
+n12113195 5769
+n12112918 5769
+n12116429 5769
+n12141495 5769
+n12133462 5769
+n12108871 5769
+n12104238 5769
+n12141167 5769
+n12115180 5769
+n12112008 5769
+n12128071 5769
+n12146311 5769
+n12124627 5769
+n12110778 5769
+n12129134 5769
+n12134025 5775
+n12145477 5775
+n12142085 5775
+n12135898 5775
+n12137120 5790
+n12127030 5790
+n12127768 5792
+n12127460 5792
+n12356023 5670
+n12357485 5670
+n12793494 5671
+n12794135 5671
+n12849279 5675
+n12849416 5675
+n12847374 5192
+n12517642 5192
+n11731659 5192
+n12813189 5192
+n11838916 5192
+n12517445 5192
+n12513172 5192
+n12823859 5192
+n12566954 5192
+n13148208 5192
+n12158798 5192
+n12485981 5192
+n13237188 5192
+n12826516 5192
+n13120211 5192
+n12580654 5192
+n11769621 5192
+n12824053 5192
+n11769803 5192
+n12383402 5192
+n12823717 5192
+n12157769 5192
+n13144794 5192
+n12371439 5192
+n12159055 5811
+n12160490 5811
+n12158443 5811
+n12160303 5825
+n12159388 5825
+n12160857 5826
+n12161969 5826
+n12827270 5814
+n12828791 5814
+n12827537 5814
+n11788727 5815
+n11789589 5815
+n12571781 5815
+n11792029 5815
+n12384839 5820
+n12384227 5820
+n12384037 5820
+n12164363 5822
+n12166128 5822
+n12165170 5842
+n12164881 5842
+n12164656 5842
+n13146583 5823
+n13145040 5823
+n12509476 5193
+n13112664 5193
+n13104059 5193
+n12655869 5193
+n12546183 5193
+n12671651 5850
+n12215579 5850
+n12901724 5850
+n12938193 5850
+n12680864 5850
+n12329260 5850
+n12924623 5850
+n12659356 5850
+n12788201 5850
+n12343480 5850
+n13142504 5850
+n11830906 5850
+n12504783 5850
+n12659539 5850
+n12214789 5850
+n11699442 5850
+n12217453 5850
+n12574866 5850
+n12374418 5850
+n12249542 5850
+n13118707 5850
+n12215022 5850
+n12342852 5850
+n12762896 5850
+n12306717 5850
+n11769176 5850
+n12805146 5850
+n12519089 5850
+n11754893 5850
+n12772908 5850
+n12624381 5850
+n12482031 5850
+n12243109 5850
+n12223764 5850
+n12170585 5850
+n12230794 5850
+n12791329 5850
+n12674120 5850
+n12917901 5850
+n12237486 5850
+n12185859 5850
+n12681893 5850
+n12905412 5850
+n12899537 5850
+n12899752 5850
+n12806015 5850
+n12011620 5850
+n12922763 5850
+n12651229 5850
+n12303083 5850
+n11928352 5850
+n11926365 5850
+n12223569 5850
+n12791064 5850
+n12311579 5850
+n11834654 5850
+n11760785 5850
+n12749679 5850
+n12489815 5850
+n12666965 5850
+n12929403 5850
+n12902662 5850
+n12620196 5850
+n12237641 5850
+n12625383 5850
+n12244153 5850
+n11774513 5850
+n12520864 5850
+n12516828 5850
+n12849717 5850
+n12485653 5850
+n12790430 5862
+n12788854 5862
+n11924445 5874
+n12632335 5874
+n11947251 5874
+n12099342 5874
+n11931540 5874
+n12545635 5874
+n11778257 5874
+n11924849 5874
+n12367611 5874
+n12602262 5874
+n12328567 5874
+n12328398 5874
+n12629305 5874
+n11907689 5874
+n11940006 5874
+n12546962 5874
+n11925898 5874
+n11947629 5929
+n11948864 5929
+n11948264 5929
+n12368451 5935
+n12369309 5935
+n12368028 5935
+n12307240 5878
+n12307076 5878
+n12483427 5885
+n12483625 5885
+n12482893 5885
+n12483841 5885
+n12173664 5888
+n12173912 5888
+n12171316 5888
+n12174521 5888
+n12171098 5888
+n12177844 5888
+n12174311 5888
+n12178896 5961
+n12179122 5961
+n12676534 5891
+n12676703 5891
+n12675876 5891
+n12920204 5892
+n12921868 5892
+n12621410 5916
+n12622297 5916
+n12245319 5919
+n12244650 5919
+n12244819 5919
+n12521394 5921
+n12530818 5921
+n12849952 5923
+n12850336 5923
+n12850168 5923
+n12495146 5851
+n12570972 5851
+n12196129 5851
+n13107694 5851
+n12202936 5851
+n13111881 5851
+n13103877 5851
+n12409231 5851
+n12765115 5851
+n12265600 5851
+n12409470 5851
+n12713866 5851
+n12281241 5851
+n11709205 5851
+n12189429 5851
+n12562785 5851
+n12284821 5851
+n12401335 5851
+n12570394 5851
+n11759224 5851
+n12286988 5851
+n12491826 5851
+n12527738 5851
+n12696492 5851
+n12325234 5851
+n12198286 5851
+n12330891 5851
+n11650558 5851
+n12405714 5851
+n12284262 5851
+n12714755 5851
+n13109733 5851
+n12262553 5851
+n12506341 5851
+n12303462 5851
+n12260799 5851
+n12302071 5851
+n12492106 5851
+n11762433 5851
+n12582231 5851
+n12774299 5851
+n13108481 5851
+n12267411 5851
+n11756092 5851
+n12662772 5851
+n13108662 5851
+n12528549 5851
+n12690653 5851
+n12180885 5851
+n13108545 5851
+n13108323 5851
+n12334293 5851
+n12670758 5851
+n12286826 5851
+n12724942 5851
+n12155009 5851
+n12570703 5851
+n12523475 5851
+n12154773 5851
+n12915811 5851
+n12268246 5851
+n13108131 5851
+n12806732 5851
+n12524188 5851
+n11758799 5851
+n12496427 5851
+n12568186 5980
+n12495895 5980
+n12196527 5982
+n12196336 5982
+n12196694 5982
+n12203529 5984
+n12204175 5984
+n12282933 5992
+n12282527 5992
+n12283542 5992
+n12282737 5992
+n12282235 5992
+n12402051 5997
+n12402840 5997
+n12401684 5997
+n12402348 5997
+n12402596 5997
+n11759853 5999
+n11759404 5999
+n12406715 6008
+n12406488 6008
+n12407890 6008
+n12406902 6008
+n12330469 6011
+n12345899 6011
+n11709674 6011
+n12329473 6011
+n12200143 6011
+n11712282 6011
+n12752205 6011
+n13110915 6011
+n12513933 6011
+n12189987 6011
+n12731401 6011
+n12717224 6011
+n12717072 6011
+n12946849 6011
+n12756457 6011
+n12201580 6011
+n11703669 6011
+n12491017 6011
+n12190410 6011
+n12242409 6011
+n07754894 6011
+n12818346 6011
+n12658308 6011
+n12658118 6011
+n12494794 6011
+n12317296 6011
+n12651821 6011
+n11711764 6071
+n11710136 6071
+n11711537 6071
+n11710393 6071
+n12755225 6075
+n12753573 6075
+n12754648 6075
+n12754781 6075
+n12755727 6075
+n12754981 6075
+n12755387 6075
+n12753007 6075
+n12753245 6075
+n12754003 6075
+n12759273 6076
+n12318378 6076
+n12288823 6076
+n12319204 6111
+n12319414 6111
+n12732491 6079
+n12733647 6079
+n12732756 6079
+n12732009 6079
+n12733870 6079
+n12732966 6117
+n12733218 6117
+n12948495 6082
+n12948251 6082
+n12948053 6082
+n12947313 6082
+n12757303 6083
+n12757458 6083
+n11704093 6085
+n11705171 6085
+n12707781 6095
+n12399132 6095
+n12400720 6095
+n12345280 6095
+n11695599 6095
+n12771192 6095
+n12704343 6095
+n12638218 6095
+n12644902 6095
+n12190869 6095
+n12373100 6095
+n12300840 6095
+n12743352 6095
+n12651611 6095
+n12629666 6095
+n12636224 6095
+n12648045 6095
+n12399384 6095
+n12301180 6095
+n12744387 6095
+n12640839 6095
+n12745386 6095
+n12633638 6095
+n12771390 6095
+n12761284 6095
+n12400489 6095
+n12333530 6095
+n12333771 6095
+n12333053 6095
+n12641413 6095
+n12332030 6095
+n12711984 6130
+n12709901 6130
+n12708293 6130
+n12713063 6130
+n12711596 6130
+n12709103 6130
+n12709688 6130
+n12710415 6162
+n12710295 6162
+n12710693 6163
+n12708654 6163
+n12708941 6163
+n12643313 6137
+n12638753 6137
+n12646740 6138
+n12645174 6138
+n12650379 6138
+n12634429 6152
+n12633994 6152
+n12634211 6152
+n12635532 6152
+n12635955 6180
+n12635744 6180
+n12643473 6159
+n12649065 6159
+n12641931 6159
+n12642200 6159
+n12650556 6159
+n12649539 6185
+n12649317 6185
+n12646605 6185
+n12647560 6186
+n12648888 6186
+n12263987 6012
+n12263038 6012
+n12306089 6014
+n12305986 6014
+n12305293 6014
+n12304703 6014
+n12305475 6014
+n12262018 6015
+n12261808 6015
+n12261571 6015
+n12595699 6019
+n12587132 6019
+n12583126 6019
+n12596709 6019
+n12591351 6019
+n12596849 6019
+n12582665 6019
+n12596148 6019
+n12595964 6019
+n12582846 6019
+n12587803 6019
+n12591017 6019
+n12588320 6206
+n12588780 6206
+n12585629 6206
+n12597134 6206
+n12598027 6206
+n12597466 6206
+n12583401 6206
+n12593994 6213
+n12590232 6213
+n11757653 6023
+n11756669 6023
+n11757851 6023
+n11664418 6025
+n13108841 6025
+n11647703 6229
+n11628793 6229
+n11658331 6229
+n11623105 6229
+n11630017 6229
+n11628456 6229
+n11658544 6229
+n11643835 6229
+n11624531 6229
+n11661372 6229
+n11645914 6229
+n11630489 6229
+n11640132 6229
+n11608250 6229
+n11620673 6229
+n11618861 6229
+n11627168 6229
+n11623815 6233
+n11624192 6233
+n11623967 6233
+n11635152 6234
+n11634736 6234
+n11635433 6234
+n11636204 6234
+n11644462 6237
+n11644226 6237
+n11644046 6237
+n11626585 6238
+n11625632 6238
+n11625003 6238
+n11626826 6238
+n11625804 6238
+n11626152 6238
+n11626409 6238
+n11646694 6240
+n11646167 6240
+n11632167 6241
+n11631854 6241
+n11632619 6241
+n11616662 6243
+n11611561 6243
+n11611356 6243
+n11617631 6243
+n11612575 6243
+n11611758 6243
+n11614713 6243
+n11615387 6243
+n11612018 6243
+n11611087 6243
+n11612923 6243
+n11616486 6243
+n11618290 6243
+n11612349 6243
+n11611233 6243
+n11617090 6243
+n11614250 6243
+n11618525 6243
+n11615026 6243
+n11617272 6243
+n11614039 6279
+n11613459 6279
+n11615967 6285
+n11614420 6285
+n11621029 6244
+n11622184 6293
+n11622591 6293
+n11621281 6293
+n11622368 6293
+n11621950 6293
+n11621547 6293
+n11621727 6293
+n11619455 6245
+n11619227 6245
+n11627512 6246
+n11628087 6246
+n11627908 6246
+n12691661 6027
+n12691428 6027
+n12316572 6031
+n12334891 6031
+n12340755 6031
+n12316444 6031
+n12336727 6309
+n12338796 6309
+n12338454 6309
+n12336973 6309
+n12336092 6309
+n12336224 6309
+n12337617 6309
+n12725521 6034
+n12727101 6034
+n12729521 6034
+n12726670 6034
+n12729315 6034
+n12729729 6319
+n12731029 6319
+n12270741 6040
+n12271643 6040
+n12278650 6040
+n12279458 6040
+n12269241 6040
+n12275489 6040
+n12273114 6040
+n12276872 6040
+n12278371 6040
+n12272883 6040
+n12269652 6040
+n12273768 6040
+n12277800 6327
+n12271933 6327
+n12279772 6330
+n12270946 6330
+n12269406 6330
+n12275675 6331
+n12276628 6331
+n12275131 6331
+n12274358 6336
+n12272239 6336
+n12277578 6336
+n12501202 6041
+n12814643 6041
+n12493208 6041
+n12807773 6042
+n12807409 6042
+n12807251 6042
+n11758122 6043
+n12915568 6043
+n12656369 5852
+n12656685 5852
+n12547215 5853
+n12547503 5853
+n11944196 5194
+n11984144 5194
+n11805544 5194
+n11874081 5194
+n11965218 5194
+n12392549 5194
+n11956348 5194
+n11945514 6361
+n11944954 6361
+n11998888 6361
+n11953884 6361
+n11954345 6361
+n11955153 6371
+n11954161 6371
+n12421137 5196
+n12421467 5196
+n12411461 5196
+n12451915 5196
+n12425281 5196
+n12459629 5196
+n12421683 6376
+n12422129 6376
+n12421917 6376
+n12411922 6377
+n12418221 6377
+n12416073 6377
+n12413165 6384
+n12414932 6384
+n12412606 6384
+n12412355 6384
+n12414035 6384
+n12413880 6384
+n12453186 6378
+n12452836 6378
+n12450344 6379
+n12426248 6379
+n12429352 6379
+n12460697 6379
+n12449526 6379
+n12473840 6379
+n12458550 6379
+n12449296 6379
+n12472024 6379
+n12457091 6379
+n12465557 6379
+n12461466 6379
+n12454159 6379
+n12431434 6379
+n12451240 6395
+n12451399 6395
+n12450840 6395
+n12428076 6396
+n12428747 6396
+n12427566 6396
+n12427184 6396
+n12426623 6396
+n12427757 6396
+n12461109 6398
+n12460957 6398
+n12454705 6407
+n12454949 6407
+n12435777 6408
+n12435649 6408
+n11819509 5197
+n11819912 5197
+n11842204 5197
+n11852028 6426
+n11851258 6426
+n11847169 6426
+n11853813 6426
+n11848479 6426
+n11844892 6426
+n11851839 6426
+n11845557 6426
+n11849871 6426
+n11849983 6426
+n11851578 6426
+n11854479 6426
+n11844371 6426
+n11853356 6426
+n11845793 6434
+n11845913 6434
+n11784126 5185
+n11783920 5185
+n12832315 5185
+n11723770 5186
+n11724109 5186
+n12766869 5186
+n12455950 5186
+n11723227 5186
+n12757816 5186
+n11773987 5186
+n12766595 5186
+n01324610 5174
+n02153109 5174
+n01323599 5174
+n01314781 5174
+n01321579 5174
+n01317541 5174
+n01318894 5174
+n01314663 5174
+n02311060 5174
+n01317916 5174
+n01321230 5174
+n01314388 5174
+n02075612 5174
+n02152740 5174
+n01466257 5174
+n01316949 5174
+n01905661 5174
+n01320872 5174
+n01319467 5174
+n01316422 5174
+n02157206 5174
+n10300303 5174
+n02152881 5174
+n01324431 5174
+n01321854 6458
+n01321770 6458
+n01956344 6458
+n01613615 6458
+n01318279 6458
+n02376542 6478
+n02122948 6478
+n01888045 6478
+n01322343 6478
+n01887896 6478
+n02412440 6478
+n01322221 6478
+n01322604 6478
+n01323261 6478
+n01322685 6478
+n02395694 6478
+n01504344 6481
+n01504179 6481
+n01318381 6459
+n02122580 6459
+n01317813 6459
+n02469472 6462
+n02309337 6462
+n02311617 6462
+n02264232 6462
+n02299157 6500
+n02310585 6500
+n02299505 6500
+n02302620 6500
+n02295390 6500
+n02310717 6500
+n02288268 6500
+n02297442 6500
+n02300797 6500
+n02285801 6500
+n02307325 6500
+n02376791 6464
+n02377063 6464
+n01323355 6464
+n01469103 6468
+n01468712 6468
+n01471682 6468
+n01473806 6519
+n01627424 6519
+n01861778 6519
+n09828216 6519
+n01459791 6519
+n02156871 6519
+n01661091 6519
+n01503061 6519
+n02512053 6520
+n01477525 6520
+n02528163 6528
+n02512938 6528
+n01482071 6528
+n02638596 6530
+n01457852 6530
+n01455778 6530
+n01456756 6530
+n02552171 6530
+n01428580 6530
+n02549989 6530
+n02640857 6533
+n02641379 6533
+n02639087 6533
+n02639605 6533
+n02640242 6533
+n02554730 6537
+n02618827 6537
+n02549248 6537
+n02603317 6537
+n01451426 6537
+n02548247 6537
+n02642107 6537
+n02657368 6537
+n02603540 6537
+n02652668 6537
+n02560110 6545
+n02556846 6545
+n02555863 6545
+n02581957 6545
+n02564270 6545
+n02623445 6545
+n02565573 6545
+n02610664 6545
+n02590702 6545
+n02588286 6545
+n02620167 6545
+n02573704 6545
+n02576223 6545
+n02606384 6545
+n02605316 6545
+n02619550 6545
+n02561108 6545
+n02619165 6545
+n02610066 6545
+n02562315 6545
+n02586543 6545
+n02593019 6545
+n02594250 6545
+n02616851 6545
+n02585872 6545
+n02607862 6545
+n02557182 6556
+n02557318 6556
+n02557749 6556
+n02624167 6560
+n02628062 6560
+n02631475 6560
+n02630281 6560
+n02631041 6560
+n02629230 6560
+n02626762 6560
+n02625258 6584
+n02625612 6584
+n02624807 6584
+n02626265 6592
+n02625851 6592
+n02627292 6590
+n02627532 6590
+n02576575 6567
+n02579928 6567
+n02580336 6567
+n02576906 6598
+n02579303 6598
+n02578771 6598
+n02578928 6598
+n02580679 6600
+n02580830 6600
+n02607201 6568
+n02607470 6568
+n02607072 6568
+n02605703 6569
+n02606052 6569
+n02605936 6569
+n02561381 6571
+n02561661 6571
+n02561514 6571
+n02564720 6574
+n02563648 6574
+n02563182 6574
+n02563792 6574
+n02562796 6574
+n02565072 6616
+n02565324 6616
+n02599052 6577
+n02596381 6577
+n02597608 6577
+n02596067 6577
+n02595702 6577
+n02598573 6624
+n02598878 6624
+n02642644 6551
+n02649546 6551
+n02643112 6630
+n02643566 6630
+n02643836 6630
+n02644113 6630
+n02658531 6552
+n02657694 6552
+n02660208 6552
+n02654745 6554
+n02654425 6554
+n02656670 6554
+n02655020 6554
+n02655523 6554
+n02653145 6554
+n02656032 6643
+n02655848 6643
+n02541687 6538
+n02542432 6538
+n02524202 6538
+n02533834 6538
+n02543565 6538
+n02517442 6538
+n01438208 6538
+n02526121 6538
+n02529772 6538
+n02518324 6652
+n02520147 6652
+n02519686 6652
+n02519862 6652
+n02583567 6653
+n01444339 6653
+n01446589 6653
+n01438581 6653
+n01439121 6653
+n01448951 6653
+n02584449 6660
+n02584145 6660
+n02583890 6660
+n01446760 6662
+n01447331 6662
+n01448594 6662
+n01448291 6662
+n01439514 6664
+n01442972 6664
+n01440764 6664
+n01443831 6664
+n01443537 6664
+n01443243 6664
+n01449712 6665
+n01449374 6665
+n02527622 6654
+n02527057 6654
+n02527271 6654
+n02532602 6655
+n02533209 6655
+n02566834 6531
+n02537085 6531
+n02534734 6531
+n02514041 6531
+n02568959 6686
+n02568087 6686
+n02570164 6690
+n02569484 6690
+n02537716 6687
+n02538216 6687
+n02537525 6687
+n02537319 6687
+n02538010 6687
+n02536456 6688
+n02535537 6688
+n02535258 6688
+n02536864 6688
+n02535759 6688
+n01482330 6532
+n01495701 6532
+n01487506 6704
+n01495493 6704
+n01486838 6704
+n01488918 6704
+n01492357 6704
+n01494475 6704
+n01483522 6704
+n01488038 6704
+n01489501 6709
+n01491006 6709
+n01489709 6709
+n01489920 6709
+n01490112 6709
+n01491361 6709
+n01490670 6709
+n01493146 6710
+n01492569 6710
+n01484850 6712
+n01484097 6712
+n01483830 6712
+n01498041 6705
+n01496331 6705
+n01499396 6705
+n01500476 6705
+n01500091 6705
+n01501160 6705
+n01498989 6705
+n01629276 6521
+n01639765 6521
+n01629962 6733
+n01630284 6733
+n01629819 6733
+n01637615 6733
+n01632047 6733
+n01631663 6736
+n01630670 6736
+n01630901 6736
+n01632458 6739
+n01632777 6739
+n01632601 6739
+n01645776 6734
+n01640846 6734
+n01644900 6734
+n01643896 6734
+n01650167 6734
+n01644373 6734
+n01646648 6746
+n01646902 6746
+n01646292 6746
+n01646802 6746
+n01646388 6746
+n01647640 6746
+n01646555 6746
+n01642539 6747
+n01641206 6747
+n01641577 6747
+n01641391 6747
+n01642257 6747
+n01641739 6747
+n01650690 6750
+n01652026 6750
+n01886756 6522
+n01871265 6522
+n01871875 6522
+n01874434 6522
+n01862399 6522
+n02082791 6767
+n01887474 6767
+n01889074 6767
+n02372584 6767
+n01888411 6767
+n02453611 6767
+n02430559 6767
+n01887623 6767
+n02469914 6767
+n02075296 6767
+n02139199 6767
+n02062017 6767
+n02323449 6767
+n02372952 6767
+n01888181 6767
+n02329401 6767
+n01887787 6767
+n02453108 6767
+n01888264 6767
+n02461830 6767
+n02370806 6767
+n01891633 6774
+n01893825 6774
+n02454794 6777
+n02456962 6777
+n02454379 6777
+n02460009 6777
+n02458135 6796
+n02457945 6796
+n02457408 6796
+n02460451 6798
+n02461128 6798
+n02470238 6780
+n02501583 6780
+n02472293 6780
+n02470325 6780
+n02496913 6780
+n02484322 6780
+n02475669 6806
+n02474777 6806
+n02475078 6806
+n02470899 6807
+n02483092 6813
+n02480153 6813
+n02483708 6814
+n02483362 6814
+n02481823 6815
+n02480495 6815
+n02480855 6815
+n02482650 6818
+n02482474 6818
+n02481103 6820
+n02481366 6820
+n02481500 6820
+n02500267 6808
+n02497673 6808
+n02499316 6808
+n02499808 6808
+n02499022 6808
+n02484473 6809
+n02489589 6809
+n02486410 6831
+n02485536 6831
+n02489166 6831
+n02488702 6831
+n02486261 6831
+n02487347 6831
+n02484975 6831
+n02488291 6831
+n02486657 6833
+n02486908 6833
+n02487847 6838
+n02487547 6838
+n02493793 6832
+n02490219 6832
+n02494079 6832
+n02493509 6832
+n02492035 6832
+n02492660 6832
+n02491107 6846
+n02490811 6846
+n02507649 6781
+n02120997 6781
+n02134971 6781
+n02083346 6781
+n02441326 6781
+n02131653 6781
+n02509515 6853
+n02508213 6853
+n02509815 6853
+n02508021 6853
+n02509197 6853
+n02510455 6853
+n02127808 6854
+n02121620 6854
+n02128925 6865
+n02129604 6865
+n02128385 6865
+n02130308 6865
+n02129165 6865
+n02128757 6865
+n02129923 6868
+n02129837 6868
+n01323068 6868
+n02129463 6871
+n01322898 6871
+n02121808 6866
+n02124623 6866
+n02122878 6878
+n02123159 6878
+n02123045 6878
+n02123242 6878
+n02124484 6878
+n02124075 6878
+n02124313 6878
+n02122298 6878
+n02123478 6878
+n02123394 6878
+n02123917 6878
+n02123597 6878
+n02122510 6878
+n02122725 6878
+n02122430 6878
+n02126640 6879
+n02125494 6879
+n02127052 6879
+n02125311 6879
+n02125081 6879
+n02126139 6879
+n02126787 6879
+n02125010 6879
+n02127292 6897
+n02127482 6897
+n02127678 6897
+n02127381 6897
+n02138441 6855
+n02137015 6855
+n02137549 6855
+n02138647 6907
+n02138777 6907
+n02084071 6856
+n02115335 6856
+n02114100 6856
+n02083672 6856
+n02115096 6856
+n02118333 6856
+n02117135 6856
+n02110958 6912
+n02112826 6912
+n02111500 6912
+n02112706 6912
+n02113335 6912
+n02084861 6912
+n02111129 6912
+n02112497 6912
+n02110341 6912
+n02084732 6912
+n02111626 6912
+n02085374 6912
+n02087122 6912
+n02103406 6912
+n02110806 6912
+n02113978 6912
+n02111277 6912
+n02085272 6912
+n02113186 6920
+n02113023 6920
+n02113799 6923
+n02113624 6923
+n02113712 6923
+n02112018 6929
+n02112350 6929
+n02112137 6929
+n02111889 6929
+n02086346 6930
+n02086240 6930
+n02087046 6930
+n02085936 6930
+n02085782 6930
+n02085620 6930
+n02086079 6930
+n02086753 6946
+n02086646 6946
+n02086910 6946
+n02092468 6931
+n02087394 6931
+n02089468 6931
+n02098550 6931
+n02087551 6931
+n02089232 6931
+n02096437 6956
+n02096756 6956
+n02095412 6956
+n02096051 6956
+n02098286 6956
+n02093859 6956
+n02094114 6956
+n02093754 6956
+n02094433 6956
+n02095314 6956
+n02093647 6956
+n02097474 6956
+n02097658 6956
+n02098413 6956
+n02097298 6956
+n02096177 6956
+n02096585 6956
+n02095050 6956
+n02096294 6956
+n02093056 6956
+n02094258 6956
+n02093991 6956
+n02094562 6956
+n02098105 6956
+n02097209 6963
+n02097130 6963
+n02097047 6963
+n02095570 6964
+n02095727 6964
+n02095889 6964
+n02093256 6981
+n02093428 6981
+n02094721 6984
+n02094931 6984
+n02098906 6959
+n02099997 6959
+n02098806 6959
+n02100399 6959
+n02101108 6959
+n02099029 6959
+n02100583 6997
+n02100236 6997
+n02101006 6999
+n02100735 6999
+n02100877 6999
+n02102318 7000
+n02102605 7000
+n02101861 7000
+n02101388 7000
+n02101556 7000
+n02102480 7000
+n02102973 7000
+n02102040 7009
+n02102177 7009
+n02099267 7001
+n02099601 7001
+n02099429 7001
+n02099849 7001
+n02099712 7001
+n02091635 6960
+n02088466 6960
+n02090475 6960
+n02088238 6960
+n02091244 6960
+n02091467 6960
+n02088839 6960
+n02091831 6960
+n02088094 6960
+n02089078 6960
+n02088632 6960
+n02092002 6960
+n02090379 6960
+n02089555 6960
+n02088364 6960
+n02092339 6960
+n02090827 6960
+n02090622 7023
+n02090721 7023
+n02089973 7034
+n02089867 7034
+n02091134 7037
+n02091032 7037
+n02109047 6932
+n02103841 6932
+n02109961 6932
+n02108551 6932
+n02109811 6932
+n02109525 6932
+n02108915 6932
+n02106854 6932
+n02108672 6932
+n02107420 6932
+n02108422 6932
+n02104523 6932
+n02108089 6932
+n02108254 6932
+n02104029 7045
+n02104280 7045
+n02106966 7045
+n02104365 7045
+n02107142 7060
+n02107312 7060
+n02110627 7060
+n02110185 7048
+n02110063 7048
+n02107574 7053
+n02108000 7053
+n02107683 7053
+n02107908 7053
+n02104882 7055
+n02105412 7055
+n02105855 7055
+n02105505 7055
+n02106166 7055
+n02106030 7055
+n02106550 7055
+n02105641 7055
+n02106662 7055
+n02105251 7055
+n02106382 7055
+n02105056 7071
+n02105162 7071
+n02116738 6913
+n02115641 6913
+n02115913 6913
+n02114855 6914
+n01322508 6914
+n02114712 6914
+n02114548 6914
+n02114367 6914
+n02119022 6917
+n02119477 6917
+n02119789 6917
+n02120079 6917
+n02120505 6917
+n02119634 6917
+n02117900 6918
+n02117512 6918
+n02442845 6857
+n02443484 6857
+n02446206 6857
+n02450295 6857
+n02445394 6857
+n02444819 6857
+n02441942 6857
+n02443114 6857
+n02449350 6857
+n02445715 6857
+n02447366 6857
+n02443346 6857
+n02445004 7105
+n02445171 7105
+n02134084 6858
+n02133161 6858
+n01322983 6858
+n02133704 6858
+n02132136 6858
+n02134418 6858
+n02132580 7118
+n02132788 7118
+n02141306 6782
+n02140049 6782
+n02139671 6782
+n02146371 7122
+n02145424 7122
+n02147591 7126
+n02147947 7126
+n02062430 6783
+n02073250 6783
+n02075927 6783
+n02062744 7129
+n02066707 7132
+n02063224 7132
+n02068974 7133
+n02068541 7133
+n02070430 7135
+n02069412 7135
+n02069701 7135
+n02071636 7135
+n02071294 7135
+n02072798 7135
+n02070174 7139
+n02069974 7139
+n02066245 7134
+n02064338 7134
+n02064816 7134
+n02065407 7146
+n02065026 7146
+n02073831 7130
+n02074367 7130
+n02081571 7131
+n02076196 7131
+n02079389 7153
+n02076779 7153
+n02080415 7154
+n02079851 7154
+n02080146 7154
+n02077658 7155
+n02077152 7155
+n02077923 7155
+n02078574 7161
+n02078738 7161
+n02079005 7161
+n02328429 6784
+n02323902 6784
+n02324045 7166
+n02326432 7166
+n02325722 7167
+n02325366 7167
+n02324587 7167
+n02324850 7167
+n02324514 7167
+n02328150 7167
+n02324431 7167
+n02327842 7168
+n02326862 7168
+n02327028 7168
+n02367492 6787
+n02331046 6787
+n02365480 6787
+n02343320 6787
+n02341974 6787
+n02346627 6787
+n02366959 6787
+n02339376 6787
+n02363005 6787
+n02342885 6787
+n02359324 6787
+n02355227 6787
+n02361337 6787
+n02359556 6787
+n02364520 6787
+n02343772 6787
+n02330245 6787
+n02338145 6787
+n02353861 7180
+n02333546 7180
+n02333909 7180
+n02360282 7190
+n02358091 7190
+n02359915 7190
+n02355477 7190
+n02358890 7201
+n02358390 7201
+n02356381 7203
+n02357111 7203
+n02356977 7203
+n02357401 7203
+n02356798 7203
+n02361706 7191
+n02361587 7191
+n02364840 7193
+n02364673 7193
+n02332755 7195
+n02332156 7195
+n02503517 6789
+n02504458 7217
+n02504013 7217
+n02394477 6792
+n02373336 6792
+n02399000 7220
+n02437136 7220
+n02395003 7220
+n02437616 7220
+n02438580 7220
+n02397744 7220
+n02398521 7220
+n02397529 7220
+n02429456 7222
+n02430045 7222
+n02401031 7222
+n02439033 7222
+n02439398 7222
+n02434190 7231
+n02433925 7231
+n02433318 7231
+n02432983 7231
+n02431337 7231
+n02432511 7231
+n02430830 7231
+n02431122 7231
+n02434954 7231
+n02432291 7231
+n02431785 7231
+n02431976 7231
+n02433546 7231
+n02432704 7231
+n02414578 7232
+n02410509 7232
+n02411206 7232
+n02407959 7232
+n02402010 7232
+n02419796 7232
+n02411705 7232
+n02418064 7232
+n02416519 7232
+n02416104 7249
+n02415435 7249
+n02415253 7249
+n02415577 7259
+n02415829 7259
+n02410702 7250
+n02410900 7250
+n02408817 7252
+n02408429 7252
+n02409508 7252
+n02404573 7253
+n02402175 7253
+n02404906 7253
+n02402425 7253
+n02405302 7269
+n02410011 7269
+n02404186 7271
+n02403003 7271
+n02403325 7271
+n02403231 7271
+n02403740 7271
+n02403454 7271
+n02406174 7271
+n02404432 7274
+n02406647 7274
+n02407625 7274
+n02407071 7274
+n02405929 7274
+n02407276 7274
+n02407390 7280
+n02406533 7280
+n02424305 7254
+n02421136 7254
+n02420509 7254
+n02427724 7254
+n02426813 7254
+n02426481 7254
+n02421792 7254
+n02421449 7254
+n02424695 7254
+n02420828 7254
+n02422391 7254
+n02422699 7254
+n02424486 7254
+n02425887 7254
+n02422106 7254
+n02424085 7254
+n02428508 7254
+n02428349 7254
+n02423022 7254
+n02424909 7297
+n02425228 7297
+n02423218 7307
+n02423589 7307
+n02413131 7255
+n02413050 7255
+n02411999 7255
+n02412210 7255
+n02412080 7255
+n02418465 7256
+n02419336 7256
+n02419634 7256
+n02416964 7257
+n02416820 7257
+n02417914 7257
+n02417387 7257
+n02417070 7257
+n02416880 7257
+n02417534 7257
+n02437482 7223
+n02437312 7223
+n02396427 7224
+n02397096 7224
+n02396014 7224
+n02395406 7224
+n02438173 7225
+n02438272 7225
+n02391994 7221
+n02393580 7221
+n02374149 7221
+n02393940 7221
+n02392434 7335
+n02393161 7335
+n02392824 7335
+n02374451 7337
+n02391049 7337
+n02389346 7337
+n02388917 7342
+n02377603 7342
+n02382948 7342
+n02389128 7342
+n02381460 7342
+n02389261 7342
+n02382204 7342
+n02375302 7342
+n02376918 7342
+n02387722 7342
+n02388832 7342
+n02381609 7342
+n02377703 7342
+n02388735 7342
+n02386014 7342
+n02380464 7342
+n02386310 7342
+n02377480 7342
+n02380335 7342
+n02382437 7342
+n02389026 7342
+n02385214 7347
+n02383231 7347
+n02388276 7347
+n02377291 7353
+n02377181 7353
+n02377388 7353
+n02379430 7357
+n02378969 7357
+n02378541 7357
+n02381364 7357
+n02379329 7357
+n02381004 7357
+n02381261 7357
+n02379908 7357
+n02379183 7357
+n02386141 7359
+n02386224 7359
+n02382338 7361
+n02387254 7361
+n02386496 7361
+n02386853 7385
+n02387093 7385
+n02386968 7385
+n02387346 7385
+n02382039 7363
+n02380745 7363
+n02380583 7363
+n02382750 7364
+n02382635 7364
+n02382850 7364
+n02391234 7343
+n02391373 7343
+n02391508 7343
+n02390015 7344
+n02389779 7344
+n02389559 7344
+n01872401 6769
+n01873310 6769
+n01872772 6769
+n01877134 6770
+n01882714 6770
+n01883070 6770
+n01875313 6770
+n01874928 6770
+n01883513 6770
+n01881171 6770
+n01877606 7405
+n01877812 7405
+n01878929 7413
+n01879509 7413
+n01884834 7410
+n01885498 7410
+n01662622 6526
+n01661818 6526
+n01662784 7418
+n01669372 7420
+n01669191 7420
+n01666228 7420
+n01667778 7420
+n01672032 7420
+n01669654 7420
+n01663401 7420
+n01665932 7420
+n01668665 7420
+n01670092 7420
+n01667114 7420
+n01668892 7420
+n01664990 7427
+n01664065 7427
+n01663782 7427
+n01665541 7427
+n01664369 7427
+n01664674 7437
+n01664492 7437
+n01670802 7430
+n01671125 7430
+n01670535 7430
+n01671479 7430
+n01696633 7419
+n01726692 7419
+n01673282 7419
+n01674464 7419
+n01699831 7419
+n01698434 7444
+n01697178 7444
+n01698640 7444
+n01699040 7444
+n01697611 7450
+n01697457 7450
+n01740551 7445
+n01752165 7445
+n01751748 7445
+n01745125 7445
+n01741562 7445
+n01727646 7445
+n01753488 7456
+n01752736 7456
+n01752585 7456
+n01753032 7456
+n01753959 7456
+n01754533 7465
+n01754370 7465
+n01754876 7465
+n01757901 7468
+n01757677 7468
+n01755581 7468
+n01757115 7468
+n01755740 7468
+n01756089 7468
+n01756508 7468
+n01756291 7468
+n01756733 7468
+n01757343 7468
+n01747885 7458
+n01749939 7458
+n01751472 7458
+n01747589 7458
+n01749582 7458
+n01746359 7458
+n01745484 7458
+n01748264 7479
+n01748906 7479
+n01741943 7459
+n01743605 7488
+n01742821 7488
+n01742172 7488
+n01743086 7488
+n01744100 7489
+n01743936 7489
+n01744401 7489
+n01730960 7460
+n01735189 7460
+n01733757 7460
+n01729322 7460
+n01732244 7460
+n01731545 7460
+n01737021 7460
+n01729977 7460
+n01730812 7460
+n01730563 7460
+n01728572 7460
+n01728920 7460
+n01739381 7460
+n01734418 7460
+n01740131 7460
+n01735577 7497
+n01735439 7497
+n01734104 7498
+n01733957 7498
+n01732614 7500
+n01732789 7500
+n01737875 7502
+n01737472 7502
+n01737728 7502
+n01730185 7503
+n01730307 7503
+n01734808 7509
+n01734637 7509
+n01675722 7447
+n01693783 7447
+n01694709 7447
+n01684133 7447
+n01692333 7447
+n01695060 7447
+n01685808 7447
+n01676755 7447
+n01687665 7447
+n01674990 7447
+n01694178 7447
+n01692864 7447
+n01689411 7447
+n01681940 7531
+n01681653 7531
+n01678343 7531
+n01682714 7531
+n01682435 7531
+n01681328 7531
+n01680264 7531
+n01679626 7531
+n01677366 7531
+n01677747 7531
+n01679962 7531
+n01680655 7543
+n01680478 7543
+n01687978 7532
+n01689081 7532
+n01688243 7532
+n01693334 7535
+n01693175 7535
+n01690149 7536
+n01689811 7536
+n01700470 7448
+n01713764 7448
+n01701859 7557
+n01704323 7557
+n01515303 6527
+n01844917 6527
+n01524359 6527
+n01514668 6527
+n01833805 6527
+n01838038 6527
+n01825930 6527
+n01844551 6527
+n01604330 6527
+n01834918 6527
+n01822602 6527
+n01514752 6527
+n01517565 6527
+n01789386 6527
+n01844231 6527
+n01816887 6527
+n01517966 6527
+n01503976 6527
+n01514859 6527
+n02000954 7562
+n01858441 7562
+n02016358 7562
+n02021795 7562
+n01845132 7562
+n02008041 7580
+n02014237 7580
+n02021050 7580
+n02018795 7580
+n02005790 7580
+n02002075 7580
+n02013177 7580
+n02012849 7580
+n02013706 7580
+n02014524 7580
+n02007558 7580
+n02014941 7580
+n02006656 7580
+n02005399 7580
+n02022684 7580
+n02008497 7585
+n02010453 7585
+n02009229 7585
+n02011281 7585
+n02008643 7585
+n02008796 7585
+n02011460 7585
+n02010728 7601
+n02011016 7601
+n02009750 7605
+n02009508 7605
+n02009380 7605
+n02009912 7605
+n02010272 7605
+n02012185 7606
+n02011805 7606
+n02006063 7589
+n02006364 7589
+n02003204 7590
+n02002724 7590
+n02002556 7590
+n02004131 7590
+n02003839 7590
+n02004492 7590
+n02004855 7590
+n02017725 7596
+n02015357 7596
+n02016066 7596
+n02015554 7596
+n02018027 7596
+n02018368 7629
+n02018207 7629
+n02006985 7597
+n02007284 7597
+n02023341 7599
+n02034129 7599
+n02034295 7599
+n02036053 7599
+n02040266 7599
+n02037110 7599
+n02034661 7599
+n02031585 7599
+n02031934 7599
+n02030996 7599
+n02036711 7599
+n02026059 7599
+n02033779 7599
+n02038993 7599
+n02033561 7599
+n02037464 7599
+n02024479 7634
+n02025239 7634
+n02023992 7634
+n02024763 7634
+n02025043 7634
+n02023855 7634
+n02034971 7640
+n02035210 7640
+n02032222 7642
+n02032355 7642
+n02032480 7642
+n02033041 7642
+n02030287 7645
+n02027897 7645
+n02030837 7645
+n02029087 7645
+n02029378 7645
+n02028035 7645
+n02027075 7645
+n02028900 7645
+n02027492 7645
+n02029706 7645
+n02027357 7645
+n02028727 7645
+n02030035 7645
+n02026948 7645
+n02028175 7645
+n02028342 7676
+n02028451 7676
+n02037869 7649
+n02038466 7649
+n01858845 7581
+n01858906 7581
+n01860002 7581
+n01858281 7581
+n01859190 7581
+n01858780 7581
+n01859325 7581
+n01860187 7581
+n01859496 7581
+n01859689 7689
+n01859852 7689
+n02016956 7582
+n02017213 7582
+n02016816 7582
+n02040505 7583
+n02057731 7583
+n02050004 7583
+n02045369 7583
+n02049088 7583
+n02051474 7583
+n02055658 7583
+n02047614 7583
+n02041085 7695
+n02044178 7695
+n02043808 7695
+n02043333 7703
+n02041246 7703
+n02043063 7703
+n02042472 7707
+n02041678 7707
+n02042180 7707
+n02041875 7707
+n02042759 7707
+n02042046 7707
+n02044778 7704
+n02044517 7704
+n02059162 7696
+n02058221 7696
+n02058594 7696
+n02060411 7717
+n02060889 7717
+n02060133 7717
+n02050442 7697
+n02050313 7697
+n02051059 7697
+n02050586 7697
+n02050809 7697
+n02045864 7698
+n02046759 7698
+n02045596 7698
+n02047260 7729
+n02046939 7729
+n02047411 7729
+n02047045 7729
+n02052775 7700
+n02054036 7700
+n02054502 7700
+n02051845 7700
+n02053083 7700
+n02054711 7700
+n02055107 7700
+n02052204 7738
+n02052365 7738
+n02053425 7739
+n02053584 7739
+n02055803 7701
+n02056728 7746
+n02057035 7746
+n02056570 7746
+n02057330 7746
+n02056228 7746
+n02048115 7702
+n02048353 7702
+n02047975 7702
+n01845477 7584
+n01855672 7755
+n01846331 7755
+n01856890 7756
+n01857851 7756
+n01857079 7756
+n01856380 7756
+n01857512 7756
+n01857325 7756
+n01856072 7756
+n01856553 7756
+n01856155 7756
+n01857632 7756
+n01847253 7757
+n01851375 7757
+n01849676 7757
+n01852329 7757
+n01850192 7757
+n01847978 7757
+n01852400 7757
+n01848840 7757
+n01849157 7757
+n01847806 7757
+n01849466 7757
+n01848123 7757
+n01850553 7757
+n01847089 7757
+n01851895 7757
+n01849863 7757
+n01852142 7757
+n01847000 7757
+n01852671 7757
+n01848976 7757
+n01847407 7757
+n01848648 7757
+n01852861 7757
+n01851207 7757
+n01851038 7757
+n01850373 7757
+n01850873 7757
+n01847170 7757
+n01851573 7769
+n01851731 7769
+n01848555 7779
+n01848323 7779
+n01848453 7779
+n01853195 7790
+n01853870 7790
+n01854415 7790
+n01853498 7790
+n01853666 7790
+n01854838 7803
+n01855032 7803
+n01855476 7803
+n01855188 7803
+n01854700 7803
+n01584225 7563
+n01546506 7563
+n01546921 7563
+n01525720 7563
+n01546039 7563
+n01539573 7563
+n01585121 7811
+n01585715 7811
+n01584695 7811
+n01586374 7811
+n01584853 7811
+n01586020 7811
+n01552813 7813
+n01551711 7813
+n01555004 7813
+n01554448 7813
+n01547832 7813
+n01548301 7827
+n01549886 7827
+n01549430 7827
+n01550172 7827
+n01549641 7827
+n01555305 7827
+n01549053 7828
+n01548865 7828
+n01548492 7828
+n01563128 7814
+n01589718 7814
+n01578575 7814
+n01576695 7814
+n01528654 7814
+n01591697 7814
+n01594004 7814
+n01557185 7814
+n01527347 7814
+n01597022 7814
+n01598588 7814
+n01527617 7814
+n01576076 7814
+n01555809 7814
+n01587834 7814
+n01602630 7814
+n01597336 7814
+n01538955 7814
+n01529672 7814
+n01600657 7814
+n01601694 7814
+n01527194 7814
+n01586941 7814
+n01588002 7814
+n01527917 7814
+n01587526 7814
+n01601068 7814
+n01603600 7814
+n01602832 7814
+n01571904 7814
+n01575745 7814
+n01566645 7814
+n01594372 7814
+n01589286 7814
+n01526521 7814
+n01582856 7814
+n01528396 7814
+n01528845 7814
+n01556182 7814
+n01542786 7814
+n01590583 7814
+n01564914 7837
+n01567133 7837
+n01563746 7837
+n01564394 7837
+n01563449 7837
+n01565078 7837
+n01570676 7879
+n01570839 7879
+n01570267 7879
+n01567678 7879
+n01569060 7879
+n01568892 7879
+n01568294 7879
+n01569971 7879
+n01569262 7879
+n01567879 7879
+n01568720 7879
+n01569423 7879
+n01563945 7880
+n01564217 7880
+n01566207 7881
+n01565599 7881
+n01565930 7881
+n01564773 7881
+n01579410 7839
+n01581984 7839
+n01579578 7839
+n01582398 7839
+n01580077 7839
+n01579260 7839
+n01579028 7839
+n01582220 7839
+n01579149 7839
+n01580870 7906
+n01581166 7906
+n01577035 7840
+n01578180 7840
+n01577659 7840
+n01593028 7842
+n01592084 7842
+n01592694 7842
+n01592387 7842
+n01592540 7917
+n01592257 7917
+n01562265 7844
+n01558993 7844
+n01559477 7844
+n01558461 7844
+n01558307 7844
+n01558149 7844
+n01560105 7844
+n01558594 7844
+n01557962 7844
+n01558765 7844
+n01561732 7844
+n01562014 7844
+n01560280 7844
+n01562451 7844
+n01561452 7844
+n01560419 7844
+n01560636 7844
+n01559804 7844
+n01560793 7938
+n01560935 7938
+n01598988 7847
+n01599556 7847
+n01600085 7847
+n01599269 7942
+n01599159 7942
+n01597906 7853
+n01598074 7853
+n01597737 7853
+n01533651 7855
+n01534155 7855
+n01540233 7855
+n01531178 7855
+n01534762 7855
+n01533893 7855
+n01537134 7855
+n01531344 7855
+n01541386 7855
+n01531512 7855
+n01533481 7855
+n01541922 7855
+n01533000 7855
+n01544704 7855
+n01530575 7855
+n01532325 7855
+n01532511 7855
+n01531811 7855
+n01534582 7855
+n01532829 7855
+n01530439 7855
+n01533339 7855
+n01531971 7855
+n01534433 7855
+n01541102 7952
+n01540566 7952
+n01540832 7952
+n01536644 7954
+n01535469 7954
+n01536334 7954
+n01536186 7954
+n01535690 7954
+n01536780 7954
+n01536035 7954
+n01537544 7956
+n01538059 7956
+n01538630 7956
+n01537895 7956
+n01538200 7956
+n01603812 7864
+n01603953 7864
+n01573898 7866
+n01573074 7866
+n01572328 7866
+n01572782 7866
+n01574045 7866
+n01573240 7992
+n01573360 7992
+n01572654 7993
+n01572489 7993
+n01574560 7995
+n01575117 7995
+n01574390 7995
+n01575401 7995
+n01595450 7869
+n01595168 7869
+n01595624 7869
+n01594787 7869
+n01594968 7869
+n01595974 8006
+n01596273 8006
+n01583209 7872
+n01583495 7872
+n01543632 7876
+n01544389 7876
+n01591123 7877
+n01591005 7877
+n01591301 7877
+n01539925 7816
+n01540090 7816
+n01834540 7565
+n01834177 7565
+n01843065 7566
+n01838598 7566
+n01842235 7566
+n01843719 7566
+n01843383 7566
+n01839598 8023
+n01839330 8023
+n01839086 8023
+n01841102 8023
+n01841679 8023
+n01840775 8023
+n01839750 8023
+n01841441 8030
+n01841288 8030
+n01827403 7567
+n01826364 7567
+n01830915 7567
+n01830042 7567
+n01829413 7567
+n01826680 7567
+n01829869 7567
+n01828970 7567
+n01828556 8036
+n01827793 8036
+n01828096 8036
+n01616318 7569
+n01605630 7569
+n01618503 7569
+n01613294 7569
+n01621127 7569
+n01616764 8047
+n01618922 8047
+n01617766 8052
+n01617443 8052
+n01618082 8052
+n01617095 8052
+n01620414 8053
+n01619310 8053
+n01620735 8053
+n01619536 8053
+n01619835 8061
+n01620135 8061
+n01609751 8048
+n01606522 8048
+n01607812 8048
+n01608265 8048
+n01610955 8048
+n01610552 8048
+n01606809 8048
+n01616086 8048
+n01608432 8048
+n01607600 8048
+n01607962 8048
+n01606672 8048
+n01609956 8064
+n01610226 8064
+n01613177 8068
+n01611800 8068
+n01611472 8068
+n01612628 8068
+n01612476 8068
+n01612275 8068
+n01611969 8068
+n01612122 8068
+n01609391 8072
+n01609062 8072
+n01608814 8072
+n01613807 8050
+n01614343 8050
+n01615121 8050
+n01614925 8050
+n01614038 8050
+n01614556 8050
+n01615703 8091
+n01615458 8091
+n01622959 8051
+n01621635 8051
+n01623880 8051
+n01623425 8051
+n01622352 8051
+n01623615 8051
+n01622120 8051
+n01625562 8051
+n01623706 8051
+n01624115 8051
+n01624537 8051
+n01622483 8051
+n01623110 8051
+n01624833 8051
+n01622779 8051
+n01837072 7570
+n01835276 7570
+n01825278 7571
+n01823013 7571
+n01824575 8115
+n01824035 8115
+n01521399 7573
+n01521756 7573
+n01518878 7573
+n01519873 7573
+n01519563 7573
+n01789740 7574
+n01810700 7574
+n01801876 7574
+n01791463 7574
+n01791107 7574
+n02153203 7574
+n01794344 8123
+n01791954 8123
+n01794158 8123
+n01809106 8123
+n01791625 8123
+n01792429 8133
+n01792158 8133
+n01793435 8133
+n01792042 8133
+n01793715 8133
+n01792640 8133
+n01793249 8139
+n01792955 8139
+n01815601 8124
+n01811909 8124
+n01814370 8143
+n01812337 8143
+n01813088 8143
+n01812662 8143
+n01814921 8144
+n01814755 8144
+n01813532 8145
+n01813385 8145
+n01813948 8145
+n01814217 8145
+n01802721 8128
+n01810268 8128
+n01795088 8128
+n01803078 8154
+n01806567 8154
+n01807496 8154
+n01807105 8157
+n01803362 8157
+n01804163 8157
+n01805801 8157
+n01806297 8163
+n01806364 8163
+n01806143 8163
+n01806467 8163
+n01804478 8158
+n01806847 8158
+n01804653 8158
+n01808140 8159
+n01807828 8159
+n01797307 8156
+n01798484 8156
+n01797020 8156
+n01797886 8156
+n01797601 8156
+n01796729 8156
+n01795545 8156
+n01796340 8156
+n01819734 7576
+n01821203 7576
+n01819115 7576
+n01817346 7576
+n01818832 7576
+n01817953 7576
+n01818515 7576
+n01818299 7576
+n01820052 7576
+n01820348 7576
+n01817263 7576
+n01821869 8182
+n01822300 8182
+n01819313 8183
+n01819465 8183
+n01821076 8190
+n01820546 8190
+n01317089 6469
+n01317294 6469
+n01918744 6470
+n01922303 6470
+n01940736 6470
+n02316707 6470
+n01909422 6470
+n01767661 6470
+n01906749 6470
+n01930112 8201
+n01934440 8201
+n01924916 8201
+n01938454 8208
+n01935395 8208
+n01955084 8202
+n01955933 8202
+n01968315 8202
+n01942177 8202
+n01960459 8213
+n01963317 8213
+n01956481 8213
+n01963571 8213
+n01959985 8213
+n01965889 8213
+n01961985 8213
+n01957335 8218
+n01958038 8218
+n01959492 8218
+n01964441 8219
+n01964271 8219
+n01965529 8219
+n01969726 8214
+n01968897 8214
+n01972541 8214
+n01970164 8229
+n01970667 8229
+n01951274 8215
+n01953361 8215
+n01943899 8215
+n01945845 8215
+n01943087 8215
+n01953762 8215
+n01950731 8215
+n01945685 8215
+n01944390 8215
+n01949085 8237
+n01947396 8237
+n01946630 8237
+n01944812 8242
+n01945143 8242
+n01944955 8242
+n02317335 8203
+n02321170 8203
+n02319555 8203
+n02319095 8203
+n02321529 8203
+n02317781 8203
+n01909906 8204
+n01914163 8204
+n01913166 8204
+n01910747 8204
+n01915700 8256
+n01914609 8256
+n01915811 8256
+n01916925 8261
+n01916187 8261
+n01916481 8261
+n01917882 8262
+n01917289 8262
+n01784675 8205
+n01974773 8205
+n01768244 8205
+n01786646 8205
+n01769347 8205
+n01787835 8205
+n02309242 8205
+n02159955 8205
+n01785667 8205
+n01994910 8268
+n01976868 8268
+n01990007 8268
+n01975687 8268
+n01976146 8268
+n01990800 8279
+n01992773 8279
+n01991520 8281
+n01991028 8281
+n01982650 8280
+n01986806 8280
+n01986214 8280
+n01987545 8280
+n01976957 8280
+n01985128 8280
+n01984245 8285
+n01984695 8285
+n01983481 8285
+n01981276 8289
+n01979874 8289
+n01978455 8289
+n01978287 8289
+n01980166 8289
+n01982068 8289
+n01770393 8271
+n01770081 8271
+n01776192 8271
+n01772222 8271
+n01776313 8302
+n01779629 8302
+n01779148 8302
+n01772664 8303
+n01775370 8303
+n01774750 8303
+n01775062 8303
+n01773797 8303
+n01774384 8303
+n01773157 8303
+n01773549 8303
+n02226183 8274
+n02236896 8274
+n02263378 8274
+n02232951 8274
+n02163297 8274
+n02262449 8274
+n02246011 8274
+n02188699 8274
+n02272871 8274
+n02273392 8274
+n02231052 8274
+n02161457 8274
+n02236355 8274
+n02312427 8274
+n02231487 8274
+n02162561 8274
+n02164464 8274
+n02241569 8274
+n02262803 8274
+n02206270 8274
+n02274024 8274
+n02312640 8274
+n02268148 8274
+n02270623 8274
+n02207805 8274
+n02226429 8315
+n02229544 8315
+n02228341 8340
+n02226970 8340
+n02241426 8316
+n02240517 8316
+n02266050 8317
+n02264885 8317
+n02264363 8317
+n02236044 8318
+n02236241 8318
+n02233338 8318
+n02234355 8351
+n02234848 8351
+n02233943 8351
+n02251775 8321
+n02256656 8321
+n02258198 8321
+n02257284 8321
+n02250822 8321
+n02259212 8321
+n02252226 8321
+n02200198 8322
+n02205219 8322
+n02203152 8322
+n02196344 8322
+n02190166 8322
+n02198859 8322
+n02196119 8322
+n02201000 8362
+n02202006 8362
+n02195819 8366
+n02195526 8366
+n02192513 8366
+n02191773 8366
+n02190790 8366
+n02192252 8374
+n02191979 8374
+n02169974 8331
+n02168245 8331
+n02167151 8331
+n02169023 8331
+n02165456 8331
+n02171453 8331
+n02180875 8331
+n02183096 8331
+n02169497 8331
+n02176261 8331
+n02176439 8331
+n02165105 8331
+n02177972 8331
+n02168699 8331
+n02166567 8382
+n02166826 8382
+n02171869 8383
+n02175916 8383
+n02175569 8394
+n02172870 8394
+n02173373 8394
+n02174001 8394
+n02172182 8394
+n02172518 8394
+n02174659 8394
+n02243562 8332
+n02244797 8332
+n02212062 8334
+n02218371 8334
+n02219486 8334
+n02206856 8334
+n02216211 8405
+n02215770 8405
+n02212602 8405
+n02213107 8411
+n02212958 8411
+n02213543 8411
+n02213239 8412
+n02213788 8412
+n02220804 8407
+n02221083 8407
+n02221414 8407
+n02209354 8408
+n02208280 8408
+n02211627 8408
+n02210427 8408
+n02211444 8408
+n02209624 8408
+n02208498 8421
+n02208848 8421
+n02274259 8335
+n02283201 8335
+n02281787 8428
+n02274822 8428
+n02281406 8428
+n02277742 8428
+n02279972 8428
+n02280649 8428
+n02282257 8430
+n02282903 8430
+n02282385 8430
+n02275773 8431
+n02278210 8431
+n02276258 8431
+n02276902 8431
+n02279257 8431
+n02277094 8431
+n02276078 8431
+n02275560 8431
+n02277268 8431
+n02276355 8431
+n02276749 8431
+n02278024 8431
+n02281015 8435
+n02281136 8435
+n02305929 8429
+n02301452 8429
+n02295064 8429
+n02298541 8429
+n02284611 8429
+n02287004 8429
+n02291572 8429
+n02305085 8454
+n02301935 8454
+n02304432 8454
+n02303284 8454
+n02302969 8454
+n02292692 8459
+n02291748 8459
+n02268443 8337
+n02268853 8337
+n01321123 6471
+n02376679 6471
+n01323493 6471
+n01338685 5175
+n01387065 5175
+n01339083 8472
+n01339336 8472
+n01339801 8472
+n01339471 8472
+n01397114 8473
+n01389507 8473
+n01397871 8478
+n01410457 8478
+n01407798 8478
+n01424420 8479
+n01392380 8479
+n01395254 8479
+n01396048 8479
+n11542137 5176
+n11544015 5176
+n11542640 5176
+n09626238 5177
+n09856671 5177
+n09605289 5177
+n09622049 5177
+n09971273 5177
+n09882716 5177
+n09621232 5177
+n09902954 5177
+n09620794 5177
+n09727440 5177
+n09624168 5177
+n09752519 5177
+n10378026 5177
+n10500217 5177
+n10514429 5177
+n09610405 5177
+n09617867 5177
+n10355449 5177
+n09618957 5177
+n10002760 5177
+n10384496 5177
+n09637339 5177
+n09613191 5177
+n09836160 5177
+n10274815 5177
+n09890749 5177
+n10112591 5177
+n10260706 5177
+n09606527 5177
+n09767197 5177
+n10709529 5177
+n09976429 5177
+n09918554 5177
+n10588074 5177
+n10565667 5177
+n09990415 5177
+n10120330 5177
+n09616922 5177
+n09622302 5177
+n09630641 5177
+n09796809 5177
+n09614684 5177
+n10635788 5177
+n09645091 5177
+n10405694 5177
+n09676884 5177
+n09638875 5177
+n09874428 5177
+n09627906 5177
+n09628382 5177
+n10522759 5177
+n10247880 5177
+n09624980 5177
+n10529231 5177
+n10024362 5177
+n09614315 5177
+n09612848 5177
+n09632518 5177
+n10147935 5177
+n09871867 5177
+n09620078 5177
+n09634494 5177
+n10077593 5177
+n10040945 5177
+n09623038 5177
+n10560106 5177
+n10289039 5177
+n10422405 5177
+n09774783 5177
+n10042845 5177
+n09831962 5177
+n10726031 5177
+n09923673 5177
+n09610660 5177
+n09626031 5177
+n10401331 5177
+n09621545 5177
+n10362319 5177
+n10665698 5177
+n09906449 5177
+n09939313 5177
+n10439373 5177
+n09607630 5177
+n09631463 5177
+n10451450 5177
+n10541229 5177
+n09793141 5177
+n10633450 5177
+n10530959 5177
+n09629752 5177
+n10560637 5177
+n10431625 5177
+n09619168 5177
+n09763784 5177
+n09636339 5177
+n10235549 5177
+n09845401 5177
+n10513823 5177
+n10610465 5177
+n09951274 5177
+n09816771 8490
+n10401829 8590
+n10307234 8590
+n10505613 8590
+n10148035 8591
+n09874725 8591
+n09944022 8592
+n10015485 8592
+n10728624 8592
+n10308168 8592
+n10200781 8492
+n10480253 8492
+n10376523 8492
+n09903153 8600
+n10748620 8600
+n10581890 8601
+n10045713 8601
+n10165109 8601
+n10694258 8606
+n10509063 8606
+n10559996 8606
+n10366966 8607
+n10305802 8607
+n10421470 8607
+n10164492 8611
+n10477713 8611
+n10020890 8612
+n10679174 8616
+n10632576 8616
+n10189278 8616
+n09894445 8618
+n10504206 8618
+n10559288 8493
+n09917593 8493
+n09833441 8623
+n10384392 8623
+n10060352 8495
+n09840217 8495
+n09777012 8495
+n10309896 8495
+n09905185 8495
+n10686885 8628
+n10209731 8628
+n10093818 8629
+n10754189 8629
+n10411551 8629
+n10577284 8629
+n10285313 8500
+n10333439 8500
+n10624074 8500
+n10287213 8500
+n09871229 8637
+n10078719 8637
+n09843443 8637
+n10173771 8640
+n10192839 8640
+n10419785 8640
+n10406266 8640
+n10288964 8640
+n10804287 8640
+n10665587 8640
+n10153414 8640
+n10406765 8640
+n10611613 8506
+n09805324 8506
+n09824361 8506
+n10316360 8506
+n10707233 8506
+n10696508 8506
+n09858165 8506
+n10175248 8655
+n09979321 8655
+n10692482 8661
+n10396106 8661
+n10427764 8657
+n10385566 8657
+n10439851 8512
+n09820263 8512
+n10533013 8512
+n09854421 8666
+n10304914 8666
+n10575463 8666
+n09915651 8666
+n10453184 8666
+n10101634 8667
+n10701180 8667
+n09835230 8667
+n10746931 8667
+n10542888 8667
+n10604491 8667
+n09764381 8667
+n09929298 8667
+n10019406 8667
+n09785659 8667
+n10618342 8667
+n10782471 8667
+n10701644 8667
+n10105733 8667
+n10638922 8667
+n09842047 8667
+n10315561 8667
+n09835506 8667
+n10153594 8667
+n09830194 8674
+n10263411 8674
+n10157128 8693
+n10498816 8693
+n10689306 8693
+n10604380 8679
+n10634849 8679
+n09923561 8680
+n09764598 8680
+n10086568 8691
+n10007684 8691
+n09841696 8691
+n10321340 8691
+n10092488 8702
+n10386984 8702
+n10387196 8702
+n10205457 8702
+n10578021 8668
+n10098710 8668
+n09836519 8513
+n09836786 8513
+n09836343 8513
+n09877951 8516
+n10300154 8516
+n10095769 8516
+n10435988 8520
+n09930257 8718
+n10387324 8718
+n10098862 8525
+n10642596 8721
+n10331167 8721
+n09946814 8527
+n10299250 8527
+n09896170 8527
+n10415638 8527
+n10091450 8727
+n10069296 8727
+n09989502 8727
+n10226413 8727
+n10493685 8727
+n09765278 8727
+n09930876 8727
+n10340312 8727
+n09990777 8730
+n09834699 8730
+n10737103 8733
+n10649197 8733
+n10701962 8735
+n10415037 8735
+n10151760 8735
+n10229883 8735
+n10732010 8735
+n10603851 8735
+n10599806 8735
+n10369317 8735
+n09903501 8735
+n10755080 8735
+n10098245 8735
+n10382825 8735
+n10536416 8735
+n10036929 8735
+n10624310 8746
+n09842528 8746
+n10085869 8528
+n09991867 8528
+n10078131 8528
+n10627252 8528
+n10682953 8528
+n10237196 8528
+n09789566 8529
+n10182190 8529
+n09899671 8529
+n10150071 8531
+n10091651 8531
+n10806113 8531
+n10249459 8531
+n10317500 8768
+n09822830 8768
+n10448983 8768
+n09862621 8771
+n10540114 8771
+n10009276 8771
+n10333838 8771
+n10730728 8771
+n10721321 8771
+n09659188 8533
+n09650729 8533
+n09652149 8533
+n09659039 8533
+n09729530 8536
+n09641002 8536
+n09725653 8782
+n09846469 8782
+n09750770 8782
+n10486166 8538
+n10169147 8538
+n09684901 8539
+n09683757 8539
+n09682291 8539
+n10364198 8539
+n10518602 8539
+n10341573 8791
+n10672371 8791
+n10332861 8793
+n10112129 8793
+n10602470 8793
+n10727256 8542
+n10508141 8542
+n10652605 8799
+n09881265 8799
+n09933098 8545
+n09812338 8545
+n09920283 8545
+n10078806 8545
+n10339966 8804
+n10667477 8804
+n10566072 8804
+n10469874 8804
+n10624540 8807
+n09809925 8807
+n09846755 8806
+n09873899 8806
+n09779790 8806
+n10034614 8546
+n10449664 8546
+n10034201 8546
+n09951616 8546
+n10037385 8818
+n09846894 8818
+n10282672 8547
+n10053808 8547
+n09815790 8547
+n10137825 8547
+n10605985 8547
+n10604979 8547
+n09861946 8547
+n10763383 8823
+n09841188 8823
+n10644598 8823
+n10548681 8823
+n10791221 8823
+n10583790 8823
+n09873473 8823
+n10763620 8823
+n10548537 8823
+n10120671 8823
+n10241300 8833
+n10318293 8833
+n10176679 8839
+n09932508 8839
+n10186216 8841
+n10134178 8841
+n10079399 8841
+n09821831 8824
+n09934337 8824
+n10324560 8824
+n10063461 8846
+n09886403 8846
+n09760609 8846
+n10260800 8846
+n10655594 8846
+n09938449 8849
+n10183931 8849
+n09972458 8848
+n09813219 8848
+n10049363 8826
+n10372373 8826
+n10076604 8826
+n09835348 8826
+n09974648 8826
+n10433164 8826
+n09859152 8826
+n10727171 8826
+n10308732 8826
+n09833536 8826
+n10582746 8826
+n10393909 8826
+n10013927 8859
+n10225219 8859
+n10202624 8859
+n09800964 8859
+n10465831 8859
+n09787534 8870
+n10174445 8870
+n10441962 8870
+n10132035 8862
+n09896685 8862
+n09934774 8862
+n10279018 8862
+n10793570 8862
+n10155849 8862
+n10087434 8863
+n09964202 8863
+n09811852 8868
+n10348526 8868
+n10317007 8868
+n10058777 8868
+n10360747 8888
+n09941964 8888
+n10347446 8888
+n09770359 8888
+n09941787 8888
+n09942970 8888
+n09809749 8888
+n09770179 8888
+n10208950 8888
+n10580772 8890
+n10093475 8899
+n10645017 8899
+n09943239 8895
+n09943541 8895
+n10263790 8895
+n10283170 8902
+n10259348 8902
+n10092978 8902
+n10296176 8902
+n09893191 8902
+n10123844 8902
+n10259780 8902
+n10259997 8903
+n10510245 8903
+n10622053 8889
+n10058585 8889
+n10690648 8914
+n10523341 8914
+n10739391 8914
+n10476467 8915
+n10512372 8915
+n10802507 8915
+n10753442 8550
+n09733793 8550
+n09738708 8550
+n09641757 8550
+n09738400 8550
+n09727826 8550
+n09686536 8550
+n09724533 8550
+n09744834 8924
+n09743792 8924
+n09744161 8924
+n09742101 8924
+n09689435 8925
+n09734450 8925
+n09644152 8925
+n09750282 8925
+n09673495 8925
+n09718811 8925
+n09718217 8925
+n09712696 8925
+n09718936 8925
+n10711766 8925
+n09694771 8925
+n09719794 8925
+n09714694 8925
+n09675922 8938
+n09676247 8938
+n10774440 8926
+n09720256 8926
+n09725229 8926
+n09731571 8926
+n09691729 8949
+n09693982 8949
+n09712448 8949
+n09697401 8951
+n09696585 8951
+n09722658 8956
+n09724656 8956
+n09723067 8956
+n09694664 8952
+n09712324 8952
+n09689958 8928
+n09695979 8928
+n10327987 8928
+n09688804 8928
+n09730204 8928
+n09711435 8928
+n09713108 8928
+n09731343 8928
+n09717233 8928
+n09695620 8928
+n09728285 8928
+n09707289 8928
+n09701833 8928
+n09700964 8928
+n09750891 8928
+n09715427 8928
+n09708750 8928
+n09705784 8551
+n09734185 8551
+n09752023 8551
+n09635534 8551
+n09696456 8551
+n09732170 8551
+n09730824 8551
+n09719309 8551
+n09734535 8551
+n09736945 8551
+n09720842 8551
+n09692915 8551
+n09751895 8551
+n09724785 8551
+n09747495 8551
+n09734639 8551
+n09749386 8551
+n09705124 8551
+n09731436 8551
+n10303814 8554
+n10450303 8554
+n10722575 8554
+n10054657 8554
+n10631309 8554
+n10249270 8554
+n09913455 8554
+n10162991 8554
+n09807754 8554
+n09505153 8554
+n10209082 8554
+n10323634 8554
+n10104064 8554
+n10001481 9000
+n10242328 9000
+n10159045 9001
+n09932098 9001
+n10253995 9004
+n10005934 9016
+n10578471 9016
+n09770949 9006
+n10004718 9006
+n10570019 9006
+n10289462 9019
+n10069645 9019
+n10187990 9019
+n09916348 9023
+n10727458 9023
+n10320863 9023
+n10572706 9021
+n10572889 9021
+n10038409 9007
+n10756148 9007
+n09927451 9008
+n10243664 9008
+n10502329 9008
+n09988493 9008
+n10373390 9032
+n10470779 9032
+n09928136 9032
+n10750031 9037
+n10081204 9037
+n09857200 9037
+n10013811 9041
+n09894143 9041
+n10313239 9041
+n10082997 8558
+n10677713 8558
+n09787765 8558
+n10485883 8558
+n10275395 9046
+n09913593 9046
+n09772930 8560
+n09633969 8560
+n10195593 9052
+n09756049 9052
+n10607478 9052
+n09855433 8563
+n10017272 8563
+n10630188 8563
+n10522035 8563
+n10521662 8563
+n10380672 9058
+n10210911 9058
+n10382710 9059
+n10164747 9059
+n09782397 9059
+n10524076 9059
+n10467395 9064
+n10467179 9064
+n10698368 9060
+n09792969 9060
+n10525617 8564
+n10675010 8564
+n09889941 8564
+n10557854 8566
+n09618760 8566
+n09899929 8566
+n10116702 9074
+n10258786 9074
+n10508710 9074
+n09873348 8570
+n09870208 8570
+n10793168 8570
+n10098517 9081
+n10314517 9081
+n10629939 9081
+n10477077 9081
+n10261624 9086
+n10082687 9086
+n10262445 9086
+n10167152 9082
+n10098624 9082
+n10674713 9082
+n09838621 9082
+n10047459 8573
+n10091564 8573
+n10740868 8573
+n09872066 9094
+n10070711 9094
+n10628644 8575
+n10421016 8575
+n09915434 8575
+n10588357 8575
+n10529965 8579
+n10334009 8579
+n10339717 8579
+n09818022 8579
+n10412055 8579
+n10335931 8579
+n09945745 8579
+n10432441 8579
+n10607291 8579
+n10583387 8579
+n10718131 8579
+n10542761 8579
+n10147121 8579
+n10738111 9103
+n10159533 9103
+n10223177 9103
+n10185793 9103
+n10553235 9107
+n10293332 9107
+n10178216 9108
+n10563403 9108
+n10488656 8580
+n10619642 8580
+n10276477 8580
+n10620758 9125
+n10450161 9125
+n10043643 9125
+n10043491 9129
+n10313724 9129
+n10084295 8582
+n10787470 8582
+n10333601 8582
+n10131151 8582
+n09871681 9132
+n09981939 9132
+n10055410 9133
+n10243137 9133
+n10377021 9133
+n10368528 9133
+n10025635 9133
+n09874862 9133
+n10613996 9133
+n10472129 9133
+n10598181 9133
+n10129825 9133
+n09847543 9133
+n10173410 9133
+n10780284 9133
+n09889065 9133
+n09832456 9133
+n10780632 9133
+n10117851 9147
+n09827363 9147
+n10247358 9147
+n10282482 9147
+n10092794 9153
+n10375314 9153
+n09981278 9153
+n10082043 8585
+n09972010 8585
+n10237069 8585
+n09792555 8585
+n10236946 8585
+n10568358 8585
+n10207169 8585
+n10236304 8585
+n10734394 8585
+n10373998 8585
+n10595164 8585
+n10357613 9163
+n09823502 9163
+n10146104 9163
+n10602985 9163
+n10145239 9163
+n10267865 9175
+n09854218 9175
+n10399491 9164
+n10102800 9164
+n10102369 9164
+n10406391 9164
+n10300500 9179
+n10080869 9179
+n10332385 9179
+n09988063 9184
+n10375402 9184
+n10145774 9181
+n10143172 9181
+n10145590 9181
+n10345015 9189
+n10142747 9189
+n10142391 9189
+n10146002 9165
+n10267311 9165
+n10141590 9170
+n10092643 9170
+n09918248 9170
+n10671613 9170
+n10141732 9196
+n10145340 9196
+n10145902 9201
+n10145480 9201
+n09827683 9198
+n10135129 9204
+n10465451 9204
+n10353016 9204
+n13001930 5178
+n13040629 5178
+n12969131 5178
+n12985420 5178
+n13052670 5178
+n13037406 5178
+n13077295 5178
+n12987056 5178
+n12979829 5178
+n12975804 5178
+n12974987 5178
+n12985773 5178
+n13044778 5178
+n12985857 5178
+n13035241 5178
+n13043926 5178
+n12982468 5178
+n13035707 5178
+n13044375 5178
+n12969425 5178
+n13060190 5178
+n13054073 5178
+n13040303 5178
+n13028611 5178
+n12997654 5178
+n12983048 5178
+n13062421 5178
+n13054560 5178
+n12963628 9214
+n12980840 9214
+n12991184 9215
+n12989938 9215
+n12992177 9215
+n12988158 9215
+n13029326 9231
+n13029760 9231
+n13011595 9232
+n13049953 9232
+n12998815 9232
+n12997919 9232
+n13052931 9245
+n13050397 9245
+n13012253 9246
+n13001041 9246
+n13005984 9246
+n13000891 9246
+n13007417 9246
+n13019835 9246
+n13013764 9246
+n13006894 9246
+n13002750 9246
+n13017102 9246
+n13232779 9246
+n13009429 9246
+n13013534 9246
+n13003522 9246
+n13001366 9246
+n13009085 9246
+n13022210 9246
+n13002925 9246
+n13006171 9246
+n13003712 9246
+n13001206 9246
+n13004423 9246
+n13001529 9246
+n13003254 9246
+n13003061 9246
+n13032115 9247
+n13032381 9275
+n13033577 9275
+n13055577 9235
+n13055949 9235
+n13055423 9235
+n05430628 5171
+n05450617 9281
+n05449959 9281
+n05451384 9283
+n05453657 9283
+n09369169 1043
+n09454412 1043
+n09403211 1043
+n13086908 1043
+n09416076 1043
+n09251407 1043
+n05218119 1043
+n09444100 1043
+n09438940 1043
+n09257949 1043
+n09189157 9286
+n09475044 9286
+n11691857 9289
+n13102775 9289
+n13087625 9289
+n13022709 9289
+n11675842 9300
+n13152742 9300
+n13125117 9300
+n13129165 9300
+n11690254 9300
+n11669335 9302
+n13134947 9302
+n11676500 9302
+n11675025 9307
+n11674332 9307
+n11669786 9307
+n13131028 9311
+n13132338 9311
+n13132656 9311
+n12301445 9308
+n13133613 9308
+n13141415 9308
+n13137409 9308
+n12642090 9308
+n12267677 9308
+n12658481 9308
+n12144313 9308
+n12158031 9308
+n13135832 9308
+n12620546 9308
+n11636835 9308
+n13139055 9308
+n12144580 9325
+n07929351 9325
+n13136556 9325
+n12768682 9325
+n11689483 9325
+n13136316 9325
+n07770571 9325
+n07737081 9331
+n07774842 9336
+n07774596 9336
+n07775050 9336
+n07772788 9336
+n07771212 9336
+n07772147 9336
+n07772274 9336
+n07774719 9336
+n07737745 9336
+n07772935 9336
+n15086247 9333
+n11879895 9333
+n12576323 9334
+n12532564 9334
+n07814634 9335
+n07775197 9335
+n07770763 9335
+n11748002 9328
+n12172364 9328
+n12515925 9354
+n12560282 9354
+n12578916 9354
+n12560621 9354
+n12544539 9354
+n12024690 9303
+n13154494 9303
+n11690455 9303
+n12927013 9304
+n11953610 9304
+n13128365 9305
+n13133932 9305
+n13163991 9305
+n13134059 9305
+n13131618 9305
+n13130726 9305
+n11678010 9305
+n12136392 9305
+n11979964 9366
+n12088223 9366
+n12462805 9369
+n12433081 9369
+n09218494 9290
+n09381242 9290
+n09460046 9290
+n09451237 9293
+n09450163 9293
+n01904182 9295
+n13155095 9295
+n09432283 9295
+n11705387 9295
+n09438844 9295
+n11692265 9295
+n05237755 9295
+n09416890 9295
+n01956764 9383
+n01904806 9383
+n01904886 9383
+n05586759 9389
+n05581932 9389
+n01904029 9389
+n05238282 9389
+n05254795 9389
+n02469248 9389
+n05256862 9398
+n05258051 9398
+n01899894 9398
+n05261404 9398
+n05259914 9400
+n05261310 9400
+n05260240 9400
+n05262185 9403
+n05261566 9403
+n05262534 9407
+n05262422 9407
+n05263183 9408
+n05263448 9408
+n11524662 3
+n11448153 3
+n09247410 3
+n11508382 9413
+n11524451 9413
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/coco.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/coco.names"
new file mode 100644
index 00000000..ca76c80b
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/coco.names"
@@ -0,0 +1,80 @@
+person
+bicycle
+car
+motorbike
+aeroplane
+bus
+train
+truck
+boat
+traffic light
+fire hydrant
+stop sign
+parking meter
+bench
+bird
+cat
+dog
+horse
+sheep
+cow
+elephant
+bear
+zebra
+giraffe
+backpack
+umbrella
+handbag
+tie
+suitcase
+frisbee
+skis
+snowboard
+sports ball
+kite
+baseball bat
+baseball glove
+skateboard
+surfboard
+tennis racket
+bottle
+wine glass
+cup
+fork
+knife
+spoon
+bowl
+banana
+apple
+sandwich
+orange
+broccoli
+carrot
+hot dog
+pizza
+donut
+cake
+chair
+sofa
+pottedplant
+bed
+diningtable
+toilet
+tvmonitor
+laptop
+mouse
+remote
+keyboard
+cell phone
+microwave
+oven
+toaster
+sink
+refrigerator
+book
+clock
+vase
+scissors
+teddy bear
+hair drier
+toothbrush
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/coco9k.map" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/coco9k.map"
new file mode 100644
index 00000000..5155b652
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/coco9k.map"
@@ -0,0 +1,80 @@
+5177
+3768
+3802
+3800
+4107
+4072
+4071
+3797
+4097
+2645
+5150
+2644
+3257
+2523
+6527
+6866
+6912
+7342
+7255
+7271
+7217
+6858
+7343
+7233
+3704
+4374
+3641
+5001
+3899
+2999
+2631
+5141
+2015
+1133
+1935
+1930
+5144
+5143
+2371
+3916
+3745
+3640
+4749
+4736
+4735
+3678
+58
+42
+771
+81
+152
+141
+786
+700
+218
+791
+2518
+2521
+3637
+2458
+2505
+2519
+3499
+2837
+3503
+2597
+3430
+2080
+5103
+5111
+5102
+3013
+5096
+1102
+3218
+4010
+2266
+1127
+5122
+2360
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/dog.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/dog.jpg"
new file mode 100644
index 00000000..77b03812
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/dog.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/eagle.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/eagle.jpg"
new file mode 100644
index 00000000..8b750950
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/eagle.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/giraffe.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/giraffe.jpg"
new file mode 100644
index 00000000..a93e8b88
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/giraffe.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/goal.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/goal.txt"
new file mode 100644
index 00000000..c63d1573
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/goal.txt"
@@ -0,0 +1,3 @@
++++++
+val_eq (Val.add (Val.add (r3 PC) Vone) Vone) (Val.add (x2 PC) Vone)
+*****
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/horses.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/horses.jpg"
new file mode 100644
index 00000000..3a761f46
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/horses.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/imagenet.labels.list" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/imagenet.labels.list"
new file mode 100644
index 00000000..23268724
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/imagenet.labels.list"
@@ -0,0 +1,21842 @@
+n02119789
+n02100735
+n02110185
+n02096294
+n02102040
+n02066245
+n02509815
+n02124075
+n02417914
+n02123394
+n02125311
+n02423022
+n02346627
+n02077923
+n02110063
+n02447366
+n02109047
+n02089867
+n02102177
+n02091134
+n02092002
+n02071294
+n02442845
+n02504458
+n02092339
+n02098105
+n02096437
+n02114712
+n02105641
+n02128925
+n02091635
+n02088466
+n02096051
+n02117135
+n02138441
+n02097130
+n02493509
+n02457408
+n02389026
+n02443484
+n02110341
+n02089078
+n02086910
+n02445715
+n02093256
+n02113978
+n02106382
+n02441942
+n02113712
+n02113186
+n02105162
+n02415577
+n02356798
+n02488702
+n02123159
+n02098413
+n02422699
+n02114855
+n02094433
+n02111277
+n02132136
+n02119022
+n02091467
+n02106550
+n02422106
+n02091831
+n02120505
+n02104365
+n02086079
+n02112706
+n02098286
+n02095889
+n02484975
+n02137549
+n02500267
+n02129604
+n02090721
+n02396427
+n02108000
+n02391049
+n02412080
+n02108915
+n02480495
+n02110806
+n02128385
+n02107683
+n02085936
+n02094114
+n02087046
+n02100583
+n02096177
+n02494079
+n02105056
+n02101556
+n02123597
+n02481823
+n02105505
+n02088094
+n02085782
+n02489166
+n02364673
+n02114548
+n02134084
+n02480855
+n02090622
+n02113624
+n02093859
+n02403003
+n02097298
+n02108551
+n02493793
+n02107142
+n02096585
+n02107574
+n02107908
+n02086240
+n02102973
+n02112018
+n02093647
+n02397096
+n02437312
+n02483708
+n02097047
+n02106030
+n02099601
+n02093991
+n02110627
+n02106166
+n02326432
+n02108089
+n02097658
+n02088364
+n02111129
+n02100236
+n02486261
+n02115913
+n02486410
+n02487347
+n02099849
+n02108422
+n02104029
+n02492035
+n02110958
+n02099429
+n02094258
+n02099267
+n02395406
+n02112350
+n02109961
+n02101388
+n02113799
+n02095570
+n02128757
+n02101006
+n02115641
+n02097209
+n02342885
+n02097474
+n02120079
+n02095314
+n02088238
+n02408429
+n02133161
+n02328150
+n02410509
+n02492660
+n02398521
+n02112137
+n02510455
+n02093428
+n02105855
+n02111500
+n02085620
+n02123045
+n02490219
+n02099712
+n02109525
+n02454379
+n02111889
+n02088632
+n02090379
+n02443114
+n02361337
+n02105412
+n02483362
+n02437616
+n02107312
+n02325366
+n02091032
+n02129165
+n02102318
+n02100877
+n02074367
+n02504013
+n02363005
+n02102480
+n02113023
+n02086646
+n02497673
+n02087394
+n02127052
+n02116738
+n02488291
+n02091244
+n02114367
+n02130308
+n02089973
+n02105251
+n02134418
+n02093754
+n02106662
+n02444819
+n01882714
+n01871265
+n01872401
+n01877812
+n01873310
+n01883070
+n04086273
+n04507155
+n04147183
+n04254680
+n02672831
+n02219486
+n02317335
+n01968897
+n03452741
+n03642806
+n07745940
+n02690373
+n04552348
+n02692877
+n02782093
+n04266014
+n03344393
+n03447447
+n04273569
+n03662601
+n02951358
+n04612504
+n02981792
+n04483307
+n03095699
+n03673027
+n03947888
+n02687172
+n04347754
+n04606251
+n03478589
+n04389033
+n03773504
+n02860847
+n03218198
+n02835271
+n03792782
+n03393912
+n03895866
+n02797295
+n04204347
+n03791053
+n03384352
+n03272562
+n04310018
+n02704792
+n02701002
+n02814533
+n02930766
+n03100240
+n03594945
+n03670208
+n03770679
+n03777568
+n04037443
+n04285008
+n03444034
+n03445924
+n03785016
+n04252225
+n03345487
+n03417042
+n03930630
+n04461696
+n04467665
+n03796401
+n03977966
+n04065272
+n04335435
+n04252077
+n04465501
+n03776460
+n04482393
+n04509417
+n03538406
+n03599486
+n03868242
+n02804414
+n03125729
+n03131574
+n03388549
+n02870880
+n03018349
+n03742115
+n03016953
+n04380533
+n03337140
+n03891251
+n02791124
+n04429376
+n03376595
+n04099969
+n04344873
+n04447861
+n03179701
+n03982430
+n03201208
+n03290653
+n04550184
+n07742313
+n07747607
+n07749582
+n07753113
+n07753275
+n07753592
+n07754684
+n07760859
+n07768694
+n12267677
+n12620546
+n13133613
+n11879895
+n12144580
+n12768682
+n03854065
+n04515003
+n03017168
+n03249569
+n03447721
+n03720891
+n03721384
+n04311174
+n02787622
+n02992211
+n04536866
+n03495258
+n02676566
+n03272010
+n03110669
+n03394916
+n04487394
+n03494278
+n03840681
+n03884397
+n02804610
+n03838899
+n04141076
+n03372029
+n11939491
+n12057211
+n09246464
+n09468604
+n09193705
+n09472597
+n09399592
+n09421951
+n09256479
+n09332890
+n09428293
+n09288635
+n03498962
+n03041632
+n03658185
+n03954731
+n03995372
+n03649909
+n03481172
+n03109150
+n02951585
+n03970156
+n04154565
+n04208210
+n03967562
+n03000684
+n01514668
+n01514859
+n01518878
+n01530575
+n01531178
+n01532829
+n01534433
+n01537544
+n01558993
+n01560419
+n01580077
+n01582220
+n01592084
+n01601694
+n01608432
+n01614925
+n01616318
+n01622779
+n01795545
+n01796340
+n01797886
+n01798484
+n01806143
+n01806567
+n01807496
+n01817953
+n01818515
+n01819313
+n01820546
+n01824575
+n01828970
+n01829413
+n01833805
+n01843065
+n01843383
+n01847000
+n01855032
+n01855672
+n01860187
+n02002556
+n02002724
+n02006656
+n02007558
+n02009912
+n02009229
+n02011460
+n02012849
+n02013706
+n02018207
+n02018795
+n02025239
+n02027492
+n02028035
+n02033041
+n02037110
+n02017213
+n02051845
+n02056570
+n02058221
+n01484850
+n01491361
+n01494475
+n01496331
+n01498041
+n02514041
+n02536864
+n01440764
+n01443537
+n02526121
+n02606052
+n02607072
+n02643566
+n02655020
+n02640242
+n02641379
+n01664065
+n01665541
+n01667114
+n01667778
+n01669191
+n01675722
+n01677366
+n01682714
+n01685808
+n01687978
+n01688243
+n01689811
+n01692333
+n01693334
+n01694178
+n01695060
+n01704323
+n01697457
+n01698640
+n01728572
+n01728920
+n01729322
+n01729977
+n01734418
+n01735189
+n01737021
+n01739381
+n01740131
+n01742172
+n01744401
+n01748264
+n01749939
+n01751748
+n01753488
+n01755581
+n01756291
+n01629819
+n01630670
+n01631663
+n01632458
+n01632777
+n01641577
+n01644373
+n01644900
+n04579432
+n04592741
+n03876231
+n03483316
+n03868863
+n04251144
+n03691459
+n03759954
+n04152593
+n03793489
+n03271574
+n03843555
+n04332243
+n04265275
+n04330267
+n03467068
+n02794156
+n04118776
+n03841143
+n04141975
+n02708093
+n03196217
+n04548280
+n03544143
+n04355338
+n03891332
+n04328186
+n03197337
+n04317175
+n04376876
+n03706229
+n02841315
+n04009552
+n04356056
+n03692522
+n04044716
+n02879718
+n02950826
+n02749479
+n04090263
+n04008634
+n03085013
+n04505470
+n03126707
+n03666591
+n02666196
+n02977058
+n04238763
+n03180011
+n03485407
+n03832673
+n06359193
+n03496892
+n04428191
+n04004767
+n04243546
+n04525305
+n04179913
+n03602883
+n04372370
+n03532672
+n02974003
+n03874293
+n03944341
+n03992509
+n03425413
+n02966193
+n04371774
+n04067472
+n04040759
+n04019541
+n03492542
+n04355933
+n03929660
+n02965783
+n04258138
+n04074963
+n03208938
+n02910353
+n03476684
+n03627232
+n03075370
+n03874599
+n03804744
+n04127249
+n04153751
+n03803284
+n04162706
+n04228054
+n02948072
+n03590841
+n04286575
+n04456115
+n03814639
+n03933933
+n04485082
+n03733131
+n03794056
+n04275548
+n01768244
+n01770081
+n01770393
+n01773157
+n01773549
+n01773797
+n01774384
+n01774750
+n01775062
+n01776313
+n01784675
+n01990800
+n01978287
+n01978455
+n01980166
+n01981276
+n01983481
+n01984695
+n01985128
+n01986214
+n02165105
+n02165456
+n02167151
+n02168699
+n02169497
+n02172182
+n02174001
+n02177972
+n02190166
+n02206856
+n02226429
+n02229544
+n02231487
+n02233338
+n02236044
+n02256656
+n02259212
+n02264363
+n02268443
+n02268853
+n02276258
+n02277742
+n02279972
+n02280649
+n02281406
+n02281787
+n01910747
+n01914609
+n01917289
+n01924916
+n01930112
+n01943899
+n01944390
+n01945685
+n01950731
+n01955084
+n02319095
+n02321529
+n03584829
+n03297495
+n03761084
+n03259280
+n04111531
+n04442312
+n04542943
+n04517823
+n03207941
+n04070727
+n04554684
+n03133878
+n03400231
+n04596742
+n02939185
+n03063689
+n04398044
+n04270147
+n02699494
+n04486054
+n03899768
+n04311004
+n04366367
+n04532670
+n02793495
+n03457902
+n03877845
+n03781244
+n03661043
+n02727426
+n02859443
+n03028079
+n03788195
+n04346328
+n03956157
+n04081281
+n03032252
+n03529860
+n03697007
+n03065424
+n03837869
+n04458633
+n02980441
+n04005630
+n03461385
+n02776631
+n02791270
+n02871525
+n02927161
+n03089624
+n04200800
+n04443257
+n04462240
+n03388043
+n03042490
+n04613696
+n03216828
+n02892201
+n03743016
+n02788148
+n02894605
+n03160309
+n03000134
+n03930313
+n04604644
+n04326547
+n03459775
+n04239074
+n04501370
+n03792972
+n04149813
+n03530642
+n03961711
+n03903868
+n02814860
+n07711569
+n07720875
+n07714571
+n07714990
+n07715103
+n07716358
+n07716906
+n07717410
+n07717556
+n07718472
+n07718747
+n07730033
+n07734744
+n04209239
+n03594734
+n02971356
+n03485794
+n04133789
+n02747177
+n04125021
+n07579787
+n03814906
+n03134739
+n03404251
+n04423845
+n03877472
+n04120489
+n03062245
+n03014705
+n03717622
+n03777754
+n04493381
+n04476259
+n02777292
+n07693725
+n03998194
+n03617480
+n07590611
+n04579145
+n03623198
+n07248320
+n04277352
+n04229816
+n02823428
+n03127747
+n02877765
+n04435653
+n03724870
+n03710637
+n03920288
+n03379051
+n02807133
+n04399382
+n03527444
+n03983396
+n03924679
+n04532106
+n06785654
+n03445777
+n07613480
+n04350905
+n04562935
+n03325584
+n03045698
+n07892512
+n03250847
+n04192698
+n03026506
+n03534580
+n07565083
+n04296562
+n02869837
+n07871810
+n02799071
+n03314780
+n04141327
+n04357314
+n02823750
+n13052670
+n07583066
+n03637318
+n04599235
+n07802026
+n02883205
+n03709823
+n04560804
+n02909870
+n03207743
+n04263257
+n07932039
+n03786901
+n04479046
+n03873416
+n02999410
+n04367480
+n03775546
+n07875152
+n04591713
+n04201297
+n02916936
+n03240683
+n02840245
+n02963159
+n04370456
+n03991062
+n02843684
+n03482405
+n03942813
+n03908618
+n03902125
+n07584110
+n02730930
+n04023962
+n02769748
+n10148035
+n02817516
+n03908714
+n02906734
+n03788365
+n02667093
+n03787032
+n03980874
+n03141823
+n03976467
+n04264628
+n07930864
+n04039381
+n06874185
+n04033901
+n04041544
+n07860988
+n03146219
+n03763968
+n03676483
+n04209133
+n03782006
+n03857828
+n03775071
+n02892767
+n07684084
+n04522168
+n03764736
+n04118538
+n03887697
+n13044778
+n03291819
+n03770439
+n03124170
+n04487081
+n03916031
+n02808440
+n07697537
+n12985857
+n02917067
+n03938244
+n15075141
+n02978881
+n02966687
+n03633091
+n13040303
+n03690938
+n03476991
+n02669723
+n03220513
+n03127925
+n04584207
+n07880968
+n03937543
+n03000247
+n04418357
+n04590129
+n02795169
+n04553703
+n02783161
+n02802426
+n02808304
+n03124043
+n03450230
+n04589890
+n12998815
+n02992529
+n03825788
+n02790996
+n03710193
+n03630383
+n03347037
+n03769881
+n03871628
+n03733281
+n03976657
+n03535780
+n04259630
+n03929855
+n04049303
+n04548362
+n02979186
+n06596364
+n03935335
+n06794110
+n02825657
+n03388183
+n04591157
+n04540053
+n03866082
+n04136333
+n04026417
+n02865351
+n02834397
+n03888257
+n04235860
+n04404412
+n04371430
+n03733805
+n07920052
+n07873807
+n02895154
+n04204238
+n04597913
+n04131690
+n07836838
+n09835506
+n03443371
+n13037406
+n04336792
+n04557648
+n03187595
+n04254120
+n03595614
+n04146614
+n03598930
+n03958227
+n04069434
+n03188531
+n02786058
+n07615774
+n04525038
+n04409515
+n03424325
+n03223299
+n03680355
+n07614500
+n07695742
+n04033995
+n03710721
+n04392985
+n03047690
+n03584254
+n13054560
+n10565667
+n03950228
+n03729826
+n02837789
+n04254777
+n02988304
+n03657121
+n04417672
+n04523525
+n02815834
+n09229709
+n07697313
+n03888605
+n03355925
+n03063599
+n04116512
+n04325704
+n07831146
+n03255030
+n00483313
+n02432291
+n02356381
+n02377388
+n04028764
+n04381587
+n02279257
+n04168199
+n00445055
+n02461128
+n03626760
+n04313503
+n00451635
+n02509515
+n04224842
+n09403734
+n02769290
+n13054073
+n03163222
+n00464478
+n03087069
+n04477219
+n03445617
+n00449054
+n00483705
+n04395106
+n03389611
+n04285965
+n04166281
+n04003856
+n03696301
+n00475787
+n04587404
+n09218641
+n02276355
+n03592669
+n04459909
+n04492375
+n09447666
+n00463543
+n04148703
+n04591517
+n03970546
+n04297750
+n02782778
+n02383231
+n03693474
+n02277094
+n03766044
+n02056228
+n03394272
+n03047052
+n00434075
+n04185946
+n02411999
+n03858418
+n12833149
+n02836035
+n03108853
+n04587559
+n04138261
+n02278024
+n03063485
+n02774921
+n09475044
+n02811204
+n03329302
+n04026813
+n03986562
+n03379204
+n03426134
+n02790669
+n03487090
+n03548402
+n08614632
+n04054361
+n03421485
+n03302671
+n03098959
+n02970408
+n03772584
+n03064935
+n09415584
+n11715430
+n12024445
+n02710201
+n03475581
+n13142504
+n03396074
+n03211789
+n03914337
+n03678558
+n03233123
+n00453396
+n00454395
+n00440382
+n04289027
+n00445226
+n11953610
+n04128413
+n00480211
+n00470966
+n12547503
+n03085219
+n02275773
+n02692086
+n04257790
+n00448748
+n02686379
+n12328567
+n03432129
+n03859000
+n12091377
+n02124313
+n00442847
+n04603399
+n03114379
+n02920369
+n03818343
+n02946127
+n02978055
+n12914923
+n02705429
+n00448232
+n12882945
+n04289690
+n07606669
+n02056728
+n11848479
+n03046921
+n12282933
+n02867966
+n12821505
+n02812949
+n04545305
+n02699770
+n04395651
+n02900160
+n04099003
+n02054711
+n12606545
+n03356858
+n01859190
+n03643737
+n02962200
+n03123553
+n09361517
+n02793089
+n00449517
+n02783994
+n10117851
+n12038585
+n04383839
+n10142391
+n07719213
+n03536122
+n02472987
+n03454536
+n11728099
+n02392824
+n03795758
+n04282872
+n00448872
+n02404432
+n03797182
+n03029197
+n03665924
+n12477163
+n02769963
+n03863262
+n01532325
+n04165409
+n04593077
+n04473108
+n03577090
+n09988063
+n00446804
+n03931765
+n00475014
+n02700064
+n03240892
+n12475242
+n11735053
+n04053508
+n02852173
+n02382750
+n03823111
+n04543772
+n04112147
+n04433585
+n03175189
+n03596543
+n00445685
+n03307792
+n04589593
+n01814217
+n02993368
+n04303497
+n02811350
+n03355768
+n03699591
+n04590553
+n01893825
+n12726670
+n09916348
+n11544015
+n01318894
+n02133704
+n02367492
+n04506289
+n02069974
+n01900150
+n03207835
+n03363549
+n02831595
+n04970470
+n04160847
+n03767203
+n03928814
+n02302969
+n02918595
+n10401331
+n04231272
+n03717447
+n03063968
+n03380724
+n00825773
+n09988493
+n02740300
+n04539794
+n04121511
+n01323599
+n12937130
+n02428508
+n02980036
+n12061380
+n01887787
+n04214046
+n01787835
+n00466630
+n02979290
+n03927091
+n03231368
+n03904657
+n04469003
+n04196502
+n02122948
+n04544325
+n07868340
+n13876561
+n11925898
+n12158443
+n01595450
+n12454705
+n02069412
+n09618957
+n02357111
+n00451563
+n04197110
+n02276902
+n03111296
+n03909020
+n12303083
+n02082791
+n01956764
+n04269822
+n04207343
+n02433318
+n01888181
+n12682668
+n01592387
+n09793141
+n00466273
+n04026180
+n06255081
+n12172364
+n10145590
+n12311579
+n12173912
+n03822171
+n03140292
+n03027625
+n02739427
+n02060133
+n02431785
+n03219010
+n00447957
+n11910271
+n03620967
+n12547215
+n02409508
+n04290079
+n12329260
+n13901858
+n02008497
+n10304914
+n04524142
+n04279462
+n04233124
+n09733793
+n12822115
+n09475179
+n10151760
+n03418618
+n12858397
+n07735510
+n03549473
+n10098245
+n03653583
+n10604380
+n03375575
+n03885293
+n01527347
+n03237340
+n02760658
+n11953038
+n03187268
+n03004275
+n02393161
+n11965218
+n08580944
+n03938725
+n03900979
+n04144241
+n03760310
+n02376679
+n03237992
+n09432283
+n02379908
+n09918554
+n04041747
+n12012111
+n10331167
+n01612122
+n10147935
+n07691539
+n11669786
+n09403427
+n01935395
+n09903501
+n04439585
+n04459018
+n02780704
+n03720163
+n12899752
+n04118635
+n03404149
+n02429456
+n00449168
+n04516354
+n04317833
+n12075299
+n07878647
+n09438940
+n03361550
+n02027357
+n04317976
+n03092883
+n04526964
+n03985069
+n03610682
+n04028581
+n02277268
+n09433839
+n03846431
+n03919289
+n10146104
+n10260706
+n02686227
+n03321103
+n00444846
+n01558307
+n01595168
+n03919096
+n11844892
+n04260364
+n02750070
+n03034244
+n03002096
+n04273972
+n11814584
+n04605321
+n07745466
+n02922798
+n03361380
+n12651229
+n08521623
+n04498389
+n00453313
+n04967882
+n12024690
+n03934656
+n02685082
+n04501550
+n09972458
+n03055418
+n07763629
+n03902756
+n09938449
+n09712696
+n02387346
+n03133415
+n07711080
+n03129753
+n03524150
+n02275560
+n03993053
+n03438661
+n11939180
+n00466524
+n11753355
+n03456024
+n03421324
+n07890540
+n11720643
+n02057035
+n00453126
+n04453037
+n01540832
+n03546235
+n03370387
+n02041875
+n02871439
+n03262072
+n01786646
+n02430830
+n02799175
+n05262422
+n03854722
+n12817694
+n04449966
+n01564773
+n02034971
+n03490119
+n02822579
+n07879953
+n04110178
+n04963588
+n04252653
+n01565078
+n02389128
+n02779435
+n10645017
+n04582205
+n08573842
+n10146002
+n03892178
+n03119396
+n03813078
+n07866868
+n03160740
+n03371875
+n02417387
+n03904782
+n03098688
+n02902687
+n01828556
+n04401680
+n04590933
+n01575401
+n07693048
+n02901114
+n03047941
+n04355511
+n11849871
+n10738111
+n03122073
+n12052787
+n01594004
+n01549886
+n02824058
+n03506184
+n11487732
+n12574866
+n12948053
+n10091450
+n00470554
+n00326094
+n12093329
+n04438897
+n07818995
+n12828791
+n13901321
+n10613996
+n10159533
+n02669295
+n02843158
+n06415688
+n14858292
+n09813219
+n12485653
+n03200231
+n02089468
+n03935234
+n01539925
+n12428076
+n10439373
+n01536644
+n02694662
+n02123242
+n03002711
+n03363749
+n02669534
+n03451798
+n11927215
+n02679257
+n09475925
+n10015485
+n12422129
+n03946162
+n02377291
+n07871720
+n12622297
+n12782915
+n01579260
+n11838916
+n10267311
+n12824053
+n03340723
+n02276749
+n04439712
+n02126139
+n04188179
+n02386853
+n07942152
+n02499316
+n04324387
+n10635788
+n04234887
+n12237641
+n03713436
+n04960582
+n04076713
+n01646292
+n03947798
+n02840134
+n04476972
+n09822830
+n03551395
+n04533802
+n02918964
+n00474657
+n12932966
+n01615458
+n01806364
+n12458550
+n11784497
+n03557360
+n10638922
+n09889941
+n10689306
+n03358172
+n04295571
+n06596607
+n11853356
+n00482122
+n11760785
+n03150232
+n11778257
+n03059685
+n10105733
+n04104384
+n07691237
+n04326676
+n07684938
+n12666965
+n04177820
+n13918387
+n03398153
+n03914438
+n09932098
+n02988486
+n02977619
+n03317788
+n03484487
+n02988679
+n04062428
+n02568087
+n12866162
+n04227144
+n07875436
+n04082886
+n11753700
+n00470682
+n02122298
+n10145239
+n12755727
+n04214282
+n01852671
+n02378969
+n04108822
+n10382825
+n12392549
+n03973839
+n12258885
+n11782761
+n12389501
+n02940570
+n03405595
+n02969323
+n03207630
+n10169147
+n03805725
+n09847543
+n02415253
+n07880080
+n04305572
+n02042180
+n07565161
+n02871147
+n04438507
+n04445154
+n07842433
+n12029635
+n09750282
+n09621232
+n01858906
+n02761206
+n03986355
+n12591351
+n13916721
+n02905036
+n11894770
+n02377603
+n12924623
+n03950899
+n09454153
+n10247358
+n05261310
+n11943660
+n10804287
+n03560430
+n01756089
+n10618342
+n04283378
+n13926786
+n04238321
+n04393549
+n04461879
+n03502200
+n00440941
+n03494706
+n04148579
+n13902336
+n02780815
+n10726031
+n04124098
+n12344483
+n04384910
+n07681450
+n02030837
+n04059157
+n09247410
+n02714751
+n08633683
+n04520784
+n10141732
+n12371439
+n04499062
+n02931148
+n07609632
+n04536335
+n02874537
+n03013438
+n11786539
+n11690455
+n07600696
+n00478262
+n00466712
+n03399677
+n12441183
+n07895962
+n11966083
+n02990373
+n04241249
+n02068541
+n12513933
+n02356977
+n04252560
+n04087826
+n03455488
+n07619409
+n09787534
+n03680942
+n00446980
+n12384839
+n03416900
+n07821758
+n11853813
+n01606522
+n11780148
+n04969242
+n12413880
+n04130257
+n01322604
+n03061211
+n01959492
+n02842573
+n04313628
+n03815149
+n02445394
+n08547544
+n03222176
+n04070003
+n03075768
+n09695979
+n02877266
+n08583292
+n02870676
+n03657511
+n01621635
+n04284341
+n04136161
+n02836174
+n10247880
+n01744100
+n02882894
+n03408444
+n03411079
+n02366959
+n04399158
+n04542715
+n02787435
+n04251701
+n13863020
+n07890226
+n12245319
+n12849952
+n11626826
+n00887544
+n03140431
+n03519387
+n03855604
+n07906111
+n02054036
+n11954161
+n03038281
+n00450998
+n12136392
+n02119477
+n04356925
+n02406647
+n04450133
+n12545635
+n01565599
+n02028900
+n07817024
+n02971167
+n04309049
+n02678897
+n12795555
+n11769803
+n01904886
+n02079851
+n12189987
+n04581829
+n12098403
+n01839330
+n12587803
+n03652932
+n08628141
+n03544238
+n04513827
+n01847806
+n03132076
+n10243137
+n03621377
+n10530959
+n14765422
+n04968139
+n12950314
+n02064816
+n02846511
+n10513823
+n11772408
+n03341297
+n03492922
+n03683606
+n02894337
+n02365480
+n09846755
+n03495039
+n01317813
+n12610328
+n02157206
+n01588002
+n03914831
+n03659686
+n10406765
+n09205509
+n02870526
+n07954211
+n10578471
+n11646694
+n03115762
+n07762913
+n12056758
+n12305986
+n11845913
+n02835915
+n02831237
+n07927512
+n12171098
+n02073831
+n07605040
+n02885462
+n02768114
+n04450994
+n11844371
+n03963645
+n02956699
+n02029378
+n01528396
+n10005934
+n04465666
+n04390977
+n11882074
+n03831382
+n04605163
+n06276501
+n02944075
+n05258051
+n07901457
+n12683571
+n02205219
+n13235503
+n02388735
+n03941231
+n14919819
+n12816508
+n11536673
+n13895262
+n02903204
+n10137825
+n07841345
+n07893253
+n01850192
+n07769731
+n11773987
+n03539678
+n12938193
+n10802507
+n03089879
+n00477392
+n01828096
+n09263912
+n13653902
+n04579667
+n01322983
+n08579352
+n07587023
+n07756951
+n07870167
+n10588357
+n01606809
+n13864035
+n02802544
+n07591961
+n02979399
+n04144539
+n02416820
+n11769176
+n09743792
+n09732170
+n04972451
+n13918274
+n01847089
+n01859689
+n04208065
+n07617051
+n10674713
+n07914271
+n07887461
+n03736064
+n03644858
+n03878963
+n04040247
+n07891433
+n01611969
+n07587618
+n02689144
+n10049363
+n04059516
+n10313239
+n03115400
+n01519563
+n01533893
+n03850245
+n11733548
+n03372549
+n01884834
+n02839110
+n07887192
+n03617312
+n07886463
+n03103396
+n07764847
+n01855476
+n07808587
+n12858871
+n03632729
+n10209731
+n04141712
+n03978686
+n03225988
+n00475273
+n09224725
+n04966543
+n01322221
+n03649674
+n13154494
+n03948830
+n03320519
+n03723267
+n07869611
+n12342498
+n01827793
+n03145719
+n11821184
+n11956348
+n11857875
+n10339717
+n09450163
+n10756148
+n01591301
+n07915094
+n04422727
+n09719309
+n03349469
+n03389889
+n10718131
+n04298661
+n09747495
+n03676623
+n03547229
+n03062015
+n10734394
+n07817315
+n02852360
+n01850553
+n02952585
+n03587205
+n02009750
+n01540090
+n02947660
+n03656957
+n03378174
+n02508213
+n01572489
+n12008487
+n12185859
+n11691046
+n01323355
+n05262534
+n00448126
+n02432983
+n12038406
+n03883385
+n02411206
+n01643896
+n10159045
+n11675025
+n01803362
+n02009508
+n07920349
+n04098513
+n11617272
+n09913455
+n12390314
+n04171208
+n02995345
+n10634849
+n03173929
+n02749953
+n11845793
+n12796022
+n11955153
+n11816829
+n03032453
+n11984542
+n02992795
+n03712111
+n02873733
+n02759387
+n14915184
+n02381364
+n12686274
+n07857731
+n04518764
+n03010473
+n02418465
+n02359556
+n07894799
+n04104770
+n04335209
+n01848976
+n02006063
+n04454908
+n03002948
+n04220250
+n09923561
+n04102162
+n11958080
+n04598965
+n10173410
+n03067339
+n02003204
+n12686676
+n11986511
+n02311617
+n03367059
+n02761557
+n05578095
+n04041069
+n10575463
+n03325941
+n10082043
+n01806297
+n09691729
+n04593866
+n01813088
+n01625562
+n03906224
+n01652026
+n10236304
+n04102618
+n04321453
+n07820145
+n01575117
+n12788854
+n07823698
+n04206225
+n03216710
+n02421449
+n03343737
+n07560903
+n02872529
+n11989869
+n12071744
+n06278475
+n04492749
+n02920259
+n03798061
+n02420509
+n03316105
+n12052447
+n03974915
+n02904803
+n03430418
+n12291959
+n06892775
+n03875806
+n07903841
+n10282482
+n02683323
+n07862348
+n01849157
+n04469813
+n09944022
+n03342127
+n07592481
+n02936402
+n02405929
+n10002760
+n02537716
+n05259914
+n01560280
+n12694486
+n07879350
+n02377063
+n03637181
+n03409297
+n01607812
+n02808185
+n09239302
+n12055516
+n09712448
+n02859184
+n12772908
+n02735538
+n10333838
+n12336092
+n02386968
+n04613939
+n00452864
+n04535524
+n03174731
+n04189816
+n07607605
+n12909917
+n02387722
+n02960690
+n07715221
+n02407071
+n10667477
+n09398076
+n04236809
+n01904806
+n01610552
+n12373100
+n12771390
+n04122685
+n07804771
+n15102455
+n03469175
+n03746005
+n02536456
+n03505667
+n11816336
+n09376198
+n10572706
+n03464053
+n02869155
+n07816164
+n04969798
+n02942349
+n14820180
+n01623615
+n12676703
+n03369276
+n03650551
+n02010272
+n02976123
+n01852400
+n02196119
+n04132158
+n03238586
+n07639069
+n03313333
+n10542761
+n12215022
+n00455173
+n10019406
+n12899537
+n04277826
+n09906449
+n04549629
+n11508382
+n15090065
+n10289462
+n04540255
+n02723165
+n04335693
+n01536334
+n03107488
+n12782530
+n14785065
+n02974348
+n09874862
+n04479939
+n03309465
+n09902954
+n12092417
+n03425595
+n12433081
+n07806774
+n12462805
+n01314781
+n10192839
+n01622120
+n07807171
+n03261019
+n02843553
+n04287747
+n02324587
+n09915434
+n01818299
+n01592694
+n03826186
+n03607659
+n01527917
+n03628511
+n02005399
+n04204081
+n02052775
+n04403413
+n03914106
+n12811027
+n01872772
+n04555700
+n02004855
+n04602762
+n02713003
+n04406817
+n11934807
+n03336282
+n09684901
+n03836976
+n11959862
+n03062336
+n03506028
+n04503413
+n07819896
+n03205669
+n11902200
+n07685218
+n03046133
+n10261624
+n10303814
+n03676087
+n04023695
+n07587111
+n07764155
+n01504179
+n03794136
+n03389761
+n13901211
+n02784124
+n04488530
+n02807731
+n07898443
+n04981658
+n04177755
+n03649161
+n04125257
+n10135129
+n03653110
+n10560106
+n07735687
+n03511333
+n11960245
+n03301568
+n03878066
+n10746931
+n04223299
+n04237423
+n07888229
+n01819734
+n12312728
+n09981939
+n03727465
+n13882276
+n02993194
+n11971927
+n09713108
+n03581125
+n09718936
+n14698884
+n03005285
+n03540914
+n03359436
+n03934042
+n07569644
+n04964878
+n07890068
+n07580253
+n01538630
+n03132666
+n03259009
+n02796318
+n12703190
+n01464844
+n11792029
+n04270371
+n13102775
+n02933649
+n02387254
+n02890188
+n04335886
+n04358491
+n02786837
+n03885194
+n04001265
+n03438071
+n10375402
+n02997910
+n03326795
+n00470830
+n02734725
+n03494537
+n08376250
+n07743544
+n02991847
+n04246271
+n04156140
+n04381073
+n07732168
+n04951071
+n07977870
+n04334599
+n02838728
+n03326948
+n11723227
+n08182379
+n03686924
+n03821518
+n02382204
+n02080415
+n11788727
+n07732636
+n03860404
+n03898395
+n07867324
+n04392113
+n13237188
+n03263076
+n07843636
+n04968056
+n04397027
+n03320421
+n06267564
+n02880842
+n04115456
+n13862407
+n10289039
+n03128248
+n01457852
+n01536035
+n04579056
+n03937931
+n03036022
+n01804163
+n09913593
+n12841007
+n03115897
+n03256032
+n02475669
+n07924443
+n03061505
+n10001481
+n03600722
+n07842308
+n10696508
+n04215402
+n10588074
+n03614782
+n03995535
+n12091953
+n04113194
+n10092978
+n03011741
+n04381860
+n07819769
+n07905474
+n03288500
+n04225987
+n13223710
+n02879087
+n02920083
+n08640739
+n03362890
+n03996849
+n03849814
+n09694664
+n02407390
+n02910864
+n02388917
+n01668665
+n07616046
+n02932891
+n10553235
+n03652729
+n01615703
+n12801781
+n12164656
+n05302499
+n03801760
+n03332271
+n02901793
+n03941417
+n09833441
+n01623110
+n02807523
+n10598181
+n03725600
+n10368528
+n04116098
+n12719944
+n02045864
+n02173373
+n02811059
+n04479823
+n07816398
+n10572889
+n04142731
+n07687381
+n02799323
+n07865484
+n01858845
+n12684379
+n01842235
+n09242389
+n02028727
+n03527565
+n03438863
+n15019030
+n13907272
+n09659039
+n04251791
+n03683995
+n04137217
+n04389430
+n09785659
+n02016816
+n03124590
+n01859325
+n03138669
+n02999936
+n11926365
+n12686077
+n03517760
+n09734450
+n04563413
+n12074867
+n01564217
+n12521394
+n06267893
+n03594148
+n04139395
+n12369309
+n01544389
+n12048056
+n04524941
+n03016868
+n03653740
+n02795528
+n03687137
+n03766935
+n03361297
+n04263502
+n10043491
+n03446268
+n01994910
+n03891538
+n10091564
+n10226413
+n02755140
+n03500389
+n10237196
+n03625646
+n06596474
+n03360300
+n09730824
+n10732010
+n04469514
+n02904927
+n04961331
+n02936570
+n03680858
+n07585758
+n09199101
+n04050933
+n03712337
+n03911513
+n01556182
+n03102371
+n07928887
+n12133462
+n03974070
+n03971218
+n03292475
+n03425241
+n03440216
+n11995092
+n02894158
+n02918112
+n10568358
+n11524451
+n03169176
+n04100519
+n07588193
+n06883725
+n02860640
+n07762114
+n04082710
+n07896893
+n10167152
+n03287351
+n02788021
+n08494231
+n01560935
+n03249342
+n04564581
+n09349648
+n07704205
+n03510244
+n12127460
+n09945745
+n11719286
+n11613459
+n12656369
+n03824381
+n07655263
+n09894143
+n04964001
+n02161457
+n07654298
+n07930433
+n02979074
+n02026948
+n13914608
+n07611267
+n02843276
+n09827363
+n10259780
+n04432662
+n11715678
+n12388858
+n03057920
+n10465451
+n03855214
+n07728181
+n09835348
+n03549732
+n04589325
+n03491032
+n00452034
+n03948242
+n01456756
+n07921615
+n02809105
+n12889713
+n07586894
+n07734879
+n07905979
+n12847374
+n12129134
+n02122580
+n04028074
+n02911332
+n09251407
+n07697825
+n04597309
+n02800213
+n03480579
+n07621618
+n04170933
+n03743279
+n01916481
+n04037220
+n10748620
+n02708433
+n12007196
+n02561381
+n04103769
+n03030880
+n04413969
+n03911658
+n04590746
+n00476389
+n04331639
+n07725789
+n01792429
+n02949542
+n07686720
+n04064862
+n04447028
+n01713764
+n09854218
+n04032603
+n04405907
+n15093298
+n04385536
+n11954345
+n01560793
+n09249034
+n03784270
+n03436549
+n01324610
+n02379183
+n07616487
+n04119478
+n03309356
+n12865037
+n12850168
+n04250850
+n03024064
+n04412097
+n02982515
+n00450070
+n10175248
+n11847169
+n12276872
+n12870891
+n10229883
+n10505613
+n03482252
+n09300905
+n02919890
+n07617611
+n10283170
+n01607962
+n01671125
+n07894551
+n04561287
+n00005787
+n10025635
+n02850732
+n03732020
+n02036711
+n07907429
+n03797896
+n03004824
+n12011620
+n10300303
+n03105467
+n03767745
+n07868508
+n07868200
+n03788047
+n07886057
+n04559451
+n09845401
+n04373704
+n02676938
+n02565324
+n02667478
+n02122878
+n03244047
+n01747589
+n04320973
+n13205058
+n02379430
+n11959632
+n10183931
+n07683490
+n10055410
+n04370288
+n03273551
+n13900422
+n07899434
+n04053677
+n07740461
+n11879722
+n04282494
+n02981911
+n03449451
+n07581249
+n03965456
+n11808468
+n13881644
+n11725973
+n12091213
+n13193856
+n02873520
+n02754656
+n02431976
+n01324431
+n02385214
+n01888411
+n12680864
+n07731284
+n04337287
+n07631926
+n02549248
+n04395024
+n07585557
+n02776825
+n09460046
+n12023108
+n00475403
+n10098517
+n07902336
+n03683708
+n02412210
+n04397452
+n04583212
+n13869547
+n03632577
+n01616086
+n02763901
+n08256735
+n03015478
+n02084732
+n12178896
+n11966215
+n07605380
+n13869788
+n01847170
+n07744811
+n01854700
+n00444937
+n10422405
+n07801892
+n09688804
+n11879054
+n02802215
+n07908411
+n07822518
+n01558594
+n07935737
+n10730728
+n04436329
+n04294879
+n04972350
+n12911440
+n13886260
+n07578093
+n02537525
+n03703730
+n09607630
+n13865904
+n02360282
+n11731659
+n04126066
+n04212165
+n11618290
+n07588574
+n09269472
+n11896722
+n02892304
+n03487642
+n02028342
+n03321563
+n03135030
+n03522100
+n03253886
+n04095109
+n06470073
+n12603449
+n10644598
+n10260800
+n01535469
+n09696456
+n03553019
+n03963198
+n11918473
+n10314517
+n03002341
+n07574923
+n10421470
+n05716342
+n03244231
+n01730563
+n11691857
+n12807251
+n12345899
+n03142679
+n01531512
+n12307240
+n07835457
+n04535370
+n00451186
+n12481458
+n03434188
+n09734185
+n04578934
+n04167346
+n02747802
+n03459328
+n03301940
+n01562014
+n07690431
+n10642596
+n03696065
+n12781940
+n02759257
+n04392764
+n04218564
+n03499907
+n01536780
+n09751895
+n03235042
+n04570815
+n12070381
+n09448690
+n07625061
+n10178216
+n04560113
+n09457979
+n03858085
+n02421792
+n02944579
+n10085869
+n09718811
+n04103206
+n04239786
+n04501947
+n01321123
+n02390015
+n03964495
+n01554448
+n02925107
+n03028596
+n12483625
+n03227317
+n10701644
+n11968704
+n03900393
+n01851038
+n02276078
+n03132776
+n07585906
+n04480033
+n07880458
+n12887293
+n07921239
+n03307037
+n04595028
+n04244379
+n13131028
+n10313724
+n09436708
+n02694045
+n09941787
+n00449796
+n01817346
+n07928696
+n03401279
+n12901724
+n11646167
+n07682477
+n09415671
+n07900225
+n03607029
+n02692232
+n11834654
+n07935379
+n12437930
+n03762434
+n07922764
+n03595523
+n04546340
+n10686885
+n03516844
+n03767112
+n09896685
+n03859608
+n03149686
+n07920872
+n12388143
+n10406391
+n04233715
+n04373089
+n02023992
+n01947396
+n12115180
+n00479616
+n03962852
+n02392434
+n12414035
+n14976871
+n03201776
+n10665587
+n03600285
+n04402449
+n08539072
+n03629231
+n12860365
+n03488438
+n03337383
+n12455950
+n10384392
+n02953455
+n03101796
+n07919572
+n03233744
+n01578180
+n01756508
+n04556533
+n02962843
+n02882190
+n03731483
+n01850873
+n05260240
+n03111177
+n09836519
+n03030557
+n11789066
+n02788572
+n07903101
+n04067818
+n07840804
+n01567678
+n12427184
+n03333610
+n02416964
+n10607291
+n07936548
+n05451384
+n02968074
+n07605597
+n02704949
+n07609215
+n01951274
+n07696977
+n03180384
+n04303357
+n03291741
+n02207805
+n10123844
+n03420345
+n12384227
+n02758863
+n02047975
+n03978966
+n03549199
+n04275175
+n09294877
+n09836343
+n11970586
+n02010728
+n10369317
+n12681893
+n03192543
+n12413165
+n12174521
+n11916696
+n10042845
+n07822197
+n04968749
+n10323634
+n12849416
+n02814774
+n05538625
+n03078802
+n12230794
+n07726095
+n03051249
+n12005656
+n11876432
+n12164881
+n09711435
+n01622483
+n09896170
+n07684289
+n03368352
+n07910048
+n03159535
+n00466377
+n01541386
+n11647703
+n09752023
+n07903731
+n12249542
+n03794798
+n11786131
+n02852043
+n10493685
+n09846894
+n01752585
+n01536186
+n07618432
+n09859152
+n02065026
+n02382635
+n07867616
+n03885788
+n04255586
+n03275681
+n11961100
+n12485981
+n04495698
+n03293741
+n13902048
+n03254862
+n07903962
+n01594787
+n11962272
+n03284886
+n07842202
+n10157128
+n02405302
+n04443766
+n06266633
+n02519862
+n01487506
+n03373943
+n04247876
+n04327204
+n03349771
+n09260907
+n10092794
+n12223764
+n03504723
+n11926833
+n01820052
+n13032381
+n03889871
+n03209359
+n04608923
+n15093137
+n15091304
+n03688405
+n09905185
+n03543112
+n11611356
+n03885028
+n03234164
+n07594066
+n02396014
+n03456186
+n09874725
+n11601333
+n02917521
+n03055857
+n02804123
+n12352844
+n12866002
+n09858165
+n12037691
+n02565072
+n04477387
+n02008643
+n07867021
+n04119360
+n09893191
+n02944146
+n12435649
+n13197274
+n04974859
+n07751004
+n12003696
+n02762508
+n02680512
+n01743086
+n06998748
+n10607478
+n07613815
+n01559477
+n01859852
+n03239054
+n04466871
+n05263183
+n13173882
+n07897438
+n12427757
+n04400737
+n03291963
+n07682808
+n11692265
+n04130143
+n09445289
+n07696839
+n03835197
+n12821895
+n09734639
+n03365374
+n04305210
+n04962240
+n09871867
+n07897750
+n07616386
+n09443281
+n03641569
+n13882563
+n07680761
+n10498816
+n04034262
+n03533014
+n07928790
+n07690152
+n10060352
+n04124370
+n12453186
+n04509171
+n03013580
+n10604979
+n12515711
+n04971211
+n07693223
+n03786715
+n07894703
+n02761834
+n04232800
+n03437741
+n04045644
+n14976759
+n03042697
+n12557681
+n06275095
+n11678010
+n01586941
+n07684517
+n07822845
+n03483823
+n09951616
+n03180865
+n07861557
+n03644378
+n12848499
+n11962667
+n03886762
+n04238128
+n11979964
+n13915113
+n12791329
+n12457091
+n03341153
+n10267865
+n03484576
+n10186216
+n07612137
+n03843438
+n11807525
+n11931540
+n02027897
+n07614730
+n04116294
+n03469903
+n10017272
+n03688605
+n07860103
+n03981566
+n01888045
+n03345837
+n11998888
+n02071636
+n02726017
+n04310157
+n04607869
+n01622959
+n08524735
+n03119203
+n12031927
+n03610524
+n02807616
+n04056180
+n03233905
+n03374473
+n14810561
+n11944954
+n03121431
+n09750891
+n08505018
+n10727171
+n12357485
+n12571781
+n12067193
+n07586604
+n02086753
+n03548086
+n02560110
+n07804900
+n02880393
+n04208427
+n12931542
+n01594968
+n05218119
+n03520493
+n03727605
+n12687698
+n03612965
+n04135315
+n07730320
+n10540114
+n07599911
+n01323493
+n02115096
+n04590263
+n12043836
+n02861387
+n09836786
+n04966941
+n02816768
+n13131618
+n10701962
+n02919792
+n03442597
+n04325041
+n03333129
+n04091693
+n04950952
+n10631309
+n04177931
+n13234678
+n01970667
+n07748416
+n07893642
+n07691650
+n03660909
+n04145863
+n11945514
+n10334009
+n12336973
+n03954393
+n04558478
+n09899929
+n03487533
+n07816575
+n07877187
+n07863547
+n01603812
+n02098906
+n04973585
+n03674440
+n04371050
+n12243109
+n07871234
+n02928049
+n07574504
+n07889274
+n12141167
+n04543996
+n03080633
+n03423479
+n07879659
+n04380916
+n10514429
+n07584423
+n04009801
+n12479537
+n07606538
+n07698543
+n12353754
+n10132035
+n03367545
+n04245508
+n09811852
+n02024763
+n04052442
+n10120330
+n12352639
+n12606438
+n07752966
+n09772930
+n02535759
+n11737534
+n10345015
+n12427566
+n09705784
+n04112654
+n02985963
+n03758089
+n12953484
+n07906572
+n02881757
+n12739332
+n03718458
+n03407865
+n07775050
+n03210552
+n09452395
+n09789566
+n10566072
+n10559996
+n07826930
+n12414932
+n01887474
+n03026907
+n07751148
+n10223177
+n03957420
+n03788601
+n12244819
+n12421137
+n04266162
+n10038409
+n02981024
+n03228967
+n11825351
+n12058822
+n11963932
+n03041449
+n03046029
+n07590502
+n02932523
+n02152881
+n04970398
+n07887967
+n12812478
+n12421917
+n02708711
+n11870747
+n04290507
+n07934282
+n01608265
+n12070583
+n03205574
+n02305085
+n07866015
+n02960903
+n10098624
+n00481803
+n07938007
+n02693246
+n03923379
+n04103665
+n11792742
+n12489815
+n04971313
+n01668892
+n01055165
+n03215508
+n12104501
+n07899292
+n12822955
+n07713074
+n03842012
+n02449350
+n07868955
+n02835829
+n12283542
+n04525584
+n07910656
+n11625003
+n03987266
+n02805983
+n15091846
+n09736945
+n04973816
+n02439398
+n01519873
+n07899003
+n03019938
+n07582152
+n01885498
+n12108871
+n02934451
+n04327682
+n07696625
+n09750770
+n12084890
+n03960374
+n07585107
+n01570839
+n11905392
+n06277135
+n07842044
+n03751269
+n04398951
+n12861892
+n12649539
+n07596967
+n07580592
+n12845413
+n07690739
+n07804657
+n04334105
+n03779128
+n03268918
+n03066359
+n02744323
+n12596148
+n04272389
+n07832416
+n10210911
+n01548865
+n03221351
+n15091669
+n07878926
+n07607967
+n12171966
+n02846141
+n07576781
+n02922292
+n10092643
+n01732614
+n02578771
+n02864593
+n03537241
+n09635534
+n03268645
+n07852833
+n13873917
+n12640839
+n03506727
+n10536416
+n09976429
+n10692482
+n07600285
+n04156946
+n07818689
+n02605703
+n02710429
+n02890351
+n03408054
+n03121298
+n02731629
+n12450840
+n04061681
+n10153414
+n07648913
+n07891309
+n01562265
+n14973585
+n01610226
+n06267991
+n03302938
+n07822323
+n07826091
+n02764398
+n10406266
+n09282208
+n01734104
+n04283096
+n03530910
+n11542137
+n02610664
+n03856012
+n01531811
+n07862611
+n11625632
+n12643313
+n02469248
+n03333711
+n02907082
+n02122430
+n01559804
+n09744161
+n10187990
+n12015525
+n07844867
+n07887304
+n02878425
+n02009380
+n11448153
+n10655594
+n12566954
+n11901977
+n03999160
+n02389779
+n07928488
+n12785889
+n04281375
+n03745146
+n03224603
+n04594828
+n12835331
+n09715427
+n11615026
+n09972010
+n04038231
+n02379329
+n03445326
+n10753442
+n04249882
+n11727738
+n07866723
+n04282992
+n11621281
+n01566645
+n03919430
+n11980682
+n03480719
+n11625804
+n10467395
+n09436444
+n07867751
+n03684611
+n03788498
+n12062626
+n07808904
+n07690585
+n03865557
+n10711766
+n10465831
+n04380255
+n12166128
+n04432203
+n07892418
+n10432441
+n12991184
+n04209613
+n04459773
+n09666883
+n07807472
+n09873899
+n12939874
+n04545748
+n09637339
+n07919441
+n03987376
+n03645577
+n03437430
+n10671613
+n02964843
+n09707289
+n11700058
+n03877351
+n03518445
+n07643200
+n02140049
+n12683791
+n12418221
+n04154152
+n03397947
+n03238131
+n11851839
+n04545858
+n07744682
+n02995871
+n07593199
+n03543394
+n10293332
+n12658481
+n11599324
+n02705201
+n03920867
+n08249459
+n02876084
+n03937835
+n01397871
+n03849679
+n12016567
+n04208936
+n07696728
+n13148208
+n01904029
+n08659861
+n07878785
+n07827130
+n03390983
+n02624807
+n03319745
+n03994614
+n00446493
+n12477583
+n02920658
+n04602956
+n02688273
+n07577538
+n04350581
+n09283405
+n04074185
+n04495843
+n03538179
+n03454885
+n03878211
+n10308168
+n08518171
+n02660208
+n07904760
+n07928367
+n10174445
+n02137015
+n02863426
+n07700003
+n04015908
+n03946076
+n11725821
+n01794344
+n04364160
+n01663782
+n04283255
+n02822064
+n04406239
+n02782681
+n11990313
+n03563460
+n02957008
+n07889814
+n07896060
+n03683079
+n04278447
+n13011595
+n11810358
+n03836451
+n12827537
+n03545470
+n03213538
+n07929351
+n03471190
+n02882301
+n03625943
+n03397087
+n11955896
+n04097373
+n03145522
+n03034405
+n02889646
+n02928299
+n09652149
+n01641391
+n04593524
+n07651025
+n03719343
+n03884778
+n03452594
+n02174659
+n12345280
+n03039827
+n03309687
+n11635433
+n02057330
+n01664990
+n09779790
+n02011016
+n09689958
+n07770763
+n03010915
+n03443912
+n02946509
+n13050397
+n03031012
+n04217546
+n04124202
+n12766869
+n04177041
+n12050533
+n03251932
+n03086580
+n03918737
+n04386792
+n03176594
+n01577035
+n01669654
+n01818832
+n10441962
+n03885904
+n03724756
+n02925666
+n03549589
+n03062122
+n02828427
+n12604228
+n03624400
+n07725888
+n03873699
+n01503976
+n02887079
+n03610098
+n02940385
+n04610013
+n03652100
+n04496872
+n04008385
+n02583890
+n10476467
+n03395514
+n03306385
+n04228581
+n02389261
+n12576323
+n01579149
+n01623425
+n02593019
+n03995265
+n02124484
+n12745386
+n04355267
+n02643836
+n01614343
+n03810952
+n04058594
+n12278650
+n03474779
+n02823510
+n00442437
+n12039317
+n04574067
+n03762602
+n02153109
+n03518943
+n04289827
+n02288268
+n07749969
+n04132985
+n03213826
+n04307986
+n03567066
+n02049088
+n04408871
+n03522003
+n09305898
+n04266375
+n08571898
+n03039259
+n01587526
+n03261603
+n00464277
+n02627532
+n02992368
+n03640850
+n03037404
+n04525191
+n02106854
+n07772147
+n04173511
+n12761284
+n03257210
+n02813544
+n07740342
+n04066270
+n03070059
+n03616428
+n02904233
+n03209910
+n04389854
+n03078995
+n03193260
+n01488038
+n01754533
+n12629305
+n02055107
+n11664418
+n04228693
+n03353951
+n03440682
+n03025250
+n03300216
+n02042046
+n04226826
+n03342015
+n03090000
+n02050313
+n03492250
+n01535690
+n01572654
+n03465718
+n02879309
+n06278338
+n04113406
+n03695857
+n09720256
+n01860002
+n02851939
+n09828216
+n02564270
+n03528901
+n02542432
+n11978961
+n01670802
+n03956623
+n01612275
+n09376786
+n03222318
+n02813645
+n02213543
+n13898207
+n03616763
+n03616979
+n11904109
+n04212282
+n04608435
+n02042472
+n04198453
+n03216402
+n02015357
+n12282737
+n02699629
+n12866635
+n02048353
+n02933340
+n01793715
+n12001707
+n02878222
+n03187037
+n03105306
+n04080705
+n04254009
+n01623880
+n02839592
+n03436182
+n01591123
+n01318279
+n03002816
+n13155095
+n03141702
+n03775388
+n12165170
+n03322836
+n03259401
+n04471148
+n03911767
+n12585629
+n04317325
+n04257986
+n03133050
+n02035210
+n12891305
+n11882426
+n04491388
+n12948251
+n03498781
+n04262161
+n03775636
+n09915651
+n07584332
+n07852614
+n11626152
+n03901750
+n09723067
+n04265904
+n09920283
+n02397744
+n03253796
+n07712959
+n03898129
+n01743936
+n02075612
+n04560292
+n03479397
+n04334365
+n04357121
+n10145902
+n03844673
+n09854421
+n12687957
+n12598027
+n03944138
+n01839750
+n07722888
+n04258859
+n03088389
+n03351434
+n03509608
+n01677747
+n03145147
+n12046815
+n03505133
+n01629962
+n03333252
+n03993703
+n02962061
+n04529962
+n03463666
+n07681691
+n12160857
+n04187233
+n09331251
+n11614713
+n04376400
+n12301445
+n12633994
+n03883524
+n11614420
+n13062421
+n03645011
+n03293863
+n11640132
+n02579928
+n02854739
+n04461437
+n07729384
+n02977936
+n02836392
+n03593122
+n01666228
+n07820683
+n07568502
+n11910460
+n09348460
+n09712324
+n02403740
+n03482877
+n04370774
+n07750146
+n12992177
+n03152303
+n04134008
+n09805324
+n01611800
+n04374315
+n07586099
+n02032222
+n01979874
+n04350769
+n02907873
+n03016609
+n02543565
+n03256166
+n03016737
+n02419336
+n03268790
+n03559999
+n07765999
+n04607035
+n02416104
+n02123917
+n12484784
+n03225108
+n10739391
+n03506880
+n02918831
+n03045228
+n12516828
+n01314663
+n04172342
+n02768226
+n12368028
+n01500476
+n01558149
+n03604156
+n04035912
+n02359915
+n12261571
+n03875955
+n01887623
+n03871371
+n03390786
+n12494794
+n03826039
+n04465358
+n03838298
+n03165466
+n04229737
+n01321770
+n04354026
+n02998003
+n04114844
+n10611613
+n03600475
+n01909906
+n00466880
+n04284869
+n07722485
+n04496614
+n03298716
+n02285801
+n04081699
+n07765208
+n12659539
+n11618525
+n11757653
+n07727048
+n03913343
+n12070016
+n02697675
+n04284572
+n02595702
+n04482297
+n03516996
+n03704549
+n02040266
+n04476116
+n01323261
+n03823216
+n07696403
+n03226880
+n09734535
+n03950537
+n01671479
+n03049924
+n12593994
+n04568841
+n03604400
+n01837072
+n01754370
+n03122202
+n12338454
+n04094720
+n04150980
+n03429682
+n03884926
+n03378005
+n02434954
+n03461288
+n02893692
+n04472563
+n10472129
+n04590021
+n07739344
+n04162433
+n03395859
+n12059314
+n03498662
+n03678729
+n02927764
+n02770211
+n11710393
+n07730207
+n04178190
+n07772935
+n03801880
+n04414675
+n12729521
+n12203529
+n04122578
+n04575824
+n06267655
+n03698360
+n02804515
+n02431337
+n08598568
+n02893608
+n02270623
+n00479440
+n11616662
+n02884994
+n04305323
+n02407625
+n04476831
+n04222307
+n03179910
+n11623967
+n00446311
+n00454983
+n02886434
+n12279458
+n03723781
+n11816121
+n02403231
+n11808299
+n07816296
+n03219483
+n02657694
+n00453478
+n02816656
+n02625851
+n04112752
+n03339529
+n12171316
+n02044517
+n04137773
+n01486838
+n03015149
+n12911673
+n03967270
+n03498441
+n11672269
+n03386870
+n11615967
+n02580679
+n01681653
+n02793199
+n02824319
+n10727458
+n02555863
+n01533000
+n02175916
+n12064389
+n04383015
+n02469472
+n03101664
+n03623338
+n12295796
+n02869249
+n01792042
+n03447075
+n04453390
+n04382438
+n04112252
+n03332393
+n12729729
+n01851207
+n04269270
+n12333771
+n06272612
+n03135532
+n02927887
+n11711537
+n12301180
+n04107743
+n01813948
+n03282295
+n09714694
+n00483409
+n01504344
+n04279353
+n04040373
+n12658308
+n04134523
+n10104064
+n12056601
+n04525417
+n07819166
+n12263038
+n02072798
+n03125057
+n03367410
+n04000592
+n03549897
+n01877606
+n01564914
+n12307076
+n02855925
+n03176763
+n12271933
+n04121728
+n07690511
+n02825442
+n04442441
+n01630901
+n03088580
+n02499808
+n10675010
+n01531971
+n02273392
+n01526521
+n01531344
+n03667664
+n02888270
+n04412416
+n07733394
+n04559910
+n04105704
+n11792341
+n04201064
+n01693175
+n04555291
+n02908773
+n01976868
+n03529175
+n03365231
+n03622839
+n04258333
+n03327133
+n03425769
+n12477747
+n03718935
+n11727540
+n07933799
+n03030262
+n12043673
+n02619550
+n07937461
+n12198286
+n08560295
+n12402348
+n01733957
+n12344700
+n02763604
+n11925303
+n01557962
+n03927299
+n11611758
+n03035252
+n09454412
+n04004990
+n03456299
+n02175569
+n03668279
+n12352990
+n03507241
+n01534155
+n12278371
+n02499022
+n03822767
+n01318381
+n04024983
+n04277493
+n11934616
+n02027075
+n11611561
+n03454442
+n02236355
+n01732789
+n07722052
+n01489501
+n04409625
+n10563403
+n01817263
+n07757511
+n03770316
+n02977438
+n01840775
+n03607923
+n03322704
+n02375302
+n01614038
+n01646555
+n03952576
+n02946824
+n12847008
+n03016389
+n11809594
+n03165096
+n03839671
+n02687821
+n01689081
+n03822656
+n02597608
+n12336727
+n01579578
+n03631922
+n03904909
+n11658331
+n04224543
+n12621410
+n03870672
+n04252331
+n09720842
+n01396048
+n11988596
+n00483205
+n02871005
+n01597022
+n02382039
+n07743902
+n02358890
+n07877961
+n05263448
+n01862399
+n04136800
+n10624540
+n11990167
+n02731398
+n03366974
+n03490006
+n01561732
+n02626265
+n10627252
+n12402051
+n08517676
+n10488656
+n03099274
+n03718581
+n11806219
+n01830042
+n07728585
+n03732114
+n10755080
+n03359285
+n07720277
+n03354207
+n01596273
+n04416005
+n01847253
+n07733567
+n09725653
+n04274985
+n00449977
+n07772274
+n12063639
+n01530439
+n01322508
+n04397768
+n07273802
+n04261281
+n10524076
+n01678343
+n03410938
+n01797020
+n02388832
+n07719616
+n03639497
+n09787765
+n07721018
+n11818069
+n04185529
+n11644462
+n12074408
+n00483848
+n01583495
+n11891175
+n03347617
+n03308481
+n02535258
+n07750872
+n07748157
+n02855701
+n04584373
+n02461830
+n02912557
+n12277578
+n03604311
+n03643253
+n03031152
+n04039742
+n03435743
+n13908201
+n04150153
+n03250405
+n01410457
+n02357401
+n12588780
+n12729315
+n01690149
+n02538216
+n03171228
+n02424909
+n06274760
+n03775747
+n04211857
+n12429352
+n12272239
+n11759853
+n03401129
+n12649317
+n02625258
+n12651611
+n03603442
+n02803934
+n03861271
+n02605936
+n02018368
+n12711984
+n02811936
+n04612026
+n01339471
+n02923682
+n09194227
+n04346157
+n03939178
+n12635532
+n01593028
+n01793249
+n02380464
+n12400720
+n07708398
+n12020941
+n12492106
+n12850336
+n12749679
+n02892948
+n12591017
+n03193423
+n01791463
+n11979527
+n12134025
+n12167075
+n09308743
+n13108545
+n01618503
+n07827284
+n07724492
+n02338145
+n04533946
+n01586020
+n07598256
+n01603953
+n12646740
+n03067518
+n04046277
+n01532511
+n07769584
+n11644046
+n12753573
+n02681392
+n08492461
+n07749446
+n04409384
+n01791954
+n12330891
+n04560882
+n10145480
+n04250473
+n02655848
+n02903126
+n11736851
+n11901294
+n12865824
+n03870105
+n00449892
+n04240752
+n11851258
+n04200537
+n12049562
+n01521399
+n03565830
+n07860447
+n03067212
+n01664674
+n07561590
+n02727141
+n02324514
+n02372952
+n01584853
+n07766173
+n11811706
+n03097362
+n04200258
+n02732572
+n01853195
+n12282527
+n09838621
+n02764505
+n04256891
+n12337617
+n12635955
+n07831267
+n11628793
+n12316572
+n07807834
+n02037869
+n01821869
+n02820556
+n04517211
+n01839086
+n03842986
+n07698401
+n02386224
+n07841800
+n01830915
+n11616486
+n11902389
+n03427202
+n12727101
+n01851573
+n02125494
+n07746186
+n11628087
+n07746551
+n03943115
+n11892029
+n02861022
+n11733312
+n01852329
+n09392402
+n12336224
+n07887099
+n03403643
+n04414199
+n07895100
+n02264232
+n02317781
+n07823460
+n07755929
+n02524202
+n04324297
+n11627512
+n01585715
+n02922578
+n00479887
+n02687423
+n02416880
+n11784126
+n12073991
+n01853870
+n01561452
+n04187970
+n10300154
+n02520147
+n12294124
+n07743224
+n12066018
+n11634736
+n02041678
+n11626585
+n02386141
+n03986949
+n07860331
+n12356023
+n12072722
+n03082280
+n12083113
+n12979829
+n01448594
+n03007444
+n07858978
+n01641739
+n02043333
+n12020736
+n02751215
+n04528079
+n01538200
+n07925608
+n12091550
+n03742019
+n03518305
+n01642539
+n03414029
+n04363991
+n03767966
+n02596067
+n01586374
+n02885882
+n04080138
+n11617631
+n02033779
+n09451237
+n02310585
+n12648045
+n03955489
+n01752736
+n07899899
+n02299505
+n01579410
+n02156871
+n02998841
+n03759661
+n02050809
+n02683454
+n11621950
+n02910145
+n04967801
+n07896661
+n11906917
+n12275675
+n11611233
+n07736692
+n02312640
+n12588320
+n04399537
+n12757303
+n04197781
+n12717224
+n11635152
+n03122295
+n01792955
+n13133932
+n02518324
+n01584695
+n02915904
+n02967294
+n04345201
+n03019434
+n02470238
+n03049782
+n03101517
+n12709688
+n03716887
+n02422391
+n12638753
+n00288384
+n02162561
+n02053584
+n01317294
+n03334291
+n07814634
+n12273768
+n12406715
+n11644226
+n01646802
+n03460147
+n12338796
+n01972541
+n02147947
+n03890093
+n04127395
+n01581984
+n01681328
+n02213239
+n04582869
+n03254189
+n03274265
+n03186285
+n11839823
+n01624833
+n09792969
+n07891189
+n12023726
+n07619208
+n03466600
+n01849676
+n12190869
+n03079136
+n12317296
+n13001930
+n00477639
+n02944459
+n03903733
+n04131208
+n12710295
+n12180885
+n11612349
+n03443149
+n03982331
+n04264765
+n12642090
+n03237416
+n13868944
+n04046400
+n11705171
+n11979715
+n12597134
+n01609956
+n01568294
+n01469103
+n00443692
+n01606672
+n04556408
+n07690019
+n03977592
+n03358726
+n12696492
+n01573240
+n11632619
+n01772664
+n03453231
+n04179712
+n03646020
+n01812662
+n04306592
+n07724654
+n13908580
+n02903852
+n04284438
+n13132656
+n04317063
+n07829248
+n01589718
+n02654745
+n12294331
+n12515925
+n07900825
+n07721195
+n04189282
+n11907689
+n01624537
+n12333530
+n07762244
+n11757851
+n01599159
+n04038338
+n01568892
+n12691661
+n09744834
+n04307767
+n03120778
+n07920540
+n03781683
+n04185804
+n12080820
+n04354182
+n07574426
+n02579303
+n03046802
+n12078172
+n03210245
+n01614556
+n02304432
+n07713267
+n09724656
+n02861147
+n12755387
+n01483830
+n12921868
+n12026018
+n07817871
+n12062781
+n04241573
+n11621727
+n03376159
+n11815721
+n13007034
+n03540090
+n00450866
+n11619455
+n01528845
+n01568720
+n12743352
+n02871314
+n03606251
+n01490670
+n04246060
+n02053425
+n10780284
+n01915700
+n04510706
+n00456465
+n01563945
+n11809094
+n09855433
+n04112579
+n03855333
+n09809925
+n03413684
+n02123478
+n12070712
+n03651843
+n02032355
+n01591005
+n01646648
+n02752615
+n02415829
+n03283221
+n04368496
+n01573360
+n02321170
+n10348526
+n04446844
+n07763792
+n12077944
+n04431025
+n02895438
+n10082687
+n07714188
+n02262449
+n03090172
+n12491017
+n01558461
+n12754781
+n04070415
+n04297098
+n03424862
+n01970164
+n09833536
+n01793435
+n01670535
+n09894445
+n09676247
+n01548492
+n12501202
+n03250089
+n03358380
+n02578928
+n12020184
+n02301935
+n03393017
+n12340755
+n01849863
+n01748906
+n03075946
+n01810268
+n01984245
+n04555400
+n12286988
+n04097760
+n02050586
+n12104238
+n01679962
+n02709101
+n01569060
+n12790430
+n01757901
+n13199717
+n11815918
+n07827410
+n02970534
+n12942572
+n07924276
+n04103918
+n11704093
+n07908647
+n07601686
+n12172906
+n04084889
+n02381261
+n02299157
+n11978713
+n12460957
+n02963503
+n03272810
+n12469517
+n03443005
+n01797307
+n02952237
+n11908549
+n13912540
+n03428226
+n10276477
+n01757343
+n01443243
+n01607600
+n03580518
+n12709103
+n07579688
+n04329834
+n12710415
+n11808932
+n10583790
+n02213788
+n11622184
+n12596709
+n02216211
+n07721942
+n07765361
+n01848453
+n11724109
+n02028451
+n02935017
+n12046028
+n10629939
+n00441073
+n07900958
+n12451399
+n02823964
+n04210120
+n01848840
+n10485883
+n07767709
+n02432704
+n11622591
+n03210372
+n07848196
+n11992806
+n02953197
+n07620689
+n01521756
+n03571625
+n03158186
+n12647560
+n02065407
+n01572782
+n09890749
+n05581932
+n07754451
+n03350204
+n13044375
+n12294723
+n12482893
+n04434531
+n12989938
+n12196336
+n01701859
+n07746334
+n11941924
+n02047411
+n12650379
+n10486166
+n01599556
+n01567879
+n12675876
+n01682435
+n02043808
+n12362668
+n12306089
+n02999138
+n01679626
+n03557270
+n01546039
+n11901759
+n01549053
+n11883328
+n06596727
+n03193107
+n11612018
+n03300443
+n03612010
+n03668488
+n12648888
+n01448291
+n11632167
+n10262445
+n09742101
+n09717233
+n04299370
+n03094159
+n04536595
+n03514693
+n02029706
+n02886321
+n07816052
+n04045255
+n01851731
+n02627292
+n01841288
+n02739889
+n02932693
+n03784896
+n04569063
+n07902799
+n03863108
+n02607470
+n13200651
+n07916183
+n01573898
+n04347119
+n10076604
+n13033577
+n01824035
+n03630262
+n04426316
+n03064250
+n12262018
+n12048399
+n12279772
+n04143140
+n07829331
+n12891643
+n01826680
+n12646605
+n13103877
+n02023855
+n03086868
+n04163530
+n03736470
+n04358117
+n13872822
+n03159640
+n01680655
+n11611087
+n03980478
+n02978478
+n01555004
+n12402840
+n07763987
+n04387706
+n04979002
+n03258330
+n09856671
+n11624192
+n01538059
+n02003839
+n12552309
+n10469874
+n01576076
+n03643149
+n04419868
+n04586581
+n00483508
+n03131967
+n01847407
+n07929172
+n09683757
+n03786621
+n04369282
+n12733870
+n11612575
+n11619227
+n03301833
+n02176439
+n01569971
+n07935043
+n02563792
+n02051059
+n04482177
+n11859472
+n11710136
+n04115144
+n07864934
+n07691758
+n02620167
+n07748276
+n03415486
+n07835921
+n00452152
+n01848323
+n12906214
+n12075010
+n01563449
+n01499396
+n01570267
+n12047345
+n07920989
+n07601572
+n02683558
+n04428634
+n04345028
+n12161969
+n03460040
+n02561514
+n02006364
+n03582959
+n11812910
+n13185269
+n04297847
+n07896165
+n01552813
+n12361946
+n02031585
+n12766595
+n11622368
+n11695599
+n11615387
+n02509197
+n12409470
+n01314388
+n11758799
+n09846469
+n02675219
+n04253057
+n04041243
+n12276628
+n04381724
+n01855188
+n02203152
+n04403925
+n11895092
+n11924849
+n04172904
+n11888800
+n01546506
+n07906718
+n01489920
+n03436417
+n03615655
+n07765073
+n02434190
+n02004492
+n12282235
+n12406488
+n11981192
+n10373390
+n13183056
+n04332074
+n12818346
+n07731006
+n02598573
+n02438580
+n01957335
+n03356982
+n10288964
+n02629230
+n02042759
+n12319414
+n01451426
+n03521675
+n02016066
+n01813532
+n13207335
+n11805544
+n04401828
+n02952109
+n03963294
+n10013811
+n12058630
+n01551711
+n01574560
+n01858780
+n10093818
+n03858183
+n01550172
+n03571280
+n02309242
+n10258786
+n01569423
+n10134178
+n08578517
+n04445327
+n03250279
+n02584449
+n03223553
+n04523831
+n04485423
+n02050442
+n04474035
+n04528968
+n02649546
+n01913166
+n09971273
+n04517408
+n02437482
+n03824713
+n03778817
+n07643026
+n01613177
+n12022054
+n07714448
+n07592768
+n00454493
+n03296328
+n02305929
+n03084834
+n03698815
+n12093600
+n08649711
+n03466493
+n04067658
+n03041114
+n03514451
+n01491006
+n04178329
+n03790953
+n03938401
+n02048115
+n07768858
+n03273740
+n10333601
+n05418717
+n12754003
+n02098806
+n03314608
+n01565930
+n12113195
+n12284821
+n12483427
+n04332580
+n10382710
+n03416094
+n02837887
+n03917198
+n14131950
+n04414476
+n11861641
+n11903671
+n01841441
+n09872066
+n01806467
+n04964799
+n00467320
+n01595974
+n03220692
+n01339083
+n01825278
+n11727358
+n04518343
+n11984144
+n07724269
+n02292692
+n02324850
+n01753032
+n01624115
+n11816649
+n07930062
+n02460451
+n12319204
+n04340521
+n12325234
+n01541102
+n02979836
+n00141669
+n01822300
+n11658544
+n12272883
+n03334382
+n11726707
+n03639077
+n07904934
+n03516367
+n03698723
+n03553248
+n11812094
+n03724417
+n01540566
+n02341974
+n11819912
+n07734555
+n02987379
+n03580845
+n12546962
+n02548247
+n12753245
+n07768423
+n12849279
+n11617090
+n02912894
+n07840027
+n12295033
+n12703383
+n02696165
+n10419785
+n04426427
+n03694639
+n11712282
+n04142999
+n01597737
+n03801533
+n01495493
+n07774719
+n03267113
+n01742821
+n03859170
+n03416640
+n03320959
+n12733218
+n02017725
+n13229543
+n09344324
+n04965451
+n01490112
+n10069296
+n12084555
+n04554406
+n04086446
+n02976249
+n02656032
+n02424486
+n02381609
+n09934337
+n04573937
+n07685399
+n02800497
+n02905152
+n02951703
+n07760153
+n03609397
+n00447463
+n03680512
+n02046939
+n03288886
+n11870418
+n03386544
+n07767171
+n07847453
+n12687044
+n01664492
+n03099147
+n03463381
+n02125081
+n12920204
+n03517647
+n02603540
+n12267411
+n11933546
+n11947802
+n04387095
+n12975804
+n02973904
+n13195341
+n04048441
+n11753143
+n03212114
+n03298858
+n04366116
+n01424420
+n10450161
+n01442972
+n07877299
+n04503593
+n04349306
+n12969425
+n12597466
+n03092656
+n07914995
+n03487886
+n12223569
+n01756733
+n13919919
+n04175147
+n02029087
+n03530511
+n02425887
+n03572107
+n03927539
+n03383099
+n04130907
+n01632601
+n07823105
+n10378026
+n02382850
+n07613266
+n03235180
+n02810782
+n12708654
+n11636835
+n02823124
+n03402941
+n12121610
+n03715114
+n04052658
+n00480366
+n12493208
+n04255163
+n12145477
+n01489709
+n12402596
+n01598074
+n03837606
+n02628062
+n04103364
+n03247083
+n02032480
+n07736256
+n12578916
+n09218315
+n02218371
+n03730334
+n02080146
+n03836906
+n02868638
+n02198859
+n12744387
+n02942460
+n11754893
+n12274358
+n02725872
+n09218494
+n03942920
+n07574780
+n02921756
+n01757115
+n02763306
+n11758122
+n10508141
+n02303284
+n04083800
+n13879049
+n12765115
+n12075830
+n02666943
+n11980318
+n07907037
+n12794135
+n02333909
+n03870980
+n07586718
+n11923174
+n10782471
+n01493146
+n12294871
+n11726269
+n12932173
+n07825972
+n12732009
+n03572321
+n07682197
+n03423306
+n12495895
+n03545756
+n03557692
+n03785237
+n07902937
+n09899671
+n12061614
+n07902443
+n01449374
+n12632335
+n03474896
+n03539433
+n04310904
+n03902482
+n12006930
+n03285578
+n04200000
+n03912218
+n07821260
+n03548626
+n03223686
+n11826198
+n03165616
+n02104280
+n09981278
+n09382099
+n03732458
+n03987990
+n09946814
+n12270741
+n07737745
+n04172776
+n10189278
+n03543012
+n12629666
+n02180875
+n04087432
+n12961879
+n03321954
+n12528549
+n02424085
+n09843443
+n03846677
+n12304703
+n09873473
+n03410571
+n03041810
+n02425228
+n01562451
+n03615790
+n10081204
+n03985881
+n07842130
+n02890513
+n03649797
+n02381004
+n12560621
+n12523475
+n07687626
+n11905749
+n11759404
+n12905412
+n03542605
+n03983612
+n12573474
+n11972291
+n03767459
+n02698634
+n12713866
+n13084834
+n02202006
+n13108323
+n02631475
+n10737103
+n03637898
+n03069752
+n12400489
+n09692915
+n10242328
+n02794664
+n12465557
+n12085267
+n03348868
+n12754981
+n02745611
+n10504206
+n12073554
+n02835724
+n04605572
+n02825961
+n03528523
+n12116429
+n02973805
+n12708941
+n01544704
+n04180229
+n09403211
+n08242223
+n02146371
+n12127768
+n09770359
+n03295246
+n01757677
+n04385799
+n02584145
+n07909593
+n12587132
+n13029326
+n04184316
+n07903643
+n01848555
+n10750031
+n02332156
+n12703557
+n03196990
+n12406902
+n02768973
+n12416073
+n02147591
+n09724533
+n09693982
+n12687462
+n01982068
+n03435991
+n03272125
+n07713763
+n03018712
+n03648431
+n03336575
+n07854184
+n12806015
+n07879174
+n03984643
+n03147280
+n02699915
+n07617708
+n01533651
+n12483841
+n01697611
+n02576906
+n03724066
+n03935116
+n09782397
+n01599269
+n10672371
+n12066630
+n03178674
+n15086247
+n03523987
+n02826068
+n12580654
+n02358390
+n01647640
+n10259997
+n03738066
+n13915023
+n02639605
+n03174450
+n12269406
+n09874428
+n03432061
+n04386051
+n03923918
+n04592465
+n12480456
+n10333439
+n04206790
+n01443831
+n02967626
+n07733712
+n03746155
+n12947313
+n11690254
+n12244650
+n12670758
+n08658309
+n12710693
+n11860555
+n03485198
+n03047799
+n04461570
+n07600177
+n02126640
+n12704343
+n02866386
+n03008976
+n04532831
+n03465426
+n12691428
+n01641206
+n04962062
+n03254046
+n04425804
+n02014524
+n03439348
+n02538010
+n11603246
+n12265600
+n12277800
+n04016240
+n12086192
+n09650729
+n01549641
+n03112719
+n04961062
+n02710324
+n12049282
+n12362274
+n11969607
+n12856680
+n02201000
+n07863802
+n03360622
+n07601809
+n04354487
+n12898774
+n12939282
+n03109693
+n12867826
+n12441390
+n12915811
+n12879527
+n04137355
+n04131368
+n03527149
+n10164492
+n09932508
+n12426623
+n12575812
+n02557318
+n10263790
+n04309548
+n00476235
+n04194127
+n11876634
+n10327987
+n03499354
+n02616851
+n04464615
+n03615406
+n02744844
+n11732567
+n10347446
+n09752519
+n04228215
+n10004718
+n07899533
+n12030908
+n15102894
+n12044467
+n11711764
+n02610066
+n03415749
+n04562496
+n02034295
+n02297442
+n03566193
+n12506991
+n07774842
+n12827270
+n14908027
+n12242409
+n04072960
+n02829596
+n12496427
+n02266050
+n13108481
+n12473840
+n08677424
+n12076223
+n15091473
+n02815749
+n04549028
+n12558425
+n12023407
+n04179824
+n02378541
+n03188725
+n12517445
+n07573347
+n02004131
+n11921395
+n12570972
+n10602470
+n12095647
+n03854421
+n02450295
+n02792409
+n03543735
+n12836337
+n12204175
+n12152722
+n07900734
+n12517642
+n02775039
+n12607456
+n03376938
+n12179122
+n09873348
+n01847978
+n07888816
+n10453184
+n09675922
+n01851895
+n12865562
+n01797601
+n03711044
+n02738859
+n12064591
+n04033425
+n08551296
+n01650690
+n01537895
+n04207151
+n10087434
+n12261808
+n09438844
+n10364198
+n01814755
+n01583209
+n12270946
+n11892817
+n03344642
+n04117464
+n07847917
+n04003241
+n10362319
+n10477713
+n03495570
+n07560542
+n04363777
+n04534359
+n02404906
+n03349892
+n07712267
+n02960352
+n07866277
+n07857170
+n00324978
+n02755823
+n03150511
+n04211528
+n01899894
+n07588299
+n11874081
+n03425325
+n04506506
+n11949402
+n02952374
+n03309110
+n12159388
+n07591049
+n03068998
+n03228254
+n10279018
+n04173046
+n07728053
+n13052931
+n01597906
+n12368451
+n02767665
+n09435739
+n03915900
+n09728285
+n03292603
+n03331077
+n07817160
+n07917392
+n12540250
+n04153025
+n10209082
+n03968581
+n12676534
+n11824146
+n03521899
+n01853666
+n04292921
+n12332030
+n03984759
+n02863014
+n07801091
+n07723177
+n03289660
+n01533481
+n04488202
+n03468821
+n02382338
+n03543254
+n01961985
+n07915918
+n03703862
+n02771004
+n02047045
+n03877674
+n13141415
+n03529629
+n02240517
+n03675235
+n04491638
+n12384037
+n04419642
+n03019685
+n07591586
+n04496726
+n12985420
+n12927013
+n12196694
+n03473227
+n11621547
+n02988066
+n10451450
+n07729828
+n09618760
+n12196527
+n01555305
+n12830222
+n11950877
+n13190747
+n12160303
+n12390099
+n02818135
+n03163381
+n04554211
+n03244919
+n07897975
+n03386726
+n04290615
+n02011281
+n12407890
+n04123448
+n07904865
+n03447358
+n02393940
+n07931870
+n02937958
+n04318787
+n04587327
+n12807409
+n04112430
+n07560193
+n12774299
+n02618827
+n07854982
+n03757604
+n03817191
+n12793494
+n02324431
+n03013850
+n04113641
+n01612476
+n03127408
+n02038466
+n03799876
+n04257684
+n03382292
+n10449664
+n04394630
+n10275395
+n07698250
+n12329473
+n07694659
+n07642742
+n02563648
+n08583455
+n02557182
+n02775178
+n09274152
+n03189083
+n12570703
+n04211219
+n12486574
+n03073694
+n11969166
+n02475078
+n02976350
+n08584914
+n07899660
+n10116702
+n01613807
+n12461109
+n04025508
+n12451240
+n12596849
+n12079963
+n03541269
+n04561422
+n11699442
+n07725255
+n03460297
+n07616748
+n12757458
+n03103563
+n02813752
+n07698782
+n12840362
+n01543632
+n01602832
+n01875313
+n12472024
+n02926591
+n02872333
+n10728624
+n12532564
+n03882960
+n12333053
+n03684224
+n13146583
+n03436075
+n04154340
+n03868643
+n02598878
+n04139140
+n03266371
+n04083309
+n12506341
+n12200143
+n03503477
+n12807773
+n03123917
+n13029760
+n10173771
+n03659809
+n12047884
+n12759273
+n04193377
+n04258438
+n04597400
+n04579986
+n03719743
+n04299963
+n02864504
+n10510245
+n03417970
+n09719794
+n03138344
+n02085272
+n07694516
+n12665857
+n01642257
+n03229244
+n10581890
+n10318293
+n03635108
+n10652605
+n12189429
+n09934774
+n11709205
+n04207903
+n10296176
+n10603851
+n03450734
+n13223588
+n12754648
+n09886403
+n07751280
+n11950686
+n07814390
+n12799776
+n01646902
+n09796809
+n12819728
+n01938454
+n02410011
+n07607138
+n02119634
+n10332861
+n09230202
+n02757061
+n02849885
+n15092227
+n12151615
+n03111041
+n02413050
+n03506560
+n07744057
+n04030518
+n12544539
+n04089836
+n02038993
+n13882201
+n12099342
+n01946630
+n10095769
+n02982416
+n12957924
+n13215586
+n07726525
+n12452836
+n03801671
+n04598318
+n01449712
+n12428747
+n04119751
+n10509063
+n07694839
+n02782602
+n11626409
+n02573704
+n12399384
+n12388989
+n01601068
+n11971406
+n04367011
+n07930315
+n12925179
+n04967674
+n03497352
+n03653833
+n01819465
+n03688192
+n02802990
+n03393761
+n04430475
+n13107694
+n10384496
+n07867164
+n12449526
+n01515303
+n12574320
+n01444339
+n07919310
+n03453443
+n04173907
+n02887489
+n07772788
+n03629520
+n02580830
+n11705387
+n12069679
+n01956344
+n02406533
+n03973402
+n03938037
+n04969952
+n04103094
+n04393808
+n07715407
+n04172107
+n01917882
+n12085664
+n07608429
+n09835230
+n04135024
+n07842605
+n12568186
+n04339879
+n07691091
+n01801876
+n00474568
+n01807105
+n12128071
+n01673282
+n11948864
+n03991837
+n09659188
+n02070174
+n02670683
+n12454949
+n10385566
+n11631854
+n12305293
+n12002428
+n12948495
+n12757816
+n11852028
+n10690648
+n09283866
+n03214582
+n03423877
+n04127521
+n03006626
+n09283193
+n07712559
+n01447331
+n02981321
+n02658531
+n11947629
+n02419634
+n02420828
+n11923637
+n12570394
+n11968931
+n12731029
+n09749386
+n07736813
+n03967396
+n11908846
+n03029445
+n02426481
+n01964271
+n13198914
+n04484432
+n12656685
+n10806113
+n11849983
+n03236423
+n10649197
+n07688624
+n03057541
+n12015221
+n02094931
+n02014237
+n07560331
+n02801450
+n04206570
+n07556406
+n11627908
+n11889619
+n07852229
+n04063154
+n02713364
+n02783459
+n12877838
+n02930214
+n02125010
+n02407276
+n07815424
+n12855494
+n12530818
+n07750449
+n01963317
+n10082997
+n03245724
+n03012013
+n03555006
+n02421136
+n03332989
+n04375405
+n03746486
+n12636224
+n03278914
+n07917133
+n12504783
+n09416890
+n03896526
+n02258198
+n12983048
+n03837698
+n12869061
+n04541987
+n01637615
+n04401949
+n02241426
+n13220122
+n07876651
+n03729308
+n02364840
+n01339801
+n03418915
+n09257843
+n11614039
+n09731343
+n03809603
+n05399243
+n01569262
+n11901597
+n03124474
+n01566207
+n03796522
+n12595699
+n04573281
+n09689435
+n11859737
+n03201529
+n12902662
+n03374372
+n03760944
+n09189157
+n01517966
+n10431625
+n02898269
+n03693707
+n04369025
+n07834618
+n04095342
+n02786331
+n03822504
+n02284611
+n09862621
+n03436891
+n07688898
+n12435777
+n03949317
+n12443323
+n12273114
+n12623077
+n04333869
+n07907831
+n07774596
+n05450617
+n03320262
+n04190376
+n12671651
+n11819509
+n07588111
+n09756049
+n07611046
+n04973291
+n11602873
+n00120010
+n03500699
+n03844815
+n03708843
+n04452528
+n04387261
+n09889065
+n10147121
+n03318294
+n12599435
+n04164406
+n01965529
+n11636204
+n11791569
+n12275131
+n02977330
+n07851443
+n04132603
+n07824191
+n09760609
+n12190410
+n07915491
+n12665271
+n10120671
+n02570164
+n10208950
+n02163297
+n02244797
+n09842528
+n08645104
+n01841679
+n11603835
+n04488857
+n07814487
+n01953762
+n04612373
+n11877193
+n03198500
+n03981924
+n01943087
+n11552806
+n04414909
+n03005033
+n02457945
+n10500217
+n10375314
+n04607242
+n07914777
+n09832456
+n12915568
+n12813189
+n10578021
+n03519081
+n07801779
+n12026476
+n03296081
+n03850492
+n07902121
+n09881265
+n12562785
+n03290195
+n10131151
+n10078719
+n01558765
+n03917814
+n02045596
+n07734183
+n03414676
+n07933154
+n02126787
+n12148757
+n12263987
+n07684164
+n03406966
+n01492569
+n02988963
+n12963628
+n09964202
+n03417749
+n01854838
+n02921029
+n02183096
+n11762433
+n11722466
+n02387093
+n02768655
+n12519089
+n09871229
+n07938313
+n10502329
+n11989393
+n03768916
+n13145040
+n11813077
+n04457910
+n03655720
+n03703945
+n11876803
+n01438581
+n07910379
+n07847827
+n02300797
+n09245515
+n10754189
+n04581102
+n12513172
+n02458135
+n03762332
+n11789589
+n09695620
+n03850053
+n07911249
+n12342852
+n12753007
+n07748574
+n07727458
+n03696568
+n04304680
+n07723039
+n07775197
+n07577144
+n03043693
+n04374735
+n01858281
+n09228055
+n09466678
+n01949085
+n02024479
+n11623815
+n02704645
+n07894451
+n01751472
+n01646388
+n01317916
+n13880994
+n10300500
+n11794024
+n03735963
+n04610274
+n11854479
+n07754894
+n02639087
+n02122510
+n02262803
+n12732966
+n04529108
+n13194036
+n09990777
+n10009276
+n12088223
+n12155009
+n07886176
+n04278247
+n04222723
+n11707229
+n01999186
+n07851641
+n12741792
+n01315213
+n10033412
+n04249582
+n03586631
+n03237839
+n12037499
+n12014085
+n07756325
+n01636352
+n03905947
+n08611339
+n07693590
+n03724538
+n09791816
+n01666585
+n10588965
+n11613219
+n10542608
+n12913791
+n10528023
+n03171635
+n11923397
+n12854600
+n10410246
+n12698598
+n04135118
+n09844457
+n04441790
+n03882611
+n02337001
+n07907342
+n12561169
+n12027658
+n10719132
+n09851165
+n02801823
+n12330587
+n01683558
+n12162181
+n04387932
+n11704620
+n09679170
+n07601290
+n04028221
+n10277027
+n09877750
+n11758483
+n10027246
+n03819336
+n10205231
+n12478768
+n03451711
+n12973443
+n01923025
+n03262717
+n07807594
+n00475535
+n07744430
+n02341475
+n04614655
+n07924747
+n03388323
+n12680402
+n03202940
+n04534520
+n09661873
+n15092059
+n11832480
+n04198355
+n12529220
+n12389130
+n12304115
+n03234952
+n07610620
+n02868975
+n04442741
+n05282652
+n02820675
+n12795352
+n12675299
+n08547468
+n04189651
+n04141198
+n04513998
+n12273939
+n12482668
+n12858618
+n01958346
+n03172038
+n10280674
+n04301760
+n02631330
+n12433178
+n07763107
+n03068181
+n07565259
+n03605598
+n13177884
+n04005197
+n09751496
+n12737383
+n07648997
+n09839702
+n09442595
+n07925229
+n12150722
+n11898775
+n09904208
+n02207345
+n07642361
+n07685918
+n03205458
+n10574538
+n09742315
+n02599557
+n03585682
+n04273659
+n02200850
+n03410740
+n03391301
+n07726672
+n09782167
+n13155305
+n02067240
+n07561848
+n07728708
+n12463134
+n12228229
+n09743487
+n12225563
+n03421669
+n03226375
+n03973945
+n12498055
+n04483925
+n04564278
+n11890150
+n12519563
+n12754468
+n04353573
+n11615607
+n04430896
+n04585128
+n10395828
+n10773665
+n02772435
+n09881895
+n12663023
+n01615303
+n12803754
+n09445008
+n03955296
+n05245192
+n05486510
+n07899769
+n07575510
+n02307681
+n03814817
+n02670186
+n03598515
+n12797860
+n03518135
+n07587962
+n12630763
+n06273743
+n09843824
+n03226254
+n12407222
+n02961544
+n12951835
+n06417096
+n02016659
+n01441117
+n07735404
+n09411189
+n13896217
+n03262248
+n03451120
+n02525382
+n03375329
+n04155068
+n12916179
+n10297234
+n11907100
+n03423568
+n04360914
+n12027222
+n12199790
+n01744270
+n09896401
+n07925116
+n03693860
+n04414319
+n07767549
+n03555564
+n04043411
+n07872593
+n03774461
+n03129471
+n04497801
+n11756870
+n09776346
+n04530283
+n01520576
+n12828220
+n01583828
+n04120842
+n09676021
+n04344734
+n01916388
+n12513613
+n09861863
+n02310334
+n03318983
+n04533499
+n02427576
+n12727518
+n04502059
+n11725480
+n11987126
+n11876204
+n03504205
+n09720595
+n12315999
+n12935609
+n04452757
+n12201331
+n01603152
+n10772092
+n03156279
+n12723610
+n02003037
+n03244775
+n07802963
+n11954642
+n07770034
+n09931165
+n10559508
+n01745902
+n07654148
+n10070108
+n01585287
+n13196003
+n04389718
+n10253122
+n03730893
+n02983357
+n02783900
+n01680813
+n03072440
+n03109253
+n03274435
+n11655974
+n10048612
+n07849733
+n07896994
+n03792334
+n03035832
+n03819448
+n03105088
+n11943992
+n01485479
+n01699675
+n11795049
+n12086778
+n01840120
+n07753980
+n10685398
+n04346428
+n04532398
+n07709172
+n02146700
+n09461069
+n03853924
+n01321456
+n12068432
+n09757449
+n03206282
+n03751757
+n13053608
+n11695974
+n12123741
+n03500209
+n04367371
+n02890940
+n01917611
+n07835331
+n02907656
+n04136045
+n12059625
+n03862862
+n12864160
+n00440039
+n03448590
+n12628986
+n04115802
+n03949145
+n12916511
+n12647893
+n09706255
+n13181811
+n07752109
+n04375615
+n01648620
+n04403524
+n09967967
+n12911079
+n03857687
+n02803539
+n01551080
+n10734891
+n13235159
+n04127633
+n07935878
+n12853482
+n10191001
+n03126385
+n10076224
+n01812866
+n12919403
+n03769610
+n09283767
+n03462110
+n11770256
+n12038898
+n09889170
+n11894558
+n10298647
+n02592055
+n02795670
+n11701066
+n12762049
+n02890662
+n07918193
+n02976455
+n03100897
+n13127843
+n12184912
+n00468299
+n12407079
+n12496949
+n03541537
+n05260127
+n01535140
+n01541760
+n11945783
+n07687053
+n07745046
+n12083847
+n02382132
+n12270027
+n10140597
+n03788914
+n01790711
+n02197689
+n03173270
+n10368624
+n04449290
+n01579729
+n07834872
+n07734417
+n02379630
+n01636829
+n12549192
+n12951146
+n13579829
+n03268142
+n11761202
+n02769669
+n09452760
+n04095577
+n12031139
+n02003577
+n12891469
+n03931885
+n01577941
+n04176295
+n12046428
+n03418402
+n13145250
+n11865874
+n12473608
+n11797321
+n01798168
+n09923186
+n02786736
+n01698782
+n09976283
+n03975788
+n14685296
+n01682172
+n07838441
+n02771286
+n03429137
+n03948950
+n02512830
+n02298218
+n10141364
+n02823848
+n02077384
+n12584715
+n11748811
+n02214773
+n03667552
+n04121426
+n04135710
+n07579917
+n12275888
+n07826453
+n12167436
+n04586072
+n09877288
+n04248396
+n02761696
+n03038870
+n01490360
+n12353203
+n09785891
+n12057660
+n04146343
+n12557556
+n02081798
+n02917964
+n07898617
+n12597798
+n07574176
+n07764630
+n03008177
+n04255899
+n04434207
+n07897600
+n09929577
+n11811921
+n12415595
+n02893941
+n12276110
+n02821202
+n09690621
+n02508742
+n02077787
+n02390640
+n03764822
+n02257985
+n13033134
+n04559166
+n07865196
+n10506915
+n12051103
+n10473917
+n12775919
+n02971579
+n12880462
+n11837970
+n02063662
+n09840520
+n12019827
+n09208496
+n12836508
+n02982232
+n04219185
+n03332005
+n07914128
+n07862461
+n04250692
+n09267854
+n04561734
+n02076402
+n12344837
+n02919148
+n06592281
+n03668803
+n03062985
+n04246731
+n12112609
+n04012482
+n03558633
+n03982642
+n01998741
+n07665438
+n04209509
+n07913882
+n01749244
+n07801342
+n02611561
+n04488742
+n01897536
+n10624437
+n13128976
+n07931612
+n04300643
+n03727067
+n03360431
+n07593471
+n10253296
+n03297226
+n03854506
+n07879450
+n10562283
+n12557438
+n13154388
+n12862512
+n02126028
+n07752514
+n02387887
+n12066261
+n07666176
+n02806530
+n09988703
+n03721252
+n03221540
+n12195533
+n02682569
+n03622058
+n03943266
+n04207596
+n11721337
+n02427032
+n07910152
+n01551300
+n12861345
+n11660300
+n03786313
+n12966945
+n02046171
+n02797535
+n03546112
+n07711232
+n02044908
+n02998563
+n02652132
+n12634986
+n12187247
+n11645590
+n07582892
+n03065243
+n09911226
+n04396902
+n10763075
+n02359047
+n10400108
+n04294614
+n03991646
+n11728945
+n07766891
+n12277150
+n13141564
+n10563314
+n12426749
+n07827750
+n12403994
+n12627119
+n03420801
+n10203949
+n12830568
+n12280060
+n13180875
+n12659064
+n04239436
+n03823312
+n04367746
+n12448700
+n01896844
+n07581931
+n09384106
+n11625223
+n04198722
+n01477875
+n09932336
+n03477512
+n12281974
+n10117739
+n07759194
+n12281788
+n01405007
+n03077616
+n02304036
+n12947544
+n03140126
+n12356960
+n07807002
+n07877849
+n02956795
+n04373795
+n07925500
+n10359546
+n09730077
+n01694955
+n10611267
+n04316498
+n07849912
+n12841354
+n07903543
+n10026976
+n04050313
+n03939844
+n03260849
+n07917507
+n12228387
+n03199775
+n01569566
+n02403920
+n04261638
+n02986160
+n03724623
+n01960177
+n03783430
+n07877675
+n10401639
+n04215153
+n03077741
+n02589623
+n12934985
+n03233624
+n04506688
+n12194147
+n09975425
+n07818825
+n12641007
+n10036692
+n02771750
+n12285900
+n01472303
+n10033663
+n10707134
+n03219966
+n11772879
+n10146416
+n10435169
+n10304086
+n12385566
+n03126580
+n12904314
+n03619196
+n02299846
+n03574243
+n12368257
+n03690473
+n01748686
+n09834378
+n07750736
+n02930645
+n01679307
+n03721047
+n02710044
+n07563207
+n02930080
+n09309168
+n03127203
+n02863536
+n02536165
+n01559639
+n09654518
+n02961035
+n12007406
+n12773651
+n04351699
+n03114504
+n06273414
+n02017475
+n01733466
+n02175014
+n07920663
+n03953901
+n09670521
+n09400987
+n11791341
+n02284884
+n12919646
+n07880325
+n03801353
+n01982347
+n07828642
+n01570421
+n03998333
+n03449309
+n10482220
+n12850906
+n12805561
+n12926689
+n03232543
+n04248851
+n03195959
+n04082562
+n03846100
+n07682952
+n07695652
+n11809271
+n09895561
+n04287898
+n09740724
+n02859955
+n09830400
+n03674731
+n02825153
+n04571686
+n13107891
+n10318607
+n07848093
+n13226871
+n08555710
+n03137473
+n02776978
+n03141455
+n12514138
+n01809371
+n09405078
+n01753180
+n02184473
+n11610215
+n03539546
+n12731835
+n04485884
+n03590588
+n10221312
+n04049753
+n03441345
+n02302244
+n12262185
+n15092650
+n11877646
+n10377185
+n01684578
+n03796605
+n07897116
+n03164344
+n12135049
+n10757050
+n01692523
+n04566756
+n07697699
+n07575392
+n10262655
+n04064747
+n07914006
+n12433769
+n07873348
+n04457767
+n10019072
+n02921195
+n03856465
+n04041408
+n12639584
+n12920955
+n11781176
+n07864756
+n03941013
+n03646148
+n04401578
+n11692792
+n02757714
+n02286089
+n04253168
+n03890514
+n07855510
+n03507458
+n04123026
+n11661909
+n12435152
+n04330746
+n09481120
+n03731019
+n03717285
+n03271030
+n02772101
+n07740597
+n02847852
+n12825497
+n12263738
+n03342262
+n03603594
+n07804543
+n12932365
+n12695975
+n10297531
+n04054670
+n03175081
+n12703856
+n03832144
+n03966206
+n02414290
+n03619275
+n09738121
+n03290096
+n10585077
+n07731767
+n12409840
+n12026981
+n02278980
+n02752810
+n01654637
+n02654112
+n10314836
+n13023134
+n01823414
+n07461050
+n11902982
+n04543636
+n02204907
+n04049585
+n12304899
+n03073545
+n04272928
+n10315456
+n03975657
+n09899782
+n12288005
+n07005523
+n03795269
+n09823832
+n02242137
+n02907391
+n03643491
+n03245889
+n12285369
+n03061345
+n03797264
+n07838073
+n09219233
+n02859343
+n07608098
+n03920641
+n12578626
+n10688356
+n04542858
+n07834065
+n00443803
+n04181561
+n04570214
+n02047517
+n03295012
+n01633781
+n10610850
+n04035836
+n03001115
+n04593376
+n02393807
+n13061348
+n10123122
+n11800236
+n13207094
+n10140929
+n12167602
+n01809752
+n10421956
+n02764935
+n03424489
+n12889219
+n04046091
+n07714287
+n07708685
+n07736087
+n04142434
+n11961446
+n04521863
+n02414763
+n02901377
+n00467536
+n13085747
+n03855756
+n11846765
+n02530999
+n03063199
+n04258618
+n12204032
+n04424692
+n11758276
+n02653497
+n03766508
+n02026629
+n02572484
+n12339831
+n01635027
+n01668436
+n07821919
+n01543175
+n02689748
+n12528974
+n04024862
+n04184880
+n11720891
+n13869896
+n01678043
+n01647303
+n11532682
+n03236217
+n04963307
+n03012897
+n11682659
+n03191286
+n07643891
+n12737898
+n10680609
+n07924955
+n03879705
+n10461060
+n02523427
+n02013567
+n09893344
+n04124488
+n09863031
+n12454436
+n12305089
+n07709046
+n03805180
+n11940599
+n01691217
+n04198562
+n03978421
+n02357585
+n07818572
+n12870682
+n03798442
+n04154938
+n10550369
+n11957678
+n01958531
+n09936825
+n02334201
+n07910538
+n11978551
+n10562135
+n12700088
+n12784889
+n04480853
+n03281673
+n07588419
+n02968333
+n11935469
+n13046669
+n11730602
+n09643799
+n11849467
+n01758757
+n09638454
+n03267468
+n07914586
+n12104734
+n02961225
+n09827246
+n09917214
+n13079073
+n12634734
+n04089376
+n13034062
+n11714382
+n12753762
+n07683039
+n11840067
+n07689842
+n12173069
+n12172481
+n04182152
+n07869522
+n10356877
+n02771166
+n03154895
+n07615289
+n12986227
+n12361135
+n03456447
+n12706410
+n12895811
+n02988156
+n03130761
+n10639359
+n03628215
+n02738741
+n01643507
+n07730708
+n03232309
+n02846733
+n04969540
+n03051041
+n12890928
+n03235327
+n04289576
+n07588817
+n10325774
+n03973285
+n09703485
+n02358584
+n03061674
+n03195332
+n02901259
+n07849619
+n04486934
+n07908812
+n01588725
+n03682877
+n11949015
+n04146504
+n04146862
+n07898247
+n03318865
+n04367950
+n07880213
+n04247011
+n01447658
+n12711817
+n03146687
+n02926426
+n12856091
+n11966896
+n02413593
+n09764900
+n03009794
+n03314227
+n10499232
+n10075693
+n04451318
+n12320806
+n11933728
+n07764315
+n12133682
+n09904837
+n12832538
+n03816530
+n07802863
+n04391445
+n09728137
+n03887330
+n04436012
+n03957991
+n07771731
+n06266973
+n10407310
+n10290919
+n07862244
+n01842504
+n10262561
+n12726159
+n07691954
+n07618119
+n03437829
+n11966617
+n03629100
+n04231905
+n04208760
+n03344305
+n03684143
+n12934174
+n08645212
+n03556679
+n12109365
+n03751458
+n02380875
+n02025389
+n02770721
+n09830629
+n02800675
+n04951186
+n04483073
+n12710577
+n12789054
+n12058192
+n11777080
+n07716203
+n09618880
+n04525821
+n04016846
+n02918330
+n10375052
+n13158512
+n13090871
+n02929582
+n02308735
+n10487182
+n02213663
+n07608339
+n04384593
+n12890490
+n03992436
+n02994573
+n13231078
+n12880244
+n01651059
+n02925009
+n09686401
+n13219976
+n09981540
+n04582771
+n06267758
+n09893502
+n13214340
+n03272940
+n12554911
+n02214341
+n04137089
+n03874487
+n04573513
+n12003167
+n12004547
+n13065089
+n01903346
+n04373428
+n02216365
+n02024185
+n12577895
+n11698042
+n07586318
+n11705776
+n03030353
+n04486213
+n07885705
+n07928163
+n02356612
+n02767038
+n02897097
+n11662371
+n04128710
+n09842395
+n07683360
+n11533212
+n08495908
+n12841193
+n03669886
+n07768068
+n02381831
+n12081215
+n02757337
+n02811618
+n10144338
+n01379389
+n09698644
+n12779851
+n10400618
+n11801891
+n12322099
+n12408077
+n02767956
+n08640962
+n07816839
+n03021228
+n10346015
+n07868830
+n07917272
+n10076957
+n12865708
+n04290259
+n03595264
+n03986224
+n07825194
+n01610100
+n04417086
+n12995601
+n12734070
+n15091129
+n12428412
+n07587331
+n02405101
+n03108455
+n03594523
+n04489695
+n03892425
+n13032618
+n04409011
+n07590752
+n15092942
+n03914583
+n13066448
+n03532919
+n10639637
+n04566561
+n13223843
+n07904637
+n12347158
+n02720048
+n03901229
+n03936466
+n10574840
+n03782794
+n12397431
+n07908567
+n12580896
+n02697221
+n09791419
+n02577403
+n07870069
+n02136103
+n04318892
+n01462544
+n09747191
+n12287836
+n03067093
+n03934565
+n03543945
+n13126856
+n02240068
+n01585422
+n12413301
+n03246454
+n01876034
+n03635330
+n11680596
+n03228365
+n03082656
+n11609862
+n12859986
+n03934229
+n10233248
+n03166514
+n12166793
+n10115430
+n03327553
+n03373611
+n02967782
+n12338258
+n01604968
+n01323155
+n02590094
+n03044934
+n07866409
+n12291143
+n14900342
+n12094612
+n07845702
+n07926250
+n10750640
+n04359500
+n09797873
+n09953350
+n03561047
+n12122725
+n12725738
+n01453087
+n04977412
+n04575723
+n13219833
+n12161056
+n04273285
+n12482437
+n12863624
+n04953296
+n03390075
+n10188957
+n02874442
+n04236935
+n09990690
+n12866459
+n04075715
+n09725000
+n12794367
+n12461673
+n03050453
+n03677115
+n12427391
+n07736371
+n02973236
+n02406749
+n12322699
+n12815198
+n10680796
+n03268311
+n02405799
+n12302248
+n09791014
+n01545574
+n07740033
+n07862095
+n09901337
+n04390577
+n03597916
+n12110085
+n11802586
+n04205505
+n07696527
+n12076852
+n04344003
+n03326660
+n02823586
+n03042139
+n01565345
+n07905296
+n01454545
+n07650903
+n07905386
+n12530629
+n02841187
+n02943964
+n03329536
+n09681234
+n03479121
+n03770085
+n04147793
+n11552133
+n03774327
+n13197507
+n07901355
+n10400437
+n07837912
+n02310941
+n07845087
+n02239774
+n04976319
+n03960490
+n05239437
+n06275471
+n01633406
+n04257223
+n12009420
+n10483138
+n02775897
+n07866151
+n07922512
+n02666624
+n03944024
+n03842377
+n01832493
+n07855907
+n03968728
+n04492060
+n07879072
+n11635830
+n11802800
+n02357911
+n02431628
+n03730494
+n13099999
+n07768230
+n13147270
+n12331655
+n10237676
+n11855553
+n09759501
+n10620586
+n13181055
+n12309277
+n13183489
+n04382695
+n07679034
+n10495756
+n02173113
+n12764202
+n03683457
+n10298912
+n07680313
+n10160280
+n02205673
+n12053690
+n11653904
+n02931294
+n04093775
+n12856479
+n02427470
+n07608866
+n09954639
+n11639445
+n03364599
+n09924106
+n09683924
+n10419472
+n03089753
+n12620969
+n07604956
+n12940609
+n12564083
+n03514894
+n10343355
+n13068255
+n03805280
+n12793284
+n03140652
+n02666501
+n11717577
+n04267435
+n04593185
+n12820853
+n03934311
+n02630615
+n07767002
+n07723968
+n01631354
+n07931452
+n12414818
+n03097673
+n09944430
+n04457474
+n11850521
+n12227658
+n10131815
+n12408717
+n03566730
+n12777680
+n06273555
+n04357531
+n03759243
+n09861599
+n03015851
+n04175039
+n03392741
+n07859796
+n07741138
+n04474187
+n02266864
+n04553561
+n02667244
+n12720200
+n12432356
+n07806120
+n10362557
+n11929743
+n07765862
+n02963987
+n02762371
+n02747672
+n04289195
+n04056413
+n03039493
+n03894677
+n12338655
+n04422409
+n12079120
+n10252222
+n10168837
+n12919847
+n10297841
+n01340014
+n11710827
+n10167838
+n12278107
+n01384164
+n10498986
+n02742468
+n02899439
+n11752937
+n12107710
+n12315598
+n03985441
+n07605804
+n07686202
+n12884100
+n13121349
+n11725311
+n10420507
+n11706761
+n01381044
+n03331599
+n12336333
+n10185483
+n07880880
+n01782516
+n12615232
+n03175457
+n12657082
+n01750437
+n07918879
+n13213066
+n12927494
+n02910542
+n06273986
+n02161338
+n10235024
+n12180168
+n03659950
+n02160947
+n11861853
+n09866817
+n09279986
+n12393269
+n01552034
+n05526957
+n02956883
+n12818966
+n09753792
+n03114236
+n12273344
+n12546617
+n13177048
+n02129991
+n01731941
+n01628770
+n12774641
+n07685546
+n03253279
+n10678937
+n12579038
+n08673039
+n01392275
+n02379081
+n10530150
+n12851469
+n12414449
+n11694664
+n11877283
+n09708889
+n03585438
+n00483605
+n12332555
+n03323096
+n07851767
+n02417663
+n10667863
+n02856237
+n09269341
+n01596608
+n09720033
+n13160604
+n04443164
+n02814428
+n11622771
+n10328123
+n04338963
+n01794651
+n12069217
+n07762740
+n02935387
+n11897116
+n10569179
+n12749852
+n10745006
+n07823280
+n12162425
+n09801533
+n03772269
+n04518643
+n07916319
+n12771597
+n02147173
+n10342992
+n03795123
+n11646344
+n12847927
+n07686021
+n12383894
+n04465050
+n14564779
+n04212467
+n12274863
+n02380052
+n04329958
+n12034384
+n04213353
+n04366033
+n04955160
+n02778294
+n12890685
+n03028785
+n03097535
+n04533594
+n01750167
+n01415626
+n12276477
+n07729926
+n07711371
+n12843970
+n10500419
+n12891093
+n03840823
+n12509665
+n11878101
+n04315342
+n07685031
+n12305819
+n10039271
+n12264512
+n03911866
+n13919547
+n12413419
+n03785721
+n02599347
+n03786194
+n04018155
+n12856287
+n09607903
+n02396088
+n10212501
+n10313000
+n07683617
+n03586219
+n03890233
+n03156767
+n12033709
+n01648139
+n04399846
+n10671736
+n07698672
+n10791115
+n07708124
+n02709908
+n04266968
+n01758141
+n10058962
+n09444783
+n03668067
+n02838345
+n02388143
+n12893993
+n12590499
+n01462042
+n02689434
+n13209808
+n04075291
+n02412629
+n01953594
+n03906463
+n03043423
+n02200509
+n10152763
+n12504570
+n04396808
+n03382413
+n03618101
+n02767147
+n02390101
+n03450974
+n12778398
+n03625539
+n02574271
+n04113316
+n07572616
+n11809437
+n04119230
+n03829954
+n10500603
+n04258732
+n02731900
+n10174330
+n01574801
+n08663703
+n12558230
+n03981760
+n07732904
+n11875523
+n11823436
+n03238286
+n03079494
+n04281260
+n07873057
+n11686912
+n10568608
+n07593004
+n04271531
+n10037922
+n07838551
+n03615300
+n12624568
+n12940226
+n05242928
+n03680734
+n01589893
+n11652376
+n11893640
+n04119091
+n09696763
+n07851554
+n02660640
+n12124818
+n10370955
+n02663211
+n02414209
+n13187367
+n03258577
+n04375241
+n07617932
+n12240477
+n03417202
+n07595649
+n03839424
+n03087245
+n02431441
+n04396335
+n03484809
+n03426285
+n03592931
+n02912319
+n03488887
+n12187891
+n07592400
+n12918609
+n07858114
+n07567980
+n01548694
+n02726210
+n02406859
+n10147262
+n05458576
+n02848921
+n03503233
+n02587618
+n03465151
+n03582508
+n11654293
+n03695452
+n02197185
+n04223170
+n10243273
+n03149135
+n02842809
+n03669534
+n03857291
+n02147328
+n12278865
+n12733428
+n03264906
+n09924195
+n10432189
+n12203896
+n03892728
+n12360958
+n10418735
+n01650901
+n12420722
+n03341606
+n02557909
+n07751858
+n03483971
+n12019035
+n03991202
+n02072040
+n03129848
+n04505345
+n02405440
+n03901974
+n11656123
+n11552976
+n10291822
+n10108018
+n09902731
+n03325691
+n12646072
+n04134170
+n12097396
+n07564008
+n01624305
+n03421117
+n02776007
+n10792856
+n07818133
+n03227184
+n10198437
+n04157099
+n12743009
+n07820960
+n12749456
+n13035925
+n05262698
+n03422771
+n02878628
+n12140903
+n07820297
+n03524745
+n09901921
+n03170872
+n10039946
+n12638964
+n11989087
+n03461988
+n04287451
+n04298053
+n07882420
+n04002262
+n02734835
+n11707827
+n07756641
+n12808007
+n10069981
+n12637123
+n12947895
+n04363082
+n04292080
+n11858077
+n04535252
+n12646397
+n12283147
+n12321077
+n02746595
+n02895328
+n07624924
+n12537253
+n11952541
+n02181477
+n01440160
+n03878828
+n12861541
+n02869563
+n04242084
+n03197201
+n09396608
+n04291992
+n07845863
+n04314522
+n12843557
+n04029647
+n12146654
+n13147386
+n12954799
+n11920133
+n03038480
+n03213715
+n02971473
+n04149374
+n04230387
+n00444340
+n11859275
+n07564796
+n02948403
+n10186068
+n04315713
+n02366002
+n02670935
+n13208302
+n10225931
+n07826340
+n04102872
+n02259708
+n11855842
+n09941089
+n08896327
+n10237464
+n12084158
+n03764995
+n03627954
+n12384375
+n10341343
+n07876189
+n04573379
+n07904293
+n07840520
+n12038038
+n03005147
+n10483799
+n02978367
+n01484285
+n13094273
+n04539053
+n01748389
+n10146816
+n07815839
+n12991837
+n03294604
+n03588841
+n04055180
+n03209477
+n09917345
+n04393913
+n12337391
+n12126084
+n01882125
+n07688130
+n02814116
+n09640715
+n12679593
+n12596345
+n03029925
+n11761650
+n04457157
+n12683096
+n07709881
+n03841290
+n13157684
+n07927836
+n03523134
+n03690279
+n10187491
+n12451070
+n02682311
+n03978815
+n11806679
+n07808022
+n01386354
+n03622526
+n02369293
+n11885856
+n02289610
+n12663359
+n02624987
+n13173488
+n03027001
+n07896765
+n11935330
+n07814790
+n04242704
+n09959142
+n07589543
+n03551582
+n07843117
+n03556992
+n02060569
+n04000998
+n03825271
+n11946918
+n02874750
+n03479502
+n09919451
+n02176747
+n02080713
+n03400972
+n10222170
+n07926785
+n07852302
+n03012373
+n10438842
+n12868019
+n03634034
+n04210591
+n07853560
+n12374862
+n09248399
+n04355115
+n12908093
+n12906498
+n12875269
+n02791665
+n03146777
+n02854378
+n12414159
+n07821610
+n07595180
+n12238913
+n12141385
+n10761190
+n12165758
+n01653223
+n12956367
+n03695753
+n12416703
+n12346813
+n03405111
+n04304215
+n01624212
+n12674895
+n09850760
+n12407715
+n04156040
+n11610437
+n03395256
+n09970822
+n04229959
+n02530831
+n07870894
+n12098524
+n12828379
+n04057215
+n10751152
+n10053439
+n03674270
+n07869291
+n12256920
+n02535163
+n04282231
+n02136452
+n02365108
+n10328328
+n02315487
+n03325403
+n09231117
+n03342657
+n09980985
+n10702167
+n11961871
+n02065263
+n12857779
+n03219612
+n07805966
+n10699981
+n07691863
+n12831932
+n04179126
+n10208189
+n09765118
+n07922147
+n01631512
+n01947997
+n01405616
+n01892030
+n07827896
+n12964920
+n07749870
+n03276696
+n10020670
+n11828577
+n07624666
+n10590146
+n02407521
+n10253703
+n03270854
+n11610047
+n12981443
+n12413642
+n12302565
+n03177059
+n04594114
+n10227985
+n07728391
+n10395073
+n02810270
+n03569293
+n07812046
+n03843316
+n12477401
+n03802643
+n07618029
+n10755648
+n12837803
+n12454556
+n01636127
+n02809241
+n03270165
+n12035631
+n02962414
+n09750641
+n01793085
+n04346003
+n07922041
+n04164002
+n12499979
+n03301291
+n07921834
+n09656077
+n07599161
+n13155611
+n10194231
+n10063635
+n03601442
+n10366276
+n00475661
+n03943714
+n10377291
+n02624551
+n02568447
+n07589458
+n09691858
+n02685995
+n11919975
+n01690466
+n13211020
+n04114069
+n10530383
+n04200908
+n12631932
+n07916437
+n03219859
+n07918309
+n10368291
+n10253479
+n03317889
+n13206178
+n02821415
+n10592811
+n12557064
+n12872458
+n10212231
+n07926346
+n09695514
+n09741816
+n03964611
+n07812913
+n09703708
+n02587479
+n10593521
+n03485309
+n03776877
+n12289433
+n07716504
+n10580030
+n03061893
+n03206158
+n09710041
+n04266849
+n07864065
+n12767648
+n02333190
+n12295429
+n02406432
+n01799679
+n07861983
+n02201626
+n03441582
+n03653975
+n02834506
+n12263204
+n10672662
+n03072682
+n03410423
+n11620389
+n04542095
+n07910970
+n03697913
+n02706806
+n09736798
+n12318965
+n07938594
+n12032429
+n03191776
+n04210288
+n01422335
+n03236093
+n11881189
+n02247216
+n12338146
+n03104512
+n00474881
+n04172230
+n01461315
+n04400109
+n10646140
+n02215621
+n10096126
+n03019806
+n11809754
+n02492948
+n10741367
+n10308504
+n07875560
+n02523110
+n07738224
+n02015797
+n10499631
+n03025165
+n03284308
+n03508881
+n10441037
+n10757492
+n07608721
+n09755241
+n04264361
+n04394421
+n03776997
+n03175843
+n04476526
+n02523877
+n13196369
+n10190122
+n03172738
+n02709763
+n02070624
+n04563560
+n04017807
+n03824589
+n07817758
+n03222722
+n01542433
+n13173259
+n04458201
+n12869668
+n12580786
+n02407763
+n09760913
+n10530571
+n11752798
+n09612700
+n07601175
+n11632376
+n10641223
+n03158668
+n03411208
+n01413457
+n03684740
+n10248008
+n12656528
+n11849271
+n07771891
+n12067433
+n12389727
+n11734698
+n04042204
+n07825399
+n12621945
+n07624757
+n03180732
+n09741331
+n10246317
+n04030414
+n07821107
+n04524716
+n03789603
+n12867449
+n10249869
+n02434415
+n07614103
+n03333349
+n04602840
+n09923996
+n02658811
+n13033879
+n03663433
+n02873623
+n07837545
+n12436907
+n02675077
+n01500854
+n04435552
+n01790304
+n11687789
+n03443543
+n09733459
+n01606177
+n12245885
+n11721642
+n02201497
+n12010815
+n04594742
+n02755984
+n07927716
+n04245218
+n03134118
+n13214485
+n12294542
+n12713521
+n03556173
+n12650038
+n07719058
+n04319774
+n10443830
+n10019187
+n09720702
+n07926442
+n10402709
+n03989777
+n11699751
+n09613118
+n02965122
+n04221076
+n01861330
+n12837052
+n02975589
+n09668437
+n03012499
+n01418498
+n12451566
+n03585778
+n07692517
+n09672590
+n09741999
+n09748648
+n07621264
+n03482001
+n10185148
+n01542168
+n12536291
+n07846557
+n11840476
+n03130866
+n02631775
+n11730015
+n03715275
+n07680168
+n12175370
+n05427346
+n03665232
+n08611421
+n11730458
+n02413484
+n09783884
+n07888378
+n04611351
+n02247655
+n02136794
+n11649359
+n01382033
+n07889193
+n10405540
+n03510384
+n04420720
+n03585875
+n03812789
+n01835769
+n12139921
+n09762011
+n10103228
+n03477410
+n11930788
+n10064831
+n12311045
+n07681805
+n03136504
+n12887713
+n03886940
+n03130233
+n10197392
+n12333961
+n07672914
+n12723062
+n12599661
+n04268799
+n03696909
+n12809868
+n12452256
+n10710778
+n02571652
+n12117326
+n02450677
+n03041265
+n12544240
+n01966377
+n10252354
+n02378625
+n09814488
+n10569011
+n13067330
+n07928998
+n07890970
+n02187279
+n02592371
+n07846802
+n03475961
+n05448704
+n10410996
+n02851795
+n10093167
+n12468719
+n09876701
+n03057724
+n03469031
+n02344270
+n04248209
+n02687682
+n04467899
+n12897788
+n03436656
+n12539832
+n09906704
+n03190458
+n11843441
+n12130549
+n11823756
+n03153246
+n03684489
+n04160036
+n02908951
+n12855365
+n03518230
+n12225222
+n12933274
+n10432957
+n02921406
+n10156831
+n12239647
+n02826812
+n03411927
+n11602091
+n13200986
+n04244847
+n01330126
+n14938389
+n03001540
+n04387531
+n03423099
+n07608533
+n11723986
+n07600394
+n12529500
+n02403820
+n02587300
+n10333317
+n07935288
+n12680652
+n01449980
+n12153914
+n07803310
+n11741797
+n01881857
+n13081999
+n08644045
+n02061217
+n02173784
+n02660519
+n03104019
+n13137951
+n04538403
+n02621258
+n04515729
+n04165945
+n11919761
+n13078021
+n07861247
+n11959259
+n11801665
+n04070545
+n13210597
+n10218043
+n10717337
+n01365885
+n10718952
+n11979187
+n03880032
+n03798610
+n03477303
+n01876667
+n11860208
+n03401721
+n03360133
+n13230843
+n13194758
+n13190060
+n02564935
+n13894154
+n12754311
+n07697408
+n13171210
+n02035402
+n03736147
+n10396337
+n04554998
+n02793930
+n04126852
+n03654826
+n09411295
+n06255613
+n01680983
+n10261862
+n01581874
+n10378780
+n10646641
+n03539103
+n03351151
+n04349913
+n03906106
+n02370525
+n03319576
+n04113968
+n09693244
+n02945964
+n03344509
+n04117216
+n03889626
+n03557840
+n09800469
+n04280487
+n07890890
+n12147835
+n12295237
+n03883664
+n04436992
+n02922877
+n10099002
+n01988203
+n10056719
+n11646517
+n03672521
+n04568713
+n10111358
+n03606347
+n04047733
+n12320627
+n10251612
+n10460033
+n01742447
+n11917835
+n10443032
+n13079567
+n04363671
+n10788852
+n10482587
+n03308614
+n12741586
+n12938667
+n04539407
+n01630148
+n02303777
+n13050940
+n04552551
+n02341288
+n04098169
+n04110439
+n11625391
+n12259316
+n02822762
+n10631131
+n04089152
+n03571439
+n04558199
+n12656909
+n03170292
+n02877642
+n12771890
+n03033267
+n12658603
+n13354021
+n12855886
+n11840246
+n03619050
+n07727252
+n12932706
+n13874073
+n01315805
+n02948942
+n12048928
+n03146449
+n10656969
+n09872557
+n03906590
+n04454792
+n12500309
+n04239333
+n01815036
+n09644657
+n10497645
+n02918455
+n07812662
+n04240434
+n10804636
+n11967878
+n04184095
+n11834272
+n05244755
+n02299039
+n12665659
+n12144987
+n07607492
+n11887750
+n13083461
+n04577139
+n09670909
+n07876893
+n02875948
+n04069582
+n10458111
+n10361194
+n09389867
+n01651778
+n11933387
+n13193143
+n12834190
+n03516266
+n02184589
+n10041373
+n02809605
+n04064213
+n04957589
+n12643113
+n02582721
+n07911061
+n07921360
+n10369417
+n10527147
+n04104925
+n03707372
+n01386182
+n10374849
+n09902851
+n08559155
+n02332447
+n11649150
+n11722036
+n01823740
+n04592356
+n10002257
+n10661732
+n07562379
+n07597263
+n04036776
+n13112201
+n09842288
+n07738105
+n04545984
+n09635973
+n02885233
+n02756854
+n07808479
+n03029296
+n01543383
+n02884450
+n09843716
+n04224395
+n10576676
+n10140051
+n07919894
+n07806879
+n10212780
+n09478210
+n12017127
+n03770224
+n07606191
+n03555217
+n09715165
+n12270460
+n12129738
+n11739365
+n02303585
+n07818029
+n05314075
+n03019304
+n09859975
+n09454744
+n13151082
+n12586989
+n00455076
+n07741357
+n04957356
+n08659242
+n04577293
+n04126244
+n03131193
+n12428242
+n03569494
+n03781594
+n07743384
+n02892392
+n12576695
+n12199982
+n07693439
+n07719756
+n11884384
+n03043798
+n12351091
+n03690168
+n02214499
+n01839949
+n01831360
+n12642964
+n02957862
+n03125588
+n12883628
+n04002371
+n10747965
+n09744462
+n02853745
+n13030337
+n12156679
+n02761034
+n12587487
+n03374570
+n12728322
+n01731764
+n07918706
+n03696445
+n03185868
+n02805283
+n03868763
+n02202124
+n12369665
+n12449934
+n12650229
+n02656301
+n07743723
+n11702713
+n02927053
+n03916385
+n01486010
+n03986071
+n04188064
+n13897528
+n12414329
+n07718068
+n07837755
+n11735570
+n10464542
+n04091466
+n01315581
+n10374943
+n03989898
+n13220525
+n04076052
+n04062179
+n02414442
+n04414101
+n04446162
+n00480885
+n03536568
+n03773835
+n10728998
+n12643877
+n02255391
+n03799610
+n07847585
+n00446411
+n11910666
+n03139998
+n02296276
+n02889996
+n02786611
+n10363445
+n07854348
+n08583682
+n09912681
+n07896422
+n02368821
+n11935953
+n12185254
+n11738547
+n03809211
+n02448318
+n13066979
+n01987076
+n12009047
+n12839574
+n13174823
+n07902520
+n03369866
+n13209129
+n02593191
+n03853291
+n02620578
+n10071332
+n01813658
+n09895480
+n10134760
+n01316734
+n07845166
+n03175983
+n13132156
+n12814960
+n12883265
+n03637787
+n04310507
+n04133114
+n03900194
+n04129688
+n04449550
+n01805321
+n01717467
+n01573627
+n12271451
+n11722621
+n09976917
+n12232280
+n12905135
+n03451253
+n01655344
+n12346986
+n11987511
+n10517283
+n02941845
+n12730370
+n03121190
+n07917874
+n10023656
+n10151133
+n07695187
+n03258456
+n10639238
+n10682713
+n02085019
+n12343753
+n10749928
+n04595611
+n04410565
+n08500819
+n07719980
+n04016479
+n03232417
+n03469832
+n09834885
+n07925327
+n10094782
+n03632100
+n12734215
+n09845849
+n04047139
+n10743124
+n02604954
+n12270278
+n03036244
+n11991777
+n10168012
+n02561803
+n10531109
+n10344319
+n03804211
+n10513938
+n10732967
+n09917481
+n02950482
+n03148808
+n07910245
+n07925423
+n07889990
+n04302988
+n07745357
+n04346511
+n07573563
+n02564403
+n12084400
+n10030277
+n09815455
+n04388473
+n12404729
+n10576316
+n12072210
+n11811059
+n01824344
+n03556811
+n03175301
+n07586485
+n13137010
+n11986729
+n04967561
+n03881404
+n07692114
+n07874995
+n02770585
+n07853345
+n02775689
+n04328580
+n01323781
+n07773428
+n02414043
+n02794474
+n02352932
+n07569873
+n12374705
+n03606106
+n04267246
+n04369485
+n11934239
+n12705698
+n11841247
+n07868045
+n03525693
+n12358293
+n02937010
+n09658398
+n12711182
+n03516647
+n04591631
+n10228712
+n11930353
+n03471779
+n12594324
+n02251593
+n04455579
+n02542017
+n03381450
+n03320845
+n12364940
+n09657748
+n12412987
+n01840412
+n10570704
+n10117267
+n03251280
+n10195261
+n12178129
+n12285049
+n02177775
+n10117415
+n03707766
+n04475309
+n05604434
+n03999064
+n12127575
+n01972131
+n09793946
+n01635176
+n02791532
+n07564101
+n07876460
+n02813981
+n10764719
+n03638743
+n12761702
+n02125689
+n11657585
+n09923003
+n13069773
+n02683183
+n04324515
+n11936946
+n12862828
+n02659808
+n02619861
+n13175682
+n11648039
+n07768139
+n12512674
+n12108613
+n02947977
+n12899971
+n03845107
+n07689490
+n02081927
+n07619508
+n10248377
+n10300041
+n10761326
+n09655213
+n02675522
+n04963111
+n01995686
+n03256631
+n10684630
+n04471912
+n12728864
+n03870546
+n02829246
+n09725546
+n03409920
+n13194918
+n10055297
+n02513248
+n01462803
+n11782266
+n13094145
+n07839478
+n13916363
+n07932454
+n09722817
+n07774479
+n10386874
+n12832822
+n01599388
+n02964295
+n04349189
+n07689313
+n11653126
+n02309841
+n02064000
+n04410663
+n04562122
+n02358712
+n09901786
+n10441124
+n12882158
+n12815668
+n10159289
+n01641930
+n03315990
+n12271187
+n10277638
+n07815163
+n12903014
+n07915366
+n04412300
+n01324799
+n03408264
+n09452291
+n03019198
+n11890884
+n10355806
+n03186199
+n04013600
+n12541157
+n06259898
+n06273294
+n11946051
+n01671705
+n04415257
+n01905321
+n04050600
+n12604460
+n04051439
+n02929184
+n11765568
+n10025060
+n02396796
+n04033287
+n13027557
+n03127531
+n10308066
+n09729062
+n01593553
+n02476567
+n07609728
+n12970293
+n01419888
+n03215749
+n01684741
+n13067672
+n03870290
+n07846359
+n12961536
+n03356559
+n07727140
+n09843602
+n02378755
+n12044041
+n01977485
+n07718920
+n12060546
+n04265428
+n12237855
+n04006067
+n10227266
+n04361937
+n12134486
+n10097842
+n02264591
+n03912821
+n07594155
+n03116163
+n11771924
+n04155457
+n12394118
+n10507380
+n01844746
+n11901452
+n03024233
+n03383562
+n11806814
+n10062716
+n04204755
+n08613733
+n12907671
+n03533654
+n09826605
+n03109033
+n07606419
+n03537085
+n11615812
+n07695504
+n11694300
+n04520962
+n09971839
+n02664285
+n03402511
+n02061560
+n13133140
+n03548195
+n12877493
+n02425086
+n12845187
+n12488454
+n02975994
+n02071028
+n01457407
+n03685486
+n07605282
+n07771405
+n07827554
+n10538733
+n03438780
+n04379096
+n12686496
+n10001764
+n11848867
+n12125001
+n09886540
+n03275566
+n01442710
+n12789554
+n07858197
+n12722071
+n12868880
+n10441694
+n12409651
+n07727741
+n12289585
+n04069166
+n12686877
+n03723439
+n07815956
+n12543455
+n10778044
+n02200630
+n10074841
+n12640284
+n12589841
+n07592317
+n07866571
+n12712626
+n04228422
+n11711289
+n03590475
+n13081229
+n03045800
+n03639230
+n02874214
+n07615954
+n03204134
+n12053962
+n12769219
+n15006012
+n09873769
+n11818636
+n01959029
+n03349599
+n12227909
+n07576969
+n03638180
+n07742224
+n03390673
+n02344175
+n03770520
+n00447361
+n13235319
+n01983674
+n10061882
+n04267165
+n12493868
+n12713358
+n02930339
+n10493419
+n12918810
+n02582220
+n12248359
+n02644501
+n04596492
+n04538249
+n07905618
+n13230190
+n07808268
+n15005577
+n09351905
+n12730544
+n11937023
+n04024137
+n02238358
+n11646955
+n11618079
+n09849990
+n04060448
+n04220805
+n12725940
+n12004120
+n01484562
+n02669442
+n12132956
+n01756916
+n03980986
+n02256172
+n07716750
+n12119390
+n04047834
+n11934041
+n12828977
+n03648219
+n11873612
+n12909614
+n04397860
+n03908111
+n03261395
+n03695616
+n11668117
+n12014355
+n02896074
+n03988758
+n04426184
+n10328696
+n02477028
+n04507326
+n04320871
+n03256472
+n01919385
+n03988926
+n13182164
+n07826250
+n03207548
+n01396617
+n04369618
+n07913774
+n13229951
+n03410022
+n12728508
+n01997119
+n03598783
+n01341090
+n03879456
+n01736796
+n02864122
+n13879816
+n02684962
+n12246037
+n02433729
+n04364397
+n09881358
+n02950120
+n03326371
+n02243878
+n01790812
+n12990597
+n03330947
+n07764486
+n03332173
+n10006177
+n03347472
+n07619301
+n10106509
+n12365285
+n01732989
+n07678586
+n04098795
+n07733847
+n03994297
+n12872914
+n02762909
+n07766530
+n13198482
+n02395855
+n12273515
+n04487894
+n07847047
+n12488709
+n02859557
+n04255768
+n02360933
+n03267696
+n03152951
+n10188715
+n10520544
+n13065514
+n02900594
+n03699754
+n01319187
+n01949499
+n10417424
+n01603000
+n12062105
+n09683180
+n09863339
+n01880716
+n10702615
+n03893935
+n10495555
+n04131499
+n02957252
+n02113892
+n07724078
+n12246941
+n04303095
+n01751215
+n04213530
+n12117695
+n12418507
+n01922948
+n12131405
+n13188767
+n01481498
+n03174079
+n02407172
+n11613867
+n10152616
+n10119609
+n04158250
+n11695085
+n07855105
+n02854630
+n03768683
+n12739966
+n12266984
+n12819141
+n12732605
+n13205249
+n11917407
+n01607429
+n02694279
+n07815294
+n06614901
+n07846471
+n12119717
+n02595339
+n12366186
+n10693235
+n12263410
+n12484244
+n10337488
+n04146976
+n01469723
+n07872748
+n03238879
+n12000191
+n07846938
+n03116008
+n12139196
+n04013176
+n10317963
+n12140511
+n02065726
+n01649556
+n10316862
+n01755952
+n04385079
+n12770529
+n02814338
+n01675352
+n11874423
+n01369484
+n10537708
+n07618281
+n07821404
+n02297819
+n03238762
+n03357081
+n02628600
+n07830986
+n12507823
+n04431925
+n11955532
+n03429771
+n10281896
+n12383737
+n12760875
+n09673091
+n12892013
+n06625062
+n04503269
+n03674842
+n12338979
+n04268275
+n12033139
+n11767877
+n07812790
+n12676134
+n04037873
+n10097477
+n12310638
+n12258101
+n09391386
+n13196738
+n13866626
+n12720354
+n10106995
+n07843220
+n03878294
+n04101375
+n07733217
+n10220080
+n04601938
+n10778148
+n12973937
+n10556825
+n12256708
+n12583855
+n04259202
+n07628181
+n04226962
+n02777402
+n09674412
+n12188635
+n03776167
+n04504038
+n04156591
+n02270945
+n02264021
+n07826653
+n02980203
+n02059852
+n02102806
+n12921660
+n04477725
+n10107173
+n12837466
+n02697022
+n04350688
+n12110236
+n02177196
+n07899976
+n12639910
+n02368399
+n10009162
+n03950647
+n09248153
+n02425532
+n04044955
+n11933257
+n03460899
+n10147710
+n02379743
+n02413917
+n02890804
+n12915140
+n02146879
+n07915800
+n01787006
+n03646809
+n11677902
+n04065909
+n02088992
+n02887832
+n10115946
+n02306825
+n03719560
+n10456696
+n03758220
+n12625003
+n04021503
+n07563366
+n02531625
+n10304650
+n12855710
+n09735654
+n07853762
+n03512030
+n12898342
+n02297938
+n12618727
+n04082344
+n12953712
+n12617559
+n03035715
+n02532451
+n05399356
+n03602686
+n10082423
+n04607759
+n07581607
+n07594737
+n04030965
+n03464628
+n12103894
+n03039353
+n03522990
+n02964934
+n03169063
+n10153865
+n09653144
+n09941571
+n12907057
+n07768318
+n02600798
+n02187150
+n01811243
+n12252383
+n04495555
+n07678953
+n13181244
+n13069224
+n13184394
+n12765402
+n03471347
+n10208847
+n03697366
+n09840435
+n02506947
+n09709673
+n07928578
+n11935715
+n07848936
+n02757927
+n01999767
+n02245443
+n10260473
+n13898645
+n02701260
+n07840219
+n11785875
+n12385830
+n12017664
+n12145148
+n04530456
+n01929186
+n02384741
+n04113038
+n03296217
+n09723819
+n03766697
+n12143215
+n09929202
+n02684248
+n12119539
+n03566555
+n12941220
+n04124573
+n10750188
+n07733005
+n04230707
+n03829857
+n07756838
+n12244458
+n12543826
+n03514129
+n02762169
+n04435870
+n03342863
+n09745324
+n12369476
+n11652039
+n03915320
+n07746749
+n07608641
+n12642600
+n02389943
+n12137791
+n04111962
+n12493426
+n12454793
+n01455317
+n10728117
+n03281524
+n12195734
+n12353431
+n02477329
+n02678010
+n04557522
+n10162354
+n14942411
+n07806043
+n12274151
+n09835153
+n03983499
+n04086663
+n07851926
+n07868684
+n11926976
+n03972146
+n04310604
+n09675799
+n13880704
+n13173132
+n07577918
+n10720964
+n11937102
+n03349020
+n12340581
+n03725506
+n03477143
+n10578162
+n01731137
+n03382104
+n11616852
+n01493829
+n09327077
+n03856335
+n03321843
+n02375757
+n02118643
+n08500989
+n03496486
+n04140777
+n12858987
+n02845293
+n04093157
+n07819682
+n10394786
+n12289310
+n02901620
+n01559160
+n07919165
+n12648196
+n11774972
+n11995396
+n10543937
+n10154013
+n03977158
+n01884476
+n12266528
+n11906127
+n12661538
+n04396650
+n12761905
+n04175574
+n10181878
+n12017326
+n12876899
+n09744346
+n07741706
+n04451636
+n07735981
+n03751590
+n03140546
+n03070396
+n03091223
+n12071477
+n07562017
+n09981092
+n09847344
+n12552893
+n12371202
+n02245111
+n01598271
+n04400499
+n02298095
+n15048888
+n02967170
+n04030161
+n10676434
+n01556514
+n13235766
+n02538562
+n12603672
+n03941586
+n02449183
+n07567611
+n12923257
+n02296021
+n11730933
+n12497669
+n02917742
+n07875926
+n02714535
+n13142182
+n02878107
+n07861334
+n02682811
+n03730655
+n03681813
+n12970733
+n02132320
+n12436090
+n07931280
+n04295353
+n12982590
+n01783017
+n13164501
+n02424589
+n01499732
+n12650805
+n04543509
+n10369699
+n03439631
+n13160116
+n07831663
+n05449196
+n13025854
+n10169241
+n02847461
+n10734963
+n13213397
+n03343234
+n12275317
+n02793414
+n04300509
+n01803893
+n11617878
+n02179192
+n03637480
+n04514648
+n03087521
+n10478827
+n11757190
+n12919195
+n04532504
+n01736375
+n04015786
+n04545471
+n12668131
+n04472961
+n14786943
+n07584938
+n02498743
+n07744559
+n10010062
+n10101308
+n07832099
+n02601767
+n10473453
+n02451575
+n02496052
+n03696746
+n12669803
+n07904072
+n04290762
+n11737125
+n07760755
+n12553742
+n12068138
+n12630999
+n02390938
+n02202678
+n02216740
+n02679961
+n13173697
+n11828973
+n02287987
+n04585318
+n10360366
+n07745661
+n03474352
+n07934800
+n12677612
+n03692272
+n13092240
+n04230487
+n11846312
+n12433952
+n11793403
+n03056873
+n05454833
+n12517077
+n12682882
+n02649218
+n09425344
+n07878283
+n02795978
+n10064977
+n12754174
+n02945813
+n01750743
+n03150661
+n13880415
+n12337800
+n04017571
+n09754907
+n04456734
+n02967540
+n10621400
+n11744471
+n01971620
+n04148285
+n10781817
+n11991549
+n12305654
+n03943833
+n10330931
+n12918991
+n01783706
+n11933099
+n12931231
+n07589967
+n09666349
+n07853445
+n12714949
+n03548533
+n04158672
+n03809802
+n03080309
+n12800049
+n02578454
+n02834027
+n10067600
+n03044671
+n04198233
+n07930205
+n04357930
+n12221522
+n11957317
+n03085781
+n03723885
+n03614383
+n02661618
+n04292221
+n03426574
+n03838024
+n10442093
+n12399534
+n01450950
+n07876550
+n11937446
+n09870096
+n02631628
+n05460759
+n01710177
+n03660562
+n04283784
+n01497738
+n02232223
+n04209811
+n12837259
+n02864987
+n04499810
+n12654857
+n03493792
+n09688233
+n02312912
+n10057271
+n07606058
+n03258192
+n10507565
+n11930038
+n08679269
+n03812263
+n11662128
+n04085574
+n07643577
+n03981094
+n02796412
+n02513939
+n07686634
+n07936979
+n03168774
+n03816394
+n07625324
+n04138131
+n10383094
+n10222716
+n10381981
+n12254168
+n13223090
+n03056583
+n09910556
+n03277004
+n12649866
+n02089725
+n03688707
+n09665367
+n07849506
+n02843909
+n13141797
+n02477516
+n09710886
+n03835941
+n11734493
+n10778711
+n10007809
+n02038141
+n12766043
+n02353172
+n02030224
+n10762212
+n06274921
+n13033396
+n03560860
+n01961234
+n13868515
+n03216199
+n01553527
+n04429038
+n10211036
+n02150885
+n02435517
+n02755675
+n09699020
+n12566331
+n03909516
+n02903727
+n02594942
+n04173172
+n04125692
+n12251001
+n02412787
+n01649412
+n01411450
+n01774097
+n09912907
+n03162556
+n07566231
+n12267534
+n03928589
+n04142327
+n11771147
+n07832592
+n04155177
+n07937621
+n07839864
+n03201895
+n13095013
+n10298271
+n03059103
+n03784793
+n11925450
+n03288742
+n02809364
+n04108999
+n04449449
+n03726233
+n07854455
+n03692136
+n12018447
+n03374282
+n06008896
+n07598928
+n03577312
+n04604806
+n09892513
+n04370600
+n08238463
+n01793159
+n07822687
+n03242390
+n07685303
+n03822361
+n01996280
+n10505942
+n06596845
+n04219580
+n12056990
+n10579062
+n10240082
+n10298202
+n07711907
+n03905730
+n12222900
+n07598622
+n04415815
+n12389932
+n12154114
+n04210012
+n12500751
+n03729402
+n12122918
+n04572121
+n12804352
+n02415130
+n12780325
+n11639084
+n12768933
+n02253494
+n13217005
+n03567788
+n12304286
+n10703480
+n07766723
+n05455113
+n07741804
+n12186839
+n01687128
+n01350701
+n03260206
+n07876026
+n12528382
+n04125541
+n10457444
+n01606097
+n11717399
+n04598416
+n12899166
+n09748101
+n12160125
+n07608980
+n07843348
+n02409038
+n02571167
+n09980805
+n09706029
+n02495242
+n12765846
+n10373525
+n12321873
+n03047171
+n12365462
+n03752398
+n02662993
+n10316527
+n10728233
+n06273207
+n01733214
+n12297846
+n12755876
+n02428842
+n02289307
+n04536465
+n03253187
+n02297294
+n05584746
+n03117642
+n12189779
+n10338231
+n07599649
+n04559994
+n12710917
+n09966470
+n12470907
+n04499300
+n12403075
+n11837743
+n02269657
+n12599185
+n07618587
+n03996004
+n12851094
+n03392648
+n01319001
+n12826143
+n12369845
+n01814549
+n10056103
+n12854193
+n02267483
+n04019881
+n03490649
+n04268142
+n10801802
+n12315060
+n10149436
+n04563790
+n09865068
+n03000530
+n10657556
+n07840672
+n12118414
+n02856013
+n02900459
+n04094859
+n12079523
+n11827541
+n12236160
+n02904505
+n02846619
+n09842823
+n12926039
+n02146201
+n03195799
+n12815838
+n09899289
+n01483021
+n02519340
+n05453815
+n10329035
+n02494383
+n09742927
+n13220355
+n03212406
+n11759609
+n10061431
+n12095281
+n04262530
+n03799240
+n02426176
+n04608809
+n12230540
+n13880551
+n11741175
+n11858814
+n11723452
+n07590841
+n12604845
+n10342543
+n12760539
+n09270657
+n02563079
+n10643937
+n12843316
+n01651641
+n07838811
+n04359034
+n07758260
+n02762725
+n11726433
+n03114743
+n01952029
+n12321395
+n11930571
+n12337922
+n12427946
+n12001294
+n12551457
+n13235011
+n02290340
+n06419354
+n12408873
+n01741442
+n12308447
+n10243872
+n03658635
+n03694761
+n02570484
+n12912801
+n04158002
+n02417785
+n01332181
+n03703075
+n10283366
+n03142431
+n02779609
+n02300554
+n09868782
+n10323752
+n03166809
+n03394149
+n02827148
+n02186717
+n01350226
+n03344784
+n03555996
+n04498873
+n13157481
+n04519887
+n12028424
+n12349711
+n10471640
+n07741235
+n04032936
+n12357968
+n10228592
+n13178284
+n04168840
+n13239177
+n03561573
+n02566489
+n11807696
+n07681264
+n02566665
+n10456070
+n10063919
+n10492727
+n01788579
+n11977660
+n02036228
+n02738978
+n03989349
+n10332953
+n12949361
+n09901502
+n07839730
+n13146928
+n10152306
+n04170515
+n11602478
+n02522722
+n01333610
+n13030852
+n02143891
+n12807624
+n04542329
+n12243693
+n12036226
+n13917690
+n02553028
+n02752199
+n10594857
+n11627714
+n04348070
+n13171797
+n04612257
+n07934373
+n04536765
+n02244515
+n04526800
+n04546595
+n02551668
+n12143405
+n07871588
+n07858484
+n03628728
+n13179804
+n03242264
+n12089846
+n07588688
+n07620047
+n01647466
+n09685233
+n03467254
+n12666369
+n05449661
+n10694939
+n12886600
+n12256522
+n04006330
+n03317673
+n04316815
+n12222090
+n04022866
+n04088441
+n07617526
+n10782362
+n04355821
+n13901490
+n12508618
+n03849943
+n04503499
+n13193466
+n09754633
+n07583978
+n13911045
+n07643679
+n12054195
+n10692090
+n04032509
+n10146927
+n02031298
+n04002629
+n04035748
+n10712229
+n02866106
+n07909504
+n04540397
+n06266878
+n10219879
+n12567950
+n07853648
+n03191561
+n07856045
+n12646197
+n03317510
+n10515863
+n13198054
+n02808829
+n12889579
+n02698473
+n09924437
+n03595055
+n12306270
+n07857356
+n09715303
+n03024518
+n04323519
+n09629065
+n04178668
+n12748248
+n02308618
+n07873198
+n10564098
+n03007297
+n04036155
+n02143439
+n10507482
+n12267931
+n03956331
+n12888234
+n04066476
+n07813107
+n02736396
+n10306496
+n12324388
+n01744555
+n01649726
+n06596179
+n03616091
+n07754279
+n02072493
+n12408280
+n04314632
+n02412700
+n04030846
+n09833997
+n03599964
+n05258627
+n12572759
+n12136581
+n02419056
+n12453714
+n11652217
+n03878511
+n03907908
+n12223160
+n10514121
+n04153330
+n12163279
+n12623818
+n03495671
+n13222985
+n10354754
+n04365112
+n12384680
+n12538209
+n03105214
+n12534862
+n13869045
+n03945928
+n11613692
+n11892181
+n13002209
+n02685253
+n07598529
+n02629716
+n13202355
+n07927070
+n02176916
+n04370955
+n11988132
+n03246197
+n01440467
+n07620145
+n03940894
+n01897667
+n03408340
+n12602612
+n02539424
+n03863657
+n04559620
+n02604480
+n11822300
+n03518829
+n11619845
+n10504090
+n03341035
+n02908123
+n04281998
+n03277602
+n03865288
+n10074578
+n13902793
+n03054605
+n04404200
+n12786836
+n12235051
+n04035231
+n12009792
+n12705458
+n04378489
+n02476870
+n11954798
+n03573848
+n02087314
+n03162460
+n04363412
+n02261063
+n09953615
+n01947139
+n03044801
+n04287351
+n04479287
+n03861596
+n12510343
+n07854066
+n03027505
+n12161577
+n04197878
+n01812187
+n10015792
+n08685188
+n11737009
+n10333044
+n02730568
+n10290813
+n13096779
+n05257476
+n07917951
+n12121187
+n03517509
+n07932762
+n02336275
+n12159942
+n12105981
+n02562971
+n13882961
+n12016777
+n02793684
+n12717644
+n01380754
+n07724173
+n04055861
+n11831297
+n03059934
+n03370646
+n10065758
+n09459979
+n07913644
+n04322531
+n03457451
+n02567633
+n04240867
+n10693334
+n10556704
+n04614844
+n07909362
+n12082131
+n09268007
+n04359217
+n09883807
+n02292085
+n04052346
+n03431570
+n02843465
+n04584056
+n04432043
+n09846142
+n07864317
+n04475749
+n04227050
+n04280845
+n03535284
+n07890617
+n03217889
+n02806762
+n11967315
+n11762927
+n02501923
+n03442487
+n09690083
+n02964634
+n02920164
+n07855317
+n10196725
+n03042829
+n11662937
+n12183816
+n12311224
+n13884261
+n02243209
+n03140771
+n02385002
+n03071288
+n12936826
+n04583022
+n07859142
+n04578112
+n04467506
+n12938081
+n09982152
+n12555255
+n03335333
+n10104888
+n12151170
+n12709349
+n10456138
+n02237868
+n07620327
+n12561309
+n12341931
+n12350032
+n01775730
+n12950796
+n01440242
+n04261767
+n10568915
+n12285195
+n07589872
+n13112035
+n07840395
+n11750508
+n12286197
+n03336168
+n03325288
+n02551134
+n04293258
+n13130014
+n07733124
+n04451139
+n11985903
+n03602365
+n11722342
+n11944751
+n12897999
+n02277422
+n03101302
+n07608245
+n03531982
+n01997825
+n11713370
+n04442582
+n02833403
+n04427857
+n01648356
+n10645223
+n10414865
+n10696101
+n12885045
+n10037080
+n12218274
+n07570530
+n04493259
+n10659042
+n10577710
+n03141612
+n10582604
+n00446632
+n02834642
+n07568389
+n04583888
+n04096848
+n12879068
+n04495051
+n09837459
+n12216215
+n03702440
+n10174695
+n10559009
+n10577182
+n07686299
+n04269668
+n02404028
+n03720665
+n09885866
+n03082450
+n12492682
+n12780563
+n03703463
+n02644360
+n02307910
+n01374703
+n04402342
+n04264134
+n03158414
+n04443433
+n12522894
+n10803978
+n11706942
+n10751026
+n13143758
+n02972934
+n04174234
+n12718995
+n11994150
+n11545350
+n12526754
+n07753448
+n02870772
+n11942659
+n11744108
+n12735160
+n12229887
+n04970312
+n02874336
+n10721819
+n13193269
+n03330665
+n09865162
+n10306595
+n12161744
+n03303669
+n07846688
+n02168427
+n01961600
+n03559531
+n09826821
+n03413124
+n09695019
+n03783873
+n11863877
+n13874558
+n02283617
+n11895472
+n13182799
+n07854614
+n03283827
+n01397690
+n02650413
+n09809279
+n10290541
+n10383505
+n11724660
+n07689757
+n10181547
+n07620597
+n11979354
+n02771547
+n13061471
+n12631637
+n11966385
+n03969510
+n11735977
+n07621497
+n12956588
+n03217653
+n04546081
+n11696450
+n10300654
+n02032769
+n01654863
+n09779280
+n02390258
+n03887512
+n10489426
+n10745770
+n10713843
+n03602194
+n10710913
+n07864475
+n04486322
+n07915213
+n08663051
+n10236842
+n02390738
+n02388453
+n03598385
+n12228689
+n11771746
+n12803226
+n11242849
+n02378149
+n10427223
+n05448827
+n11870044
+n12477983
+n12311413
+n03500090
+n10280034
+n02685365
+n03652389
+n12728656
+n07695284
+n09961198
+n03780799
+n03935883
+n01612955
+n12475774
+n02701730
+n07833535
+n12584365
+n03902220
+n12727960
+n10619492
+n04450465
+n10646780
+n10110731
+n04142175
+n12296735
+n09337048
+n12681579
+n12819354
+n12541403
+n04305016
+n12798910
+n10321126
+n08618831
+n09721244
+n02225798
+n01637338
+n12218868
+n05545879
+n12022382
+n03972372
+n02505063
+n01694311
+n10695450
+n10081842
+n12297507
+n07592922
+n12118661
+n01952712
+n10517137
+n01340522
+n07719330
+n03729482
+n04168541
+n03090710
+n07873679
+n07828378
+n07728284
+n10343088
+n07869937
+n14585392
+n01453475
+n12095412
+n04973020
+n12810007
+n07564515
+n01599741
+n11629047
+n09937802
+n12450607
+n12460146
+n02292401
+n03632963
+n09617696
+n12545232
+n02874642
+n09934488
+n10091349
+n01447946
+n05469861
+n11830400
+n03382533
+n02608547
+n12697152
+n03542727
+n10716576
+n03664159
+n07568625
+n02976815
+n13147532
+n02336826
+n12432574
+n07686461
+n04107598
+n02505998
+n09849167
+n03688066
+n02836513
+n01576358
+n01893021
+n12017511
+n12065649
+n01714231
+n11662585
+n12827907
+n12954353
+n11936199
+n01368672
+n03843883
+n12184095
+n10058411
+n11684654
+n08506347
+n10579549
+n01423302
+n11604046
+n07613158
+n03605504
+n02090129
+n02284224
+n01958435
+n12664469
+n04459122
+n09617161
+n09780828
+n11830252
+n12870048
+n04247544
+n09871095
+n02962938
+n09933020
+n13064457
+n10341243
+n07694169
+n13200193
+n07765728
+n01524761
+n07730562
+n07751737
+n07740855
+n04192521
+n12593122
+n07841037
+n02809736
+n10604275
+n12512095
+n01907287
+n04592596
+n09823153
+n03181667
+n12449784
+n07908923
+n12365900
+n03053976
+n15060688
+n04165675
+n02530637
+n09816654
+n12540966
+n07934152
+n09290350
+n03455802
+n10111779
+n01351315
+n10281770
+n13862552
+n12435486
+n12370174
+n12296045
+n03493219
+n12363301
+n11973749
+n03939565
+n02938321
+n13209270
+n12604639
+n12657755
+n03604536
+n10328941
+n04278932
+n10376890
+n01884203
+n02061853
+n04256318
+n07831821
+n10585217
+n07591813
+n10210648
+n07739035
+n01632308
+n10319313
+n02861777
+n03821145
+n13029610
+n04239900
+n10313441
+n04951716
+n10628097
+n02368116
+n08571275
+n04433377
+n10458596
+n12435965
+n12448136
+n12129986
+n04295777
+n07898895
+n07854266
+n12327846
+n12318782
+n07825850
+n10414239
+n11731157
+n04409911
+n10655442
+n11829205
+n01738306
+n02840515
+n04150371
+n03369512
+n02645538
+n12773917
+n07818422
+n03227010
+n10303037
+n12942025
+n12406304
+n06616216
+n02435216
+n12981954
+n03683341
+n09703809
+n07722666
+n11817160
+n10110893
+n10228468
+n03572631
+n01378545
+n02130086
+n04388574
+n11960673
+n12956922
+n11924014
+n09895902
+n03426462
+n07759576
+n02563949
+n03466947
+n02522637
+n09480959
+n02033882
+n02451415
+n12677120
+n10580437
+n04425977
+n03057841
+n12285512
+n07614348
+n03144873
+n03391613
+n12366870
+n02304657
+n07863935
+n07909714
+n02413717
+n12591702
+n07838659
+n02967407
+n12016914
+n02735268
+n09470027
+n10222259
+n03899100
+n10513509
+n11620016
+n12600267
+n04368840
+n03016209
+n04085017
+n03215076
+n10238272
+n09782855
+n07586179
+n12434483
+n12452480
+n01990516
+n12030092
+n11739978
+n12714254
+n13036804
+n07727377
+n07879560
+n03710421
+n12128490
+n11968519
+n03250588
+n10173579
+n03114041
+n02942015
+n12729164
+n07871065
+n02591330
+n09353815
+n10138472
+n02712545
+n12866333
+n07835823
+n03508485
+n01758895
+n02925385
+n03321419
+n09931418
+n02846874
+n12500518
+n07587819
+n03160186
+n04974340
+n13067532
+n11940349
+n13027879
+n02878534
+n10055566
+n07925708
+n12628356
+n11958499
+n03472672
+n04233295
+n04563020
+n03426871
+n04330109
+n03677682
+n04129766
+n02884859
+n12692521
+n10188856
+n03500971
+n10355306
+n12407545
+n11955040
+n10028541
+n10345659
+n14720833
+n09641578
+n12613706
+n11718296
+n03380301
+n01334217
+n03890358
+n03583419
+n12447121
+n09660010
+n11826569
+n11837351
+n12096089
+n03871860
+n01821554
+n12834938
+n02738449
+n02644665
+n03316873
+n12548564
+n03605417
+n12094401
+n13152339
+n03004531
+n03080904
+n03535647
+n12349315
+n04213264
+n07860208
+n01526766
+n03710937
+n11806521
+n10618234
+n12306938
+n10473562
+n10050880
+n04596116
+n02577164
+n04479694
+n07936093
+n07834286
+n12175181
+n03986857
+n02919648
+n12055073
+n04567593
+n07585015
+n12771085
+n10551576
+n09778783
+n01593282
+n02406952
+n12331263
+n10629329
+n12287195
+n07729225
+n07828041
+n01880473
+n12257725
+n02696246
+n07853232
+n11936864
+n09745229
+n03364156
+n04503155
+n03194297
+n04003359
+n07607361
+n10106387
+n10306890
+n10455619
+n01647180
+n07740115
+n12106323
+n03626272
+n11685621
+n11866706
+n04321121
+n01606978
+n12621619
+n11615259
+n07840304
+n02841847
+n05459769
+n03432360
+n04604276
+n12356395
+n12468545
+n03645168
+n00477827
+n03459591
+n04202142
+n12959074
+n07881625
+n12382233
+n02405692
+n12299640
+n12247202
+n12628705
+n12534625
+n09264803
+n12176953
+n09835017
+n10390807
+n04975739
+n12474418
+n11931135
+n07917791
+n10636488
+n09690496
+n11993675
+n03703203
+n11794139
+n13015688
+n04168084
+n01948446
+n10169419
+n04455048
+n04973669
+n12840502
+n12120578
+n10448455
+n01386007
+n02288122
+n01441910
+n02278463
+n03108759
+n02753710
+n03143400
+n13080866
+n13917785
+n13124358
+n13220663
+n02475358
+n01925916
+n02684649
+n10451590
+n03869976
+n03881305
+n07928264
+n01422185
+n04035634
+n11996677
+n04261369
+n12925583
+n12764008
+n09972587
+n03708962
+n01791388
+n02892626
+n04098399
+n07823369
+n07752874
+n13225244
+n03376771
+n01771766
+n13146403
+n12157179
+n13897198
+n07770869
+n13240362
+n07610502
+n03688504
+n02896856
+n12543186
+n09967063
+n05453412
+n12590600
+n02378870
+n07568241
+n01687290
+n00474769
+n11694866
+n02338722
+n02637977
+n04567746
+n10586444
+n11907405
+n03421960
+n07605693
+n10384214
+n12877637
+n12018363
+n10056611
+n13882487
+n12140759
+n04114301
+n11762018
+n12678794
+n11817501
+n02116450
+n12018530
+n03324629
+n12726528
+n03155502
+n10493199
+n04181083
+n10609198
+n04328703
+n03045074
+n07769886
+n01892385
+n12828520
+n03165211
+n11800565
+n07567139
+n13877547
+n12829582
+n02949084
+n07589724
+n01746191
+n12395463
+n05459457
+n10565502
+n11981475
+n09310616
+n12327022
+n02313709
+n12957803
+n11865276
+n12955414
+n12939479
+n13225365
+n07936459
+n03139089
+n07577772
+n12057895
+n03620353
+n12152031
+n01885158
+n04096733
+n12626674
+n10464711
+n10675609
+n07752782
+n03709960
+n02540983
+n02285179
+n01903234
+n07835701
+n04421083
+n02352290
+n09421031
+n03349367
+n02539894
+n04052235
+n07922955
+n03941887
+n04234260
+n04423552
+n11975254
+n08501887
+n12489676
+n04574348
+n10602119
+n02163008
+n02748491
+n10024937
+n10033888
+n12605683
+n01790398
+n10128519
+n14977188
+n10293590
+n12077244
+n09741074
+n11694469
+n12692714
+n12159804
+n12533437
+n03831203
+n03692004
+n09462600
+n04537436
+n06618653
+n07913537
+n12783316
+n10038119
+n10236521
+n01486540
+n07875267
+n04345787
+n07681355
+n13028937
+n03607186
+n07863107
+n12387103
+n09830926
+n03574416
+n04478383
+n11685091
+n03197446
+n03225458
+n09741722
+n07736527
+n02857907
+n10177150
+n12711398
+n10308275
+n02418770
+n02577662
+n09935107
+n03362639
+n12446908
+n04329681
+n04114428
+n09624899
+n12913144
+n12338034
+n02341616
+n12360817
+n12907857
+n02414904
+n05482922
+n11974888
+n04127117
+n12581110
+n04368365
+n01699254
+n12525753
+n04254450
+n11951052
+n12458874
+n12721477
+n07562651
+n02239192
+n10533874
+n12006306
+n09537660
+n10008123
+n02788386
+n03248835
+n04491312
+n11795580
+n04025633
+n10166189
+n07703889
+n11824747
+n07605198
+n12134836
+n03591116
+n02946753
+n13212025
+n11742310
+n02328820
+n02985606
+n09955944
+n12679432
+n10020366
+n12013035
+n02942147
+n04172512
+n11802410
+n10789709
+n03385295
+n02039497
+n01416213
+n11940750
+n12178780
+n01967963
+n12662379
+n12217851
+n02812631
+n12432069
+n09991740
+n03089477
+n12458713
+n03876111
+n10311661
+n12286068
+n02838958
+n11936369
+n03716228
+n13228017
+n06276902
+n12677331
+n04330189
+n10488016
+n12011370
+n04343740
+n07893792
+n02171164
+n03963483
+n12080588
+n07577657
+n12936155
+n03809686
+n04223066
+n04086066
+n12776558
+n07813579
+n01841943
+n12285705
+n02581482
+n11653570
+n10010632
+n04305947
+n12228886
+n12797368
+n01404495
+n09697986
+n11882237
+n10077879
+n07607832
+n09779461
+n13212379
+n10769188
+n10715789
+n01480106
+n02145910
+n04275093
+n01983829
+n01978010
+n09937903
+n11976314
+n11785276
+n12386945
+n04445782
+n10712374
+n10706812
+n10194775
+n12655062
+n10739135
+n02597972
+n02307176
+n04121342
+n02350670
+n12698027
+n02805845
+n02895008
+n13149970
+n03451365
+n04542595
+n07803895
+n07864198
+n09690864
+n03844550
+n12378249
+n10345422
+n13163553
+n10457903
+n10783539
+n10539015
+n11757017
+n10274173
+n08652376
+n10283546
+n04541777
+n02824152
+n12945177
+n02082056
+n03695957
+n07936015
+n07591162
+n03628071
+n02990758
+n07685118
+n04023422
+n04951875
+n03541393
+n10289176
+n04039209
+n07913180
+n07910799
+n12017853
+n03732543
+n10656120
+n10512859
+n04556664
+n12464649
+n12927758
+n12078451
+n07878145
+n10561320
+n12467592
+n07689217
+n07619881
+n11935187
+n09837720
+n03642144
+n12220019
+n02983507
+n03271260
+n02778588
+n10193650
+n01654083
+n02746978
+n10202763
+n02953552
+n07924366
+n08583554
+n02905886
+n07855603
+n09745834
+n12366053
+n04140539
+n03383211
+n11648268
+n03352961
+n12116734
+n07771539
+n07836077
+n03842754
+n11683838
+n03004409
+n11730750
+n13098962
+n12292463
+n02867592
+n01653026
+n07583865
+n12548804
+n12702124
+n03917048
+n12677841
+n12511488
+n04217387
+n12495670
+n03554375
+n12403513
+n08558770
+n02781764
+n12339526
+n12742290
+n01404365
+n03591798
+n12446737
+n10494195
+n12110352
+n01672611
+n10493922
+n03638623
+n09910840
+n02238594
+n02575325
+n13186546
+n11873182
+n10344774
+n04094060
+n10417682
+n02749169
+n02428089
+n04549721
+n03824284
+n12107002
+n12784371
+n09986904
+n01634227
+n07826544
+n12253487
+n01679005
+n12516165
+n09339810
+n03126090
+n07803408
+n11883945
+n03842276
+n03397412
+n03280216
+n12264786
+n02545841
+n11877860
+n01830479
+n13207923
+n12490490
+n02542958
+n04114719
+n12590715
+n13226320
+n11644872
+n04119630
+n10176913
+n04213105
+n11652966
+n12546420
+n12625823
+n11897466
+n02092173
+n10567613
+n04953678
+n10059067
+n12408466
+n03056288
+n13036116
+n04169597
+n12467197
+n02569905
+n02758490
+n12623211
+n04077889
+n04959061
+n04183957
+n11689815
+n03777126
+n03306869
+n07720084
+n02659478
+n12947756
+n04341288
+n04448185
+n04037076
+n09828988
+n03346289
+n04174705
+n13126050
+n04255346
+n09764732
+n11773628
+n14891255
+n04314107
+n02184720
+n02646892
+n04320598
+n01979526
+n03191451
+n03662452
+n10290422
+n01739094
+n02305636
+n04202282
+n05459101
+n02766168
+n09994808
+n03528100
+n10475940
+n03005619
+n12639168
+n02144936
+n13202125
+n10703221
+n03770834
+n12324056
+n03474167
+n02609302
+n12166929
+n12852570
+n12920719
+n12508762
+n11983375
+n01422450
+n12616630
+n09681107
+n10486561
+n13038577
+n12266644
+n02478875
+n02547014
+n02249809
+n03336742
+n12038760
+n01672432
+n09861287
+n03678879
+n01949973
+n09928845
+n02310149
+n12648693
+n10533983
+n12812801
+n04550676
+n01800633
+n12128306
+n12744142
+n13140367
+n07803213
+n07688265
+n13068434
+n02030568
+n12955840
+n01625121
+n13215258
+n04270576
+n02680638
+n02817251
+n01539272
+n04066023
+n12969927
+n10280598
+n04001661
+n09774167
+n10358575
+n01836673
+n02290664
+n09940725
+n12447581
+n07803779
+n04561965
+n10151261
+n01538362
+n10170060
+n13160365
+n09823287
+n12554729
+n10620212
+n11935027
+n03465605
+n03227856
+n08519299
+n07785487
+n03522863
+n02861286
+n12200905
+n04269502
+n02104184
+n07612273
+n01390763
+n11872658
+n12981086
+n10244359
+n01738731
+n12117235
+n12846690
+n02861658
+n08782627
+n09832633
+n02531114
+n01394492
+n03269073
+n03077442
+n09794668
+n13884384
+n08659331
+n02556373
+n02587877
+n03523506
+n03723153
+n12024805
+n13061172
+n03978575
+n07914686
+n13134844
+n12183026
+n03573574
+n03765128
+n03319167
+n01920438
+n07852452
+n07680655
+n03017698
+n12959538
+n04261506
+n01793340
+n03292362
+n12817855
+n03593222
+n01962506
+n12453018
+n04027367
+n12518481
+n09223487
+n07871335
+n03779246
+n09668562
+n01889849
+n02492356
+n07830841
+n03277149
+n09968652
+n03092476
+n10400205
+n06263202
+n07595368
+n12767208
+n02196896
+n12580012
+n10265801
+n02103181
+n02922461
+n01731277
+n12422559
+n04278605
+n02250280
+n03283413
+n11829922
+n10191613
+n02493224
+n04427559
+n12181352
+n12742878
+n10683675
+n04503705
+n03785142
+n12816942
+n10723230
+n11936707
+n12360534
+n12909759
+n03766218
+n02696843
+n11935877
+n07828156
+n10617397
+n12921499
+n13158714
+n10166394
+n12370549
+n03505015
+n12769065
+n02636550
+n10781236
+n09869317
+n10275249
+n04234763
+n10735173
+n13137225
+n02070776
+n04232312
+n07575226
+n03471030
+n07909954
+n02633677
+n01662060
+n07563642
+n04263950
+n11824344
+n13178707
+n02972714
+n10417288
+n12092930
+n11993203
+n10170681
+n03726116
+n03215337
+n12564613
+n14975598
+n07758125
+n03123666
+n07717714
+n01421333
+n02359667
+n09403086
+n03857026
+n12759668
+n02628259
+n02307515
+n12146488
+n09777870
+n07819303
+n12105353
+n10784113
+n11802995
+n12561594
+n02845130
+n12100187
+n03507658
+n02141611
+n01800195
+n03470005
+n12444898
+n02203592
+n09707061
+n00475142
+n12216628
+n01732093
+n02581642
+n03803780
+n12114590
+n04541662
+n12267133
+n11652753
+n07859951
+n04524594
+n12843144
+n04040540
+n10604880
+n12559044
+n03063834
+n12394328
+n12704513
+n10230216
+n10756641
+n02101670
+n12309630
+n03070587
+n11626010
+n04239639
+n01638329
+n01928517
+n13144084
+n10420649
+n03102516
+n12395289
+n09833111
+n01651285
+n11688069
+n12881913
+n12783730
+n07716649
+n03618678
+n10344203
+n03626502
+n10718665
+n03577474
+n01683201
+n03246653
+n12153224
+n02519472
+n02470709
+n15090238
+n03129636
+n07774295
+n04577567
+n09995829
+n09662038
+n10297367
+n03555862
+n12531727
+n09947127
+n12533190
+n04062807
+n00479734
+n12860978
+n01884104
+n09866559
+n12069009
+n04595501
+n12088495
+n02909053
+n12283790
+n02180427
+n10697282
+n07562881
+n13092078
+n11706325
+n01746952
+n01978136
+n07731436
+n02386746
+n12648424
+n12726357
+n10314182
+n07839172
+n11753562
+n12903503
+n12589687
+n02375438
+n03604763
+n11549895
+n13202602
+n12304420
+n10738215
+n12220829
+n10095420
+n12177455
+n11887476
+n04006411
+n09838370
+n02853218
+n12688372
+n03335461
+n02800940
+n03036701
+n09885059
+n10206629
+n11922926
+n01678657
+n12192132
+n12248141
+n03108624
+n01936671
+n02417242
+n03222857
+n03768823
+n04343511
+n03538817
+n12655726
+n12521186
+n01330497
+n12767423
+n12965951
+n09695132
+n04410886
+n12599874
+n07865700
+n07596160
+n10227698
+n03224490
+n11598886
+n02948293
+n09906293
+n12247963
+n03301175
+n03895170
+n04259468
+n07808806
+n13147689
+n09856827
+n13882639
+n02241008
+n03842585
+n02883101
+n12182276
+n13918717
+n12728164
+n10634464
+n02477187
+n03107716
+n02342250
+n01479213
+n12793695
+n09808080
+n10707707
+n04161010
+n02836607
+n10076483
+n07726386
+n03872273
+n10250712
+n07688412
+n13884930
+n12301766
+n10196404
+n07591330
+n03814727
+n09610255
+n12757115
+n09814381
+n02397987
+n07886317
+n03959123
+n02185167
+n03533845
+n11838413
+n10227393
+n07704305
+n03580615
+n02663485
+n10101981
+n04346855
+n10067011
+n04464125
+n02829510
+n10007995
+n07845775
+n03004713
+n02450561
+n09905530
+n10361060
+n12394638
+n12095934
+n10479135
+n03145277
+n12246773
+n13194212
+n04475900
+n03252787
+n14867545
+n10485298
+n09961739
+n02149653
+n01553762
+n03931980
+n02344408
+n11676850
+n04034367
+n04235646
+n12867184
+n12625670
+n12763529
+n07593107
+n04351550
+n02571810
+n13899735
+n03652826
+n09495962
+n03421768
+n04205062
+n11918808
+n07745197
+n07752264
+n01892744
+n04609811
+n10278456
+n11790936
+n09754152
+n13234519
+n09820044
+n00440643
+n02350357
+n03779884
+n07803992
+n03305953
+n01836087
+n10068234
+n10690421
+n03134394
+n12380761
+n12801966
+n03134232
+n02596720
+n07591236
+n11882821
+n02312175
+n02387983
+n01912152
+n10805501
+n12718074
+n03188290
+n02776505
+n10528148
+n09971385
+n10524223
+n09958292
+n02721813
+n10300829
+n12007766
+n12107191
+n04449700
+n02987950
+n11878633
+n12328801
+n04551833
+n10567722
+n11654984
+n02808968
+n12066451
+n02964075
+n11633284
+n02434712
+n03070854
+n07926540
+n01543936
+n10091861
+n09938080
+n11976511
+n03342432
+n12886831
+n12509993
+n12958261
+n12730776
+n10066206
+n07846014
+n13176714
+n03332591
+n04607640
+n02513727
+n12138248
+n11964848
+n01318053
+n10553140
+n07839055
+n02632039
+n11865429
+n02286654
+n02367812
+n12093885
+n10774329
+n02296912
+n01729672
+n10353928
+n12033504
+n11936113
+n03263338
+n07822053
+n09737050
+n13875884
+n13212559
+n11690088
+n05468739
+n09344724
+n02507148
+n01377694
+n04172607
+n10464870
+n07804152
+n02825872
+n03139640
+n11858703
+n10227490
+n12334153
+n03616225
+n12018188
+n12399656
+n10235269
+n11840764
+n01995514
+n03326475
+n12704041
+n10684827
+n03006788
+n13906484
+n02868240
+n03614887
+n03491724
+n12124172
+n03675907
+n13170840
+n03983712
+n03254737
+n07836269
+n01784293
+n02095212
+n12470512
+n12219668
+n12920521
+n04492157
+n02950018
+n01922717
+n11797981
+n12601805
+n02744961
+n07814925
+n09798096
+n03939062
+n13891547
+n07564292
+n01590220
+n09295210
+n03997875
+n03479266
+n01491661
+n03781055
+n12528768
+n10657306
+n12014923
+n10094320
+n02532272
+n02224023
+n04541136
+n12067672
+n02661473
+n04233027
+n12399899
+n12889412
+n01736032
+n12551173
+n01337734
+n10104487
+n02921592
+n02148512
+n10216403
+n03276839
+n01781570
+n03999621
+n02505238
+n12537569
+n10433452
+n02351343
+n12365158
+n08539276
+n01897257
+n12221801
+n10557246
+n10437698
+n01803641
+n11836327
+n07813833
+n03468570
+n06277025
+n10040240
+n03692842
+n03017835
+n01881564
+n10487363
+n07937069
+n10597505
+n01638722
+n10160412
+n09825096
+n12611640
+n03098515
+n10654211
+n13196234
+n03436990
+n04058486
+n09814567
+n10758337
+n03515934
+n07688757
+n10269199
+n12627347
+n04521571
+n01636510
+n03220095
+n09982525
+n12768809
+n02340930
+n02473857
+n12336586
+n12125584
+n02833040
+n02498153
+n01467804
+n12120347
+n11650430
+n11953339
+n12592058
+n05102764
+n10575594
+n09722064
+n01966586
+n10619888
+n07852376
+n12650915
+n10321882
+n11974557
+n09847267
+n13201423
+n12337131
+n13185658
+n02150134
+n10538853
+n10471732
+n07836600
+n03526062
+n02512752
+n04232437
+n03367321
+n04308915
+n07600895
+n11539289
+n03539293
+n12699922
+n07817599
+n02781213
+n03594010
+n12035907
+n04075813
+n05233741
+n07863229
+n10735984
+n12095543
+n12272735
+n04229620
+n12240965
+n07768590
+n04420024
+n12111627
+n02861509
+n02595056
+n12183452
+n04607982
+n13213577
+n07741888
+n03750614
+n10043024
+n03372933
+n10051861
+n10199251
+n03249956
+n03984125
+n02956393
+n11619687
+n03356279
+n07833951
+n10715030
+n02340358
+n10768272
+n01494041
+n02592734
+n03323319
+n02136285
+n03995661
+n09945223
+n03547397
+n10044682
+n12878784
+n02803809
+n13160254
+n12726902
+n12196954
+n03161016
+n03105645
+n04218921
+n09493983
+n10719036
+n12263588
+n12565102
+n10684146
+n03148518
+n04287986
+n02340640
+n04331443
+n10727016
+n03369407
+n07824863
+n07844786
+n12467433
+n07582811
+n02964196
+n02197877
+n10758445
+n03271376
+n13212175
+n03260504
+n12777778
+n11973634
+n05467054
+n11946313
+n02462213
+n13906669
+n10520286
+n02074726
+n01771100
+n13880199
+n09811568
+n13883763
+n02334728
+n11831100
+n12025220
+n12751172
+n03858837
+n10127186
+n12831535
+n07823591
+n02513805
+n03662301
+n09913329
+n02749670
+n10655986
+n01787191
+n03199488
+n12732252
+n12253664
+n07735294
+n03440876
+n09650839
+n03844965
+n10341446
+n12688187
+n12961242
+n03423224
+n13157346
+n09802951
+n11948044
+n03489048
+n12279060
+n03664840
+n03731882
+n07742605
+n07870734
+n03949761
+n10759331
+n07739923
+n02737351
+n01788291
+n11780424
+n03722646
+n12297110
+n12363768
+n04495310
+n10008254
+n03934890
+n01318478
+n03609959
+n10070377
+n04123228
+n13068735
+n02909706
+n10671042
+n10491998
+n07650792
+n12664710
+n10213034
+n03455642
+n10411867
+n09903936
+n10121800
+n02622955
+n03647423
+n07596566
+n09654898
+n12248780
+n02684515
+n04255670
+n06273890
+n03495941
+n12960552
+n09724234
+n03861048
+n03293095
+n11835251
+n12852428
+n04084517
+n01814620
+n13159890
+n03147156
+n02311748
+n10237799
+n07584859
+n01946827
+n09651968
+n12241192
+n03669245
+n07858336
+n11932927
+n04444218
+n10526534
+n03642573
+n09470222
+n10731732
+n12001924
+n03786096
+n01359762
+n03824999
+n13877667
+n10591811
+n10574311
+n03275125
+n11631985
+n10539160
+n10502950
+n12499757
+n12432707
+n12068615
+n07689624
+n02610373
+n03204436
+n13051346
+n13134531
+n07610890
+n04021164
+n03502897
+n02299378
+n10417843
+n10050043
+n07929940
+n02593453
+n10577820
+n12870225
+n03333851
+n09463226
+n11741575
+n09193551
+n12012510
+n11987349
+n09215023
+n07924655
+n10060075
+n11999278
+n03933391
+n02602059
+n11993444
+n02337902
+n10149867
+n04441093
+n02868429
+n10629647
+n04192361
+n12029039
+n02768433
+n12078747
+n12730143
+n03255167
+n12492900
+n01709876
+n09672725
+n07870620
+n02315821
+n12277334
+n12204730
+n07852712
+n01319685
+n07802246
+n13031193
+n00812526
+n09658815
+n11982939
+n04264485
+n07893425
+n04094438
+n03285730
+n13182338
+n10724570
+n07832741
+n13210350
+n10654015
+n04058721
+n07875086
+n03462747
+n03994417
+n02889856
+n11957514
+n10109443
+n10478462
+n03064562
+n02477782
+n11920998
+n02138169
+n04227787
+n11797508
+n10753339
+n12928307
+n11921792
+n12643688
+n01833112
+n03919808
+n09817386
+n01903498
+n03848033
+n12031547
+n01035504
+n12324906
+n01911063
+n02588794
+n03749634
+n03539754
+n02242455
+n03079616
+n03246312
+n09705671
+n07860629
+n10458356
+n10051761
+n09709531
+n02867401
+n12522678
+n13150378
+n04462576
+n03462315
+n03712981
+n07607027
+n10581648
+n02957427
+n04271793
+n02253913
+n12824735
+n11697802
+n02161588
+n12463975
+n02361090
+n09784564
+n09680908
+n03512452
+n13214217
+n10712690
+n04023119
+n07814007
+n09833751
+n12885265
+n02259987
+n11933903
+n03628831
+n11967142
+n02533545
+n03900301
+n07919787
+n12793886
+n10768148
+n03071552
+n02780315
+n12193665
+n03378442
+n04486616
+n07832307
+n03164192
+n12786273
+n04261868
+n12655351
+n12320414
+n04371979
+n10630093
+n13052014
+n01357328
+n07879821
+n09753348
+n03796974
+n11701302
+n11678299
+n04022434
+n11610823
+n07726009
+n04117639
+n10474343
+n11888061
+n01842788
+n10435251
+n03343047
+n03383378
+n12750767
+n09662661
+n05241485
+n10000459
+n12220496
+n02246941
+n12676370
+n02253264
+n07766409
+n02940289
+n12089320
+n10363573
+n12922119
+n09783537
+n11695285
+n12331066
+n12573647
+n10218164
+n12509821
+n07862946
+n12818601
+n02589316
+n13191620
+n03758992
+n12112337
+n10733820
+n02898093
+n02645953
+n10150794
+n04595762
+n02344918
+n13132756
+n12859153
+n12138444
+n04211001
+n12935166
+n07830493
+n10142166
+n11951820
+n03018848
+n01453742
+n11985321
+n10000294
+n01362336
+n02328009
+n12639376
+n03090437
+n02204249
+n04312916
+n13127666
+n09684082
+n03432509
+n10274318
+n09704057
+n07593972
+n10074249
+n13157971
+n01638194
+n04036963
+n11708857
+n03418749
+n12589458
+n11899762
+n07683138
+n01601410
+n07854707
+n04279063
+n03239607
+n10302700
+n12520406
+n12576451
+n03881534
+n07565608
+n02349390
+n12569851
+n12249294
+n04059399
+n03530189
+n09357346
+n04325208
+n13159691
+n04045941
+n13898315
+n11992479
+n02353411
+n07825496
+n12922458
+n03115014
+n11761836
+n03323211
+n02793296
+n03492087
+n05241662
+n05491154
+n10419630
+n04506895
+n10546428
+n02907296
+n10769459
+n11647868
+n13188462
+n03825442
+n13209460
+n10742005
+n07599242
+n12361754
+n04570532
+n04131811
+n07756499
+n02598134
+n01910252
+n02910701
+n10129338
+n13871717
+n12673588
+n12565912
+n07562172
+n02711237
+n10775003
+n07695410
+n02637179
+n12930951
+n10261211
+n02906963
+n01366700
+n10642705
+n09846586
+n02779719
+n04978561
+n01369358
+n12114010
+n03521771
+n10667709
+n02296612
+n10722029
+n03500557
+n01365474
+n10472447
+n07585644
+n07609316
+n04013060
+n04505888
+n09726811
+n12692160
+n12378963
+n03585551
+n13139837
+n10167565
+n03799375
+n11990920
+n09640327
+n04502989
+n10108832
+n10561736
+n01897426
+n11766189
+n12462582
+n12913524
+n02684356
+n13200542
+n10466198
+n04331892
+n01478969
+n07837234
+n07692248
+n04552097
+n12382875
+n01484447
+n04120695
+n12681376
+n10293861
+n11965962
+n11788039
+n03959227
+n01832813
+n09918867
+n09942697
+n07587206
+n10459882
+n01347583
+n02267208
+n03951453
+n03006903
+n12126736
+n10286749
+n03395401
+n04605057
+n03467887
+n12755559
+n04020744
+n11629354
+n01647033
+n02780445
+n10205714
+n09439032
+n03138128
+n02763083
+n07835547
+n12251278
+n11949857
+n01635480
+n10675142
+n07845335
+n07751977
+n10332110
+n11871496
+n11764814
+n12229651
+n07760297
+n09865672
+n02919308
+n12218490
+n03782929
+n12231709
+n11909864
+n03144982
+n11799331
+n10433610
+n10483395
+n03206023
+n05442594
+n03626418
+n07870478
+n10171456
+n11964446
+n12796849
+n02126317
+n03797062
+n01412694
+n07610746
+n03581897
+n04479526
+n12447891
+n11906514
+n09699642
+n12873984
+n10586903
+n13234114
+n02436353
+n11889205
+n01460303
+n04400899
+n11884967
+n02140491
+n12215824
+n03586911
+n01394040
+n10691937
+n12371704
+n09668988
+n04362624
+n01740885
+n01337191
+n09714120
+n02185481
+n08555333
+n10704238
+n12430471
+n12034594
+n10012484
+n12088909
+n03205903
+n04129490
+n13090018
+n10712474
+n12234669
+n13016076
+n00454855
+n13882713
+n02644817
+n03192907
+n03519226
+n01561181
+n04583967
+n11732052
+n10732854
+n04480303
+n07934908
+n03825673
+n10621294
+n04354387
+n03374102
+n02922159
+n13158815
+n04000716
+n09685806
+n04427216
+n12051514
+n09712967
+n12081649
+n09748889
+n03252231
+n10704886
+n12897118
+n12525168
+n11728769
+n02731251
+n02548884
+n12403276
+n09627807
+n08679167
+n09663999
+n04247440
+n07711683
+n09909929
+n03415868
+n05244421
+n07680416
+n12757668
+n11935794
+n03483086
+n01860864
+n10755164
+n03675076
+n12004987
+n07566092
+n04078955
+n03379719
+n01916588
+n10138369
+n09755893
+n03649003
+n03977430
+n02309120
+n10616578
+n12242850
+n12388293
+n03292085
+n09919061
+n10302576
+n01497413
+n01936858
+n01377278
+n04358256
+n02667693
+n12125183
+n07758582
+n07813324
+n09737453
+n12745564
+n03855464
+n03166685
+n01446152
+n09801102
+n10561222
+n10576818
+n13915209
+n10474446
+n03845990
+n04237174
+n12531328
+n07855812
+n10763245
+n04614505
+n07905770
+n12051792
+n12653633
+n03593862
+n10359659
+n10436334
+n07853125
+n12911264
+n12265083
+n03638014
+n04444121
+n02706221
+n10563711
+n07808166
+n11799732
+n04093915
+n10451858
+n04410760
+n10075299
+n12740967
+n12635359
+n09611722
+n12902466
+n13915305
+n05542893
+n04440597
+n03675445
+n12315245
+n10646032
+n10047199
+n12775717
+n10365514
+n10590452
+n11616260
+n02812342
+n07856756
+n04570416
+n03565991
+n12215210
+n04330896
+n02388588
+n02266269
+n10760199
+n14714645
+n02742070
+n03565710
+n12609379
+n03420935
+n03441465
+n00453631
+n01963479
+n04362972
+n09863936
+n03961394
+n03009269
+n12297280
+n04561010
+n12192877
+n02981565
+n12134695
+n07855413
+n03232815
+n10180791
+n09932788
+n10571907
+n02109256
+n02660091
+n07865788
+n13228536
+n10306279
+n02635580
+n03634899
+n10262343
+n12296929
+n04393301
+n06281175
+n04485586
+n13103660
+n10510974
+n04166436
+n01634522
+n07596362
+n12700357
+n08597579
+n11744011
+n12238756
+n01790171
+n04571800
+n11867311
+n03464467
+n12241880
+n09961605
+n12592544
+n03170459
+n09938991
+n02692680
+n10295371
+n04331765
+n02612167
+n02520810
+n11977887
+n04094608
+n07722390
+n07832202
+n12448361
+n04612159
+n12186352
+n13161151
+n12654227
+n09868899
+n10104756
+n09920106
+n12981301
+n02610980
+n12545865
+n10673296
+n04110841
+n01704626
+n04055700
+n12117912
+n10519126
+n12443736
+n01697978
+n02148088
+n03012644
+n12091697
+n10395390
+n10509810
+n10462751
+n02896949
+n03836602
+n03928994
+n07718195
+n02473983
+n08571642
+n02648916
+n11970298
+n06274292
+n04613158
+n09856401
+n12811713
+n13111340
+n12122442
+n10095265
+n04445610
+n11631619
+n07863644
+n12022821
+n10315217
+n12549799
+n03386343
+n03121040
+n03558007
+n12272432
+n11798496
+n02522866
+n02952935
+n10741493
+n12143065
+n07883156
+n09616573
+n02289988
+n13161904
+n02588945
+n00451768
+n12375769
+n10777299
+n04495183
+n11930994
+n09970088
+n02254246
+n12276314
+n07857598
+n04428382
+n03789794
+n03383821
+n12980080
+n01447139
+n12880799
+n03501520
+n10764465
+n13143285
+n12727729
+n12444095
+n02354621
+n13174354
+n01691652
+n07732525
+n10437014
+n04368235
+n10371052
+n02611898
+n03597147
+n09912431
+n03135788
+n07888058
+n02409202
+n14582716
+n11934463
+n04395332
+n12558680
+n05257967
+n11798978
+n10617024
+n04102760
+n12132092
+n12988572
+n10390698
+n11887310
+n12063211
+n12952717
+n13141972
+n12176453
+n10245863
+n10509161
+n10389976
+n10333165
+n01474864
+n09274305
+n11888424
+n10368711
+n13222877
+n10469611
+n07582970
+n09700125
+n12805762
+n07865575
+n07853852
+n03628421
+n04482975
+n03099622
+n01349735
+n11943133
+n12736603
+n12197601
+n10597745
+n04418644
+n12689305
+n07755262
+n10598459
+n04312020
+n03195485
+n09776642
+n10596517
+n10223606
+n01923890
+n12703716
+n03465040
+n12372233
+n12528109
+n03571853
+n10802621
+n10204177
+n02320465
+n03976105
+n02214096
+n02148991
+n10377542
+n10697135
+n03538542
+n07582027
+n04517999
+n12180456
+n02838014
+n03977266
+n03818001
+n12191240
+n11648776
+n10773800
+n04475496
+n03945817
+n04682018
+n02994743
+n02787269
+n11650160
+n03834472
+n03389983
+n09797742
+n06209940
+n12525513
+n12672289
+n01893164
+n10710259
+n01892145
+n11773408
+n10554024
+n09864968
+n10699752
+n11631405
+n10414768
+n04430605
+n10742546
+n10738871
+n12857204
+n09309046
+n01724840
+n04123317
+n07881525
+n03868044
+n02140268
+n10708292
+n09838295
+n09797998
+n10710171
+n11814996
+n11938556
+n03543511
+n02151230
+n01515217
+n03533392
+n02039780
+n12810151
+n02335231
+n12152251
+n13225617
+n09801275
+n01978587
+n14821852
+n11742878
+n12679023
+n03521431
+n09679028
+n02021281
+n10784544
+n04421258
+n12492460
+n03720005
+n02541257
+n03889397
+n02888898
+n10659762
+n12045157
+n12712320
+n10369095
+n09721444
+n12769318
+n01703161
+n12697514
+n07836456
+n03905361
+n10660883
+n07769306
+n11893916
+n07846274
+n04110281
+n03655470
+n07740744
+n01363719
+n12540647
+n09896311
+n12842642
+n07755619
+n07754155
+n11548870
+n02868546
+n04215588
+n04288165
+n13201566
+n07721118
+n12018271
+n11903333
+n02909165
+n02662559
+n11658709
+n13063514
+n07725663
+n10179069
+n10776887
+n12637485
+n03814528
+n12542043
+n07833333
+n07820036
+n02746683
+n07925808
+n10349750
+n03154316
+n04155625
+n03232923
+n02116185
+n09998788
+n02821543
+n03410303
+n10656223
+n07916582
+n12880638
+n10408809
+n04612840
+n11805255
+n12044784
+n10497534
+n03458422
+n12873341
+n07808675
+n09476123
+n07611733
+n10598013
+n02214660
+n05469664
+n03952150
+n11855435
+n04375926
+n08523340
+n01642391
+n04007415
+n09756961
+n12891824
+n02894847
+n11698245
+n12906771
+n02894024
+n04131015
+n11882636
+n04386456
+n03291551
+n07837110
+n12462221
+n08540532
+n10299875
+n12705978
+n10448322
+n10487592
+n12175598
+n02272552
+n03833907
+n10383237
+n12758176
+n12729950
+n10061195
+n07816726
+n03241903
+n12239880
+n10380499
+n07855188
+n10207077
+n02770078
+n12961393
+n03778459
+n10734741
+n03485575
+n09958447
+n12337246
+n11830045
+n09866354
+n03209666
+n01470145
+n10395209
+n03872016
+n04267091
+n12888457
+n12104104
+n04088229
+n01964957
+n12002651
+n02503756
+n00481938
+n01908042
+n03378765
+n04193883
+n09862183
+n11861487
+n02520525
+n02081060
+n10386754
+n12693865
+n04514095
+n01325060
+n02460817
+n07568095
+n03651605
+n02561937
+n12844409
+n12888016
+n02974565
+n12439154
+n13018906
+n12071259
+n03897634
+n02863176
+n10603528
+n03493911
+n12887532
+n12944095
+n12794568
+n09980458
+n03503567
+n11783162
+n13123309
+n11729860
+n03702582
+n04280373
+n10086744
+n01790557
+n12627526
+n10552393
+n12092629
+n03888998
+n12751675
+n01442450
+n02479332
+n07726230
+n03642341
+n03142325
+n06263895
+n12088327
+n09703344
+n10528493
+n02820085
+n07737594
+n04090781
+n09901642
+n02328942
+n02724722
+n09866115
+n12658715
+n10481167
+n13135692
+n11850918
+n10205344
+n12361560
+n03698123
+n03284482
+n12106134
+n04441528
+n02591613
+n02581108
+n07856186
+n12197359
+n12900783
+n01725713
+n12012253
+n03907475
+n02170738
+n03694949
+n13238654
+n04611795
+n02782432
+n13191148
+n02741367
+n04170694
+n12770892
+n01973148
+n10080508
+n10161622
+n09808591
+n07912093
+n02059541
+n02779971
+n03857156
+n12945366
+n03055159
+n12758325
+n10067305
+n02597818
+n07808352
+n13147153
+n10679723
+n02271222
+n04012665
+n12942729
+n10349243
+n01377510
+n07800636
+n10654321
+n10219453
+n09961469
+n10732521
+n04479405
+n11632929
+n03856728
+n08658918
+n10327143
+n10754281
+n02085118
+n09691604
+n09952163
+n10082299
+n03872167
+n03733465
+n04138869
+n01425223
+n12066821
+n02177506
+n09892262
+n02896694
+n12983654
+n13224922
+n09658921
+n12744850
+n03639880
+n02943686
+n10660621
+n11936539
+n03698226
+n04519536
+n12392765
+n09319604
+n07567039
+n04160261
+n01802159
+n02838178
+n07746910
+n02266421
+n10240417
+n12542240
+n12550408
+n01445857
+n04132465
+n03569014
+n12666050
+n12362514
+n10676569
+n09702673
+n12885510
+n04447156
+n04396226
+n12240150
+n11639306
+n02249134
+n01340785
+n02833140
+n10027590
+n02142407
+n11996251
+n07874531
+n04340019
+n03166120
+n10420277
+n04465203
+n12738259
+n12831141
+n03998673
+n01385017
+n12842519
+n02587051
+n10753061
+n12505253
+n13906936
+n01989516
+n12640435
+n07852532
+n04243142
+n10261511
+n12853287
+n12239240
+n03973003
+n09983889
+n10345302
+n14804958
+n02354162
+n03049326
+n10443659
+n01318660
+n12787364
+n04253304
+n11941094
+n09283514
+n09393524
+n11865574
+n01531639
+n04409279
+n02859729
+n10712835
+n03694196
+n04343630
+n10331098
+n12929600
+n02826259
+n10171219
+n07735179
+n07594840
+n03709644
+n09950728
+n09859285
+n07718329
+n01418620
+n09858299
+n12395068
+n10011360
+n07763290
+n02643316
+n03596099
+n04422566
+n11958888
+n09650989
+n10318686
+n01333082
+n12886402
+n03781467
+n12667582
+n02923535
+n09988311
+n08663860
+n02508346
+n13885011
+n03939281
+n10772937
+n04485750
+n09871952
+n10291942
+n07759324
+n10174971
+n03666238
+n01937579
+n02308033
+n07847706
+n10371330
+n04124887
+n11853079
+n11941478
+n12647231
+n04601041
+n12718483
+n02902816
+n01941340
+n04066767
+n07617839
+n02254901
+n03488784
+n07834774
+n02524659
+n03367969
+n10783734
+n03422484
+n09776807
+n03970363
+n10131590
+n03433247
+n02622712
+n10206506
+n12061104
+n11936287
+n07874674
+n10061043
+n07828275
+n03764606
+n12236768
+n01826844
+n09741904
+n05454978
+n03591592
+n01441272
+n03736372
+n07585474
+n12762405
+n12943912
+n01894522
+n03218446
+n11846425
+n11689678
+n04147916
+n02375862
+n10409459
+n09287415
+n10113583
+n03261263
+n02817386
+n09869578
+n10550252
+n02532786
+n12031388
+n07937344
+n11612235
+n01571410
+n09402944
+n04234670
+n02603862
+n04196925
+n09999135
+n10468750
+n15093049
+n03003633
+n11650307
+n12312110
+n02525703
+n10501635
+n09751622
+n10114550
+n10103155
+n12829975
+n04004099
+n12419878
+n02082190
+n03328201
+n03093427
+n07845571
+n12655498
+n02558206
+n12563045
+n07573453
+n12324558
+n13016289
+n10601234
+n10310783
+n03531691
+n02135610
+n03168543
+n09985978
+n10615334
+n07839312
+n09985809
+n10142537
+n10417969
+n07869111
+n12514992
+n04327544
+n10326776
+n12583681
+n01476418
+n12840168
+n03852544
+n11713763
+n07824502
+n07858841
+n12256325
+n03036149
+n07883661
+n04500390
+n10170866
+n01835918
+n10760951
+n10720197
+n12330239
+n02135844
+n10210512
+n03217739
+n10802953
+n03136254
+n02161225
+n03961630
+n12927194
+n02251233
+n13891937
+n09945603
+n02695762
+n12181612
+n13234857
+n10175725
+n11346873
+n07934678
+n02318687
+n10251329
+n04112921
+n04001132
+n03042984
+n11704791
+n04246459
+n12193334
+n10718509
+n10371221
+n05278922
+n03265754
+n12186554
+n12481289
+n10521853
+n10748506
+n11729142
+n10143595
+n09422631
+n07562984
+n07850219
+n04193742
+n11997160
+n12002826
+n12820113
+n04132829
+n10272913
+n03358841
+n12610740
+n12384569
+n10725280
+n02746008
+n13148384
+n12635151
+n02337171
+n10350774
+n12308907
+n04542474
+n04339062
+n03549350
+n10240235
+n10556033
+n10214390
+n01791314
+n02801047
+n07817465
+n11610602
+n10315730
+n14592309
+n10249191
+n12453857
+n12579822
+n09833275
+n04051269
+n11552594
+n04088343
+n04565039
+n03930431
+n10679503
+n11899921
+n10295479
+n01357507
+n13036312
+n03404900
+n12523141
+n01816017
+n02020578
+n12661045
+n06262943
+n02775813
+n12921315
+n09751076
+n09834258
+n10585628
+n12885754
+n04411019
+n10342367
+n10368798
+n09672840
+n12729023
+n04578329
+n10325549
+n03680248
+n11920663
+n10416567
+n10011486
+n01643255
+n03193754
+n07823814
+n04055447
+n10660128
+n07765612
+n07612530
+n04205613
+n09677427
+n03989199
+n11100798
+n12721122
+n10000787
+n10382157
+n07724819
+n12928819
+n11631159
+n02608996
+n10516527
+n09703101
+n12290975
+n03470222
+n03810412
+n03729131
+n03356038
+n12692024
+n12614625
+n10789415
+n02333819
+n01722670
+n03885410
+n12038208
+n02294097
+n02608860
+n02500596
+n07909231
+n03254625
+n09681973
+n12221368
+n01893399
+n10025295
+n03194812
+n13181406
+n12249122
+n03447894
+n09795010
+n02187900
+n10139651
+n10631654
+n01792530
+n02569631
+n07853946
+n09907804
+n03263758
+n04214649
+n02450829
+n02431542
+n11998492
+n02651060
+n04101860
+n01806061
+n13901423
+n12903964
+n03968479
+n04268565
+n12601494
+n02083780
+n04570118
+n12247407
+n03337822
+n09878921
+n02369935
+n10022908
+n09667358
+n13160938
+n11937360
+n07741623
+n03705808
+n12241426
+n10478118
+n03805933
+n10343869
+n09391774
+n03482128
+n10357737
+n10334461
+n09675045
+n09662951
+n10174253
+n01815270
+n13873361
+n04432785
+n09778927
+n10671898
+n05571341
+n10033572
+n09864632
+n10618465
+n03437184
+n12786464
+n01723579
+n11798270
+n07742415
+n02143142
+n10548419
+n03695122
+n02518622
+n04605446
+n10218292
+n11832671
+n12646950
+n03382708
+n09844898
+n09674786
+n01472502
+n07616906
+n09763272
+n03982767
+n10005006
+n03059236
+n01816474
+n03725869
+n01979269
+n04226322
+n13236100
+n03920384
+n11852148
+n04373563
+n04324120
+n11686652
+n03036341
+n02142898
+n09783776
+n13147918
+n03465320
+n07855721
+n10336411
+n10438619
+n07750299
+n12237152
+n03559373
+n10077106
+n10169796
+n09828403
+n09959658
+n12464128
+n12934685
+n04221673
+n02617537
+n11689367
+n10180580
+n07813717
+n12529905
+n02340186
+n01400247
+n11749112
+n04404072
+n03135656
+n12098827
+n12481150
+n10023506
+n03500838
+n01564101
+n04009923
+n10023264
+n03908456
+n03206405
+n07590068
+n09958133
+n10755394
+n01423617
+n11511327
+n10536274
+n01965252
+n11549245
+n11935627
+n09635635
+n03752071
+n07585997
+n03147084
+n12666159
+n09748408
+n03796848
+n01501948
+n02345078
+n12430675
+n03103128
+n11710987
+n03393199
+n09233603
+n10465002
+n04298765
+n01351170
+n02720576
+n03966582
+n10643837
+n12420124
+n10793799
+n01652297
+n09281252
+n11983606
+n10222497
+n11832899
+n02391617
+n12434106
+n03987674
+n02140179
+n07896560
+n04325804
+n10647745
+n01924800
+n10156629
+n03545961
+n03906789
+n01890564
+n10699558
+n12332218
+n03247495
+n11839460
+n03527675
+n12586725
+n13208965
+n02714315
+n02750320
+n04615149
+n12679876
+n12863234
+n03304323
+n12139793
+n11922755
+n12321669
+n04979307
+n01921059
+n09657206
+n13042134
+n04045787
+n11700279
+n02337598
+n01415920
+n01400391
+n13207572
+n10785480
+n02515713
+n12018100
+n02634545
+n03292736
+n02881546
+n12655605
+n03105810
+n10545792
+n03894933
+n09796974
+n10320484
+n12308112
+n11549009
+n13047862
+n14941787
+n12379531
+n10540252
+n11696935
+n12184468
+n12851860
+n12908854
+n10586265
+n12369066
+n10426630
+n12523850
+n03916289
+n04538878
+n09908769
+n02828115
+n07560422
+n10266016
+n03569174
+n06423496
+n10495167
+n03617834
+n09327538
+n10195056
+n10508379
+n13031323
+n11659248
+n04242315
+n10742111
+n10700963
+n12032686
+n09877587
+n07825597
+n07568991
+n11736362
+n12169099
+n13103750
+n03263640
+n12248941
+n10665302
+n01920051
+n09704283
+n11533999
+n04503073
+n11645163
+n10639817
+n09920901
+n06340977
+n03251100
+n10378113
+n03226090
+n10131268
+n02877513
+n13191884
+n02787120
+n11709045
+n02740061
+n12323665
+n02831998
+n10342180
+n12716594
+n04498275
+n09905050
+n03745487
+n07642833
+n10294020
+n10211666
+n12205460
+n02981198
+n01642943
+n07679140
+n04390483
+n10432875
+n09214269
+n10792506
+n10243483
+n13099833
+n10221520
+n13177768
+n04091584
+n10672540
+n10200246
+n13889331
+n02345340
+n10237556
+n01833415
+n01335218
+n09804230
+n09957523
+n05235879
+n10070449
+n10308653
+n10721708
+n04312654
+n10394434
+n12201938
+n12434775
+n07601025
+n02672152
+n10157271
+n02635154
+n12572858
+n13182937
+n10160188
+n03396997
+n10344656
+n02968210
+n10190516
+n07684422
+n03706939
+n07618871
+n02290870
+n03817331
+n03275311
+n12698774
+n04375080
+n07837630
+n04314216
+n11833373
+n07618684
+n03742238
+n12532886
+n03712444
+n11750989
+n10038620
+n09617577
+n03807334
+n10108089
+n01816140
+n10715347
+n02648035
+n13127303
+n02809491
+n02430748
+n12235479
+n01451863
+n01514926
+n10010864
+n01913440
+n09660240
+n11806369
+n01470479
+n12655245
+n07655067
+n03436772
+n11778092
+n03951800
+n10277815
+n07931733
+n01479820
+n03576955
+n07609549
+n12568649
+n05263316
+n02636405
+n01384084
+n03298352
+n07617344
+n09987045
+n10573957
+n07801709
+n02589062
+n02534165
+n02748359
+n09607782
+n07590974
+n02199170
+n02696569
+n09678747
+n12795209
+n13176363
+n10663315
+n10588724
+n09772330
+n10174589
+n12366313
+n11883628
+n07617447
+n01334690
+n03168663
+n11764478
+n08599174
+n03942028
+n12153033
+n03448696
+n12096674
+n10037588
+n03548320
+n09760290
+n10374541
+n09653438
+n10294139
+n10276942
+n12279293
+n12764507
+n12803958
+n10764622
+n02140858
+n07599068
+n10245507
+n12351790
+n12818004
+n10118301
+n03945459
+n09912995
+n12176709
+n03873996
+n10339179
+n10614507
+n10114662
+n10784922
+n03821424
+n04959230
+n13015509
+n12573911
+n11948469
+n09775907
+n12758014
+n01780142
+n09956578
+n12165384
+n10088200
+n10382480
+n04131113
+n09930628
+n09784160
+n11750173
+n13064111
+n03817522
+n12662074
+n03176238
+n12310021
+n11679378
+n09961331
+n02385580
+n11904274
+n03113505
+n10244913
+n02836900
+n09986700
+n11963572
+n13158605
+n10321632
+n02179891
+n02189670
+n10097995
+n10774756
+n10783240
+n10605737
+n02530052
+n10386196
+n10184505
+n09788237
+n03589672
+n12509109
+n10658304
+n12966804
+n12559518
+n03189311
+n01451295
+n12179632
+n12301613
+n10496489
+n03402785
+n10244108
+n02385676
+n03552001
+n03092053
+n02313360
+n02547733
+n02109391
+n01327909
+n04574606
+n03060728
+n07840124
+n10567848
+n10062176
+n02703124
+n10804732
+n12699301
+n04515890
+n07919665
+n10457214
+n09663248
+n03165955
+n12988341
+n03987865
+n03031756
+n10277912
+n10172080
+n09325824
+n03198223
+n09605110
+n10113869
+n11603462
+n03352366
+n11930203
+n09769929
+n12979316
+n02579762
+n09953052
+n03105974
+n00476140
+n11598287
+n02830157
+n10512201
+n09746936
+n10668666
+n02919976
+n09993651
+n02149861
+n09705003
+n10389865
+n11655152
+n10010767
+n10070563
+n03688832
+n10590239
+n11936027
+n02939763
+n03163488
+n03171910
+n09955406
+n03266195
+n10217208
+n09338013
+n07594250
+n03215930
+n09725935
+n10592049
+n03732658
+n12498457
+n09966554
+n10668450
+n10361525
+n04060198
+n11936624
+n02602760
+n03942600
+n03708425
+n10020533
+n12067817
+n07590177
+n01891274
+n11837204
+n01419332
+n03860234
+n12616248
+n07834160
+n09867154
+n09788073
+n12222493
+n03388990
+n04245412
+n10182402
+n11675404
+n10450038
+n13045594
+n13158167
+n13082568
+n12052267
+n12707199
+n07810531
+n07914887
+n13127001
+n02573249
+n08619112
+n10471859
+n09919899
+n03635516
+n12067029
+n03352232
+n07765517
+n10519984
+n02742194
+n03062798
+n13124654
+n09958569
+n02370137
+n10121714
+n04019335
+n07732433
+n02559383
+n12585137
+n09729156
+n10744078
+n09954355
+n03078506
+n10062042
+n10688811
+n02668613
+n03142205
+n10347204
+n10518349
+n09898020
+n12563702
+n05468098
+n10116370
+n07838905
+n03127024
+n03545585
+n12801072
+n09940818
+n04480995
+n10466564
+n02606751
+n10032987
+n10771066
+n01587278
+n11852531
+n01455461
+n10397392
+n02349205
+n10180923
+n09778266
+n04366832
+n10051975
+n10538629
+n09865744
+n12554029
+n13118330
+n12952590
+n04187751
+n09924313
+n10062594
+n01980655
+n10028402
+n02567334
+n10590903
+n10265891
+n10739297
+n01457082
+n03437581
+n03713151
+n03475674
+n05464534
+n11863467
+n06592421
+n12491435
+n14914945
+n10279778
+n03388711
+n10483890
+n10612373
+n03332784
+n02332954
+n02952798
+n13041943
+n01607309
+n04356772
+n07711799
+n12670962
+n12229111
+n07878479
+n12401893
+n07772413
+n12138110
+n09781504
+n07902698
+n02750652
+n13042316
+n12400924
+n02304797
+n03066464
+n12852234
+n10155222
+n05541509
+n10711483
+n04210858
+n02835551
+n12859679
+n02935490
+n03540476
+n05279953
+n09807075
+n09617435
+n03566860
+n10549510
+n10025391
+n10754449
+n11927740
+n03554645
+n01837526
+n02656969
+n08648917
+n07860548
+n01452345
+n04021704
+n07783827
+n10080117
+n02187554
+n03214966
+n10036444
+n04291069
+n12407396
+n02170599
+n09896826
+n12417836
+n07845495
+n02749292
+n03061819
+n03682380
+n10756261
+n10369955
+n09692125
+n09978442
+n04277669
+n10539278
+n09703932
+n01879837
+n02746225
+n13159357
+n11763874
+n10540656
+n07933530
+n12987535
+n02371344
+n10654827
+n09723944
+n12775393
+n11856573
+n12626878
+n12716400
+n09903639
+n09784043
+n03906894
+n10775128
+n03124313
+n10396727
+n02841641
+n10211830
+n12283395
+n03490784
+n14175579
+n04027935
+n12396091
+n02609823
+n01414216
+n09880741
+n11976933
+n03073384
+n09270160
+n11768816
+n12073217
+n11597657
+n09994878
+n11756329
+n12579404
+n03161893
+n01451115
+n07736971
+n02949356
+n03878418
+n12653436
+n10626630
+n12777892
+n13061704
+n10498699
+n03609786
+n03199358
+n10776339
+n10762480
+n13179056
+n10113249
+n04029913
+n12640081
+n10493835
+n11683216
+n03524287
+n04585626
+n02969527
+n12976554
+n08569482
+n10204833
+n12442548
+n02577952
+n09357447
+n10202225
+n02198129
+n11882972
+n10404426
+n01600341
+n12016434
+n09867069
+n10576223
+n09893600
+n01702479
+n04274686
+n04406552
+n02848118
+n02258629
+n03260733
+n03685640
+n11751974
+n09967555
+n06274546
+n09649067
+n10681557
+n07606933
+n03110202
+n11982545
+n10803031
+n02679142
+n04086937
+n10514255
+n04506402
+n03884554
+n09970192
+n10117017
+n12642435
+n10186686
+n02097967
+n03956531
+n11834890
+n02677436
+n10040698
+n11796188
+n03348142
+n04168472
+n02294407
+n12483282
+n09429630
+n04423687
+n09819477
+n09755555
+n10157016
+n03344935
+n07762373
+n12871859
+n09853541
+n09875979
+n13050705
+n02251067
+n10637483
+n03823673
+n10357012
+n03424204
+n04431648
+n01475940
+n02339282
+n10248198
+n07683265
+n13150592
+n10359117
+n10096508
+n03473078
+n13052248
+n10743356
+n03710079
+n10634990
+n04507689
+n07921090
+n02352002
+n03924407
+n03609147
+n02837567
+n03406759
+n03909658
+n10286282
+n12135576
+n01912809
+n10801561
+n10717055
+n03473465
+n03761588
+n03144156
+n09474412
+n10253611
+n12549420
+n02499568
+n09910222
+n10431122
+n12699031
+n01697749
+n11786843
+n03888808
+n12089496
+n10066314
+n10302905
+n12696830
+n09965787
+n11969806
+n04066388
+n13080306
+n03913930
+n09968259
+n10490421
+n10714195
+n07570021
+n10343449
+n10401204
+n03472796
+n10779897
+n11787190
+n03503097
+n10439523
+n12123648
+n04279858
+n10511771
+n09755788
+n08253141
+n02616397
+n12248574
+n01645466
+n04334504
+n07729142
+n05451099
+n10503818
+n10354265
+n09707735
+n02633422
+n11999656
+n01324916
+n02088745
+n09354511
+n10705448
+n09756195
+n10136615
+n10427359
+n09702134
+n12600095
+n04122262
+n10791820
+n03330002
+n02713496
+n11710658
+n09664908
+n02550203
+n02349847
+n12835766
+n04098260
+n11536567
+n11686780
+n12875861
+n12758471
+n09806944
+n11810030
+n10400003
+n10098388
+n11663263
+n10559683
+n07833672
+n10753989
+n10643095
+n01988869
+n03112240
+n12911914
+n09979913
+n09785236
+n09790047
+n02676097
+n01653509
+n04601159
+n01938735
+n10748142
+n12978076
+n11990627
+n10437262
+n12972136
+n04077594
+n10148825
+n02269340
+n12886185
+n03608504
+n11677485
+n10612518
+n12267265
+n10649308
+n05458173
+n10650162
+n03213361
+n02747063
+n01611674
+n02322992
+n01554017
+n03512624
+n12773142
+n12747120
+n09902128
+n03162714
+n03924532
+n10299125
+n12378753
+n02778131
+n09976024
+n13093629
+n10778999
+n07721833
+n12232851
+n07876775
+n10097590
+n03194170
+n13029122
+n04573832
+n12859272
+n09639382
+n07688021
+n02878796
+n10751710
+n03633632
+n07762534
+n10779995
+n13914265
+n13093275
+n10729330
+n10433077
+n03663910
+n10499110
+n02272286
+n10371450
+n01967308
+n12633061
+n11659627
+n12982915
+n10344121
+n10268629
+n02697876
+n09879552
+n10167361
+n10719807
+n04042076
+n01632952
+n03243625
+n02125872
+n10105906
+n12194613
+n03149810
+n10721124
+n03947343
+n02020219
+n10122531
+n01315330
+n08647264
+n00452734
+n03607527
+n10010243
+n09863749
+n04473275
+n11782878
+n03585337
+n09655466
+n12989007
+n11711971
+n10716864
+n10475835
+n10704712
+n01894956
+n10568443
+n12881105
+n10387836
+n10403633
+n08645318
+n03500457
+n10377633
+n10108464
+n09933972
+n02618094
+n11798688
+n04155735
+n09780395
+n12822466
+n04302200
+n11899223
+n10633298
+n02760298
+n12142450
+n10803282
+n10769321
+n10514051
+n10597889
+n11837562
+n02261757
+n01458746
+n09830759
+n10003476
+n09817174
+n10738670
+n10118743
+n12096563
+n03054491
+n12155773
+n10439727
+n04170384
+n03223923
+n12632733
+n07845421
+n10062905
+n11831521
+n04267985
+n12796385
+n04154854
+n00444142
+n09778537
+n03115663
+n04385157
+n10109826
+n02337332
+n09996304
+n09880189
+n12871696
+n11823305
+n02516776
+n12377494
+n08511017
+n04421417
+n10765305
+n09675673
+n03488111
+n03076623
+n11829672
+n10292316
+n10758949
+n13031474
+n02829353
+n10090745
+n09186592
+n12736999
+n12715195
+n11684499
+n03168933
+n09890192
+n10596899
+n12527081
+n10496393
+n10497135
+n02137302
+n03266620
+n12958615
+n12664187
+n02633977
+n04262869
+n04215800
+n13133233
+n02392555
+n09858733
+n10186350
+n01715888
+n03142099
+n08573674
+n11687071
+n02690715
+n03146342
+n12331788
+n08079613
+n10609092
+n12943049
+n12234318
+n02312325
+n12618146
+n10135197
+n11705573
+n02794368
+n02850358
+n09464486
+n01993525
+n03187153
+n10097262
+n02976641
+n12198793
+n12941717
+n10219240
+n12434634
+n03827420
+n10437137
+n10342893
+n04174026
+n10265281
+n07757874
+n10765885
+n01470895
+n02349557
+n11716698
+n03765467
+n10227793
+n07824268
+n12994892
+n10486236
+n02974454
+n10718349
+n11726145
+n09909660
+n03378593
+n07805006
+n09875025
+n02645691
+n10223069
+n03722944
+n04389999
+n02544274
+n10239928
+n04456011
+n10382302
+n01552333
+n10082562
+n12952469
+n09883047
+n10442573
+n01891013
+n10690268
+n13111504
+n02287352
+n03567635
+n10331347
+n09762385
+n09933842
+n02369555
+n12291459
+n09919200
+n01492860
+n02067768
+n10713254
+n10550468
+n12846335
+n03835729
+n12467018
+n11676743
+n03629643
+n12987423
+n10655730
+n08678783
+n10349836
+n10087736
+n10246703
+n10338391
+n04585456
+n04158138
+n10500942
+n09850974
+n10791890
+n10020807
+n03315805
+n02752917
+n04033801
+n10492086
+n04427473
+n02940706
+n12110475
+n09832978
+n12515393
+n07800487
+n09848110
+n02659176
+n09967406
+n10536134
+n10760622
+n09736485
+n07830690
+n07835173
+n09814252
+n10311506
+n10341955
+n03869838
+n07760673
+n09970402
+n12526178
+n11687964
+n09968741
+n10719267
+n07851054
+n10116478
+n10599215
+n09951524
+n03855908
+n03997274
+n02986348
+n08599292
+n02474282
+n04155889
+n09983314
+n01987727
+n10280130
+n10404998
+n02294577
+n02998696
+n08586978
+n11652578
+n13867005
+n12663254
+n10524869
+n02287622
+n10220924
+n03279918
+n02626089
+n10291110
+n12820669
+n07861681
+n08643267
+n07720185
+n12555859
+n03225616
+n09769525
+n03295140
+n12489046
+n10615179
+n12150969
+n02888429
+n10753182
+n10267166
+n03675558
+n12693352
+n02378299
+n02788462
+n03622401
+n12236977
+n10730542
+n12758099
+n10502046
+n11937195
+n10366145
+n10307114
+n12984595
+n10128748
+n09362316
+n09789898
+n09654079
+n04260192
+n10114476
+n08623676
+n10331841
+n05265736
+n10269289
+n03090856
+n12764978
+n02825240
+n10358032
+n09825750
+n03062651
+n11196627
+n11825749
+n04148464
+n04439505
+n07572858
+n04561857
+n12904562
+n03643907
+n10723597
+n01492708
+n10071557
+n10140683
+n01739871
+n12984267
+n03072056
+n10772580
+n10462588
+n11936448
+n10494373
+n12845908
+n09793352
+n10717196
+n12577362
+n09779124
+n10663549
+n02286425
+n10380126
+n01890144
+n02751490
+n03361109
+n01781875
+n13128278
+n09994400
+n09883452
+n13881512
+n02833275
+n10362003
+n01376543
+n12366675
+n09984960
+n10173665
+n10673776
+n02057898
+n01934844
+n04057673
+n10018747
+n02916065
+n13024653
+n05539947
+n09648911
+n04150273
+n01393486
+n10411356
+n12232114
+n02436224
+n12757930
+n03095965
+n10555059
+n01577458
+n09666476
+n10598904
+n11656549
+n02591911
+n13092385
+n10506336
+n13103023
+n09658254
+n04095938
+n11936782
+n07824383
+n09781650
+n10240821
+n01780426
+n02850060
+n02863340
+n13914141
+n12138578
+n13034555
+n12291671
+n12133151
+n04515444
+n04591359
+n02589196
+n02689819
+n11740414
+n07610295
+n10246395
+n09921034
+n12447346
+n12641180
+n01419573
+n04242587
+n07760395
+n03399579
+n09866661
+n02549376
+n11861238
+n01588996
+n04319545
+n09789150
+n03288643
+n10312491
+n03353281
+n02345997
+n09711132
+n03043173
+n02558860
+n03703590
+n03188871
+n12589142
+n12113323
+n09987161
+n05242239
+n09686262
+n09780984
+n09668199
+n09716933
+n11675738
+n04459243
+n11833749
+n10646942
+n07760070
+n10286539
+n04469684
+n13030616
+n03939440
+n01725086
+n09967816
+n10500824
+n13026015
+n03983928
+n02936921
+n04115542
+n10245029
+n12105828
+n12452673
+n10498046
+n10737264
+n11766046
+n04079603
+n10072054
+n12569037
+n10153155
+n09867311
+n02806992
+n10258602
+n10164025
+n10520964
+n02258508
+n12199399
+n05266096
+n08496334
+n10351064
+n12441552
+n12878325
+n13102648
+n02980625
+n03462972
+n12395906
+n13022903
+n11895714
+n03324814
+n11318824
+n01728266
+n07883510
+n10731013
+n10181799
+n12142357
+n09671089
+n11531334
+n01718414
+n04573625
+n10390600
+n11553522
+n01314910
+n04227519
+n10514784
+n02944256
+n12103680
+n03081859
+n11655592
+n12569616
+n10700105
+n09755086
+n03865820
+n01456137
+n10442232
+n02900987
+n04491934
+n07849026
+n04519728
+n09986450
+n03305300
+n10186143
+n02879422
+n03018614
+n10747548
+n10562509
+n10068425
+n12593341
+n11937692
+n08679562
+n09613690
+n10646433
+n12251740
+n10994097
+n13048447
+n03848537
+n12153741
+n12614096
+n11654438
+n09985470
+n10562968
+n02923915
+n10740594
+n07802767
+n12514592
+n10335801
+n03878674
+n12586499
+n10255459
+n02413824
+n10312600
+n02616128
+n12644283
+n04238953
+n04526520
+n01898593
+n09737161
+n03372822
+n09781398
+n10339251
+n02502807
+n10198832
+n10679610
+n13136781
+n11974373
+n11680457
+n10083677
+n04037298
+n09945021
+n09987239
+n02708885
+n13107807
+n10130877
+n12507379
+n08651104
+n12116058
+n10135297
+n04269086
+n03858533
+n10477955
+n04394031
+n10442417
+n10074735
+n03618797
+n03460455
+n04374521
+n10756061
+n08517010
+n12923108
+n02362194
+n01704103
+n10062492
+n01394771
+n10473789
+n10330593
+n02748183
+n12562141
+n09745933
+n02505485
+n11922661
+n12018014
+n09866922
+n04067143
+n13161254
+n07813495
+n01374846
+n10213429
+n03253071
+n02546028
+n01642097
+n01475232
+n03212247
+n10155600
+n11689957
+n11738997
+n10525878
+n03301389
+n10589666
+n01908958
+n10289766
+n03900028
+n03437295
+n02987823
+n02739123
+n10505347
+n02546627
+n10381804
+n10132502
+n10336904
+n10189597
+n09786115
+n12875697
+n10761519
+n01470733
+n02875626
+n12111238
+n07862770
+n07856895
+n09996039
+n03368048
+n07913300
+n10062996
+n10555430
+n04302863
+n12758555
+n10740732
+n02385898
+n02385098
+n12162758
+n03887899
+n03976268
+n04234160
+n03641947
+n07857076
+n10578656
+n12135729
+n12675515
+n09032191
+n12969670
+n02600503
+n12518013
+n10227166
+n10121026
+n01801672
+n10661216
+n03244388
+n04147291
+n09664556
+n02539573
+n04480141
+n10601362
+n02613572
+n10537906
+n02613820
+n11656771
+n03841011
+n02845985
+n12534208
+n10241024
+n03645290
+n12743976
+n11922839
+n07709701
+n03066232
+n03467380
+n09266604
+n09663786
+n12775070
+n02427183
+n04083113
+n12896615
+n10501453
+n02345774
+n09965515
+n09704157
+n10666752
+n03846970
+n04167661
+n03991321
+n09556121
+n10686517
+n02586238
+n03594277
+n03591313
+n10391416
+n10756837
+n13163649
+n03971960
+n10245341
+n02577041
+n04481642
+n12373739
+n10214062
+n10091997
+n10275848
+n02090253
+n03514340
+n04593629
+n11795216
+n03126927
+n11871748
+n10272782
+n12056099
+n04484024
+n03101375
+n12255225
+n10724372
+n10531838
+n02354781
+n02389865
+n02853336
+n01477080
+n01779939
+n10776052
+n10724132
+n10284871
+n10554141
+n03898787
+n02366301
+n10721612
+n04421740
+n04256758
+n01445593
+n10103921
+n02729222
+n02530188
+n02387452
+n02601921
+n01711160
+n02474110
+n09869447
+n12789977
+n10158506
+n10396908
+n07839593
+n02662825
+n02473720
+n13034788
+n07752602
+n03762238
+n10262880
+n07770180
+n04030054
+n10151367
+n03525252
+n10252075
+n10747424
+n10191388
+n04130566
+n03951068
+n13239921
+n03733547
+n10358124
+n11549779
+n09203827
+n04043168
+n10359422
+n04286960
+n04237287
+n10130686
+n02338449
+n12912274
+n10586998
+n02812785
+n10364502
+n03955941
+n12324222
+n09743601
+n03766600
+n01427399
+n12968309
+n11776234
+n01501777
+n10051026
+n10397001
+n01516212
+n02596252
+n02225081
+n10479328
+n02109687
+n10181445
+n02248062
+n03802973
+n01639187
+n02142734
+n02342534
+n02410141
+n02743426
+n03950359
+n12253835
+n07805478
+n03706415
+n03578981
+n04560619
+n09761753
+n03524425
+n01962788
+n04350235
+n10686694
+n13139321
+n10195155
+n12335937
+n12758399
+n03805374
+n12895298
+n03800371
+n11972959
+n11530008
+n03178538
+n02217839
+n10591072
+n04033557
+n01880813
+n12292877
+n02430643
+n07599383
+n01954516
+n09894909
+n02474605
+n03576443
+n07595051
+n03367875
+n12945549
+n02360480
+n14583400
+n04208582
+n02405577
+n02550655
+n02513355
+n04381450
+n00444490
+n03567912
+n09937688
+n07932323
+n04029416
+n01913346
+n13237508
+n04437276
+n12938445
+n03042384
+n12543639
+n03194992
+n04094250
+n12045514
+n03825913
+n03504293
+n12758250
+n03547861
+n03649288
+n04572235
+n07569423
+n03534695
+n03253714
+n01501641
+n13906767
+n12578255
+n11749603
+n07742513
+n07609083
+n04214413
+n07595751
+n12013701
+n12592839
+n12949160
+n04093223
+n02983072
+n03510072
+n02966068
+n03867854
+n01747285
+n10691318
+n13091982
+n12574470
+n02255023
+n03449217
+n03153585
+n04006227
+n13140049
+n02965024
+n03805503
+n03911406
+n13120958
+n12203699
+n01456454
+n10397142
+n12920043
+n02412977
+n08674344
+n07801007
+n03037590
+n10361296
+n13133316
+n03483637
+n04435759
+n12983873
+n02627037
+n03783304
+n07725158
+n02921292
+n01788864
+n01705010
+n12616996
+n03903290
+n08662427
+n03667060
+n07856992
+n03252422
+n02449699
+n12137954
+n10024025
+n07891095
+n04337157
+n04368109
+n03015631
+n02363996
+n12824289
+n03206602
+n12799269
+n02333733
+n01793565
+n01721898
+n03178173
+n02844056
+n11688378
+n13889066
+n02637475
+n03750437
+n01403457
+n01717229
+n02677136
+n12512294
+n03736269
+n02838577
+n08661878
+n01993830
+n02777638
+n02900857
+n04023021
+n03843092
+n07770439
+n12928491
+n03697812
+n02639922
+n13139482
+n07771082
+n12487058
+n07774182
+n02122810
+n02856362
+n11686195
+n11687432
+n02853870
+n04239218
+n02665250
+n02938218
+n11746600
+n10183347
+n10681194
+n04164199
+n04407257
+n12549005
+n02331842
+n03862379
+n02863638
+n11962994
+n03091907
+n04177654
+n02252972
+n02403153
+n01376437
+n02848806
+n08579266
+n07616265
+n10331258
+n10765587
+n09433312
+n03412387
+n10178077
+n13123841
+n02532918
+n04144651
+n03296963
+n03450881
+n04348988
+n10425946
+n03257065
+n02354320
+n11689197
+n04084682
+n10140783
+n03637027
+n02346170
+n02559144
+n01705591
+n09400584
+n03840327
+n03918074
+n04053767
+n02406046
+n00288190
+n03160001
+n03366464
+n09249155
+n01324305
+n07556872
+n03381565
+n12705220
+n11874878
+n02632494
+n02502006
+n03146560
+n02179340
+n04312756
+n10162016
+n03800563
+n04140853
+n07933652
+n03075248
+n04421582
+n10652703
+n02218134
+n12233249
+n04578559
+n01781071
+n02615298
+n04436832
+n04054566
+n02608284
+n11674019
+n03505764
+n02662397
+n09422190
+n04382537
+n04355684
+n04383923
+n09888635
+n03783575
+n03228796
+n07772026
+n02381119
+n15060326
+n10586166
+n12647787
+n02458517
+n10281546
+n03498866
+n02485988
+n10121246
+n09391644
+n03103904
+n08676253
+n02203978
+n04092168
+n03213014
+n03138217
+n04135933
+n12612811
+n04478066
+n02157285
+n02543255
+n03863783
+n01502101
+n03930229
+n12439830
+n09425019
+n02618513
+n02910241
+n12261359
+n03648667
+n04365229
+n03461651
+n04388040
+n03295928
+n03581531
+n04203356
+n02622249
+n13142907
+n04497249
+n11678377
+n02366579
+n02931013
+n02837134
+n03132438
+n13092987
+n04196803
+n03056215
+n03255322
+n02130925
+n10291469
+n02971940
+n01718096
+n12510774
+n11766432
+n04271891
+n03366721
+n03154616
+n03694356
+n10478293
+n11763142
+n07763483
+n03037228
+n09201998
+n01517389
+n00443517
+n12693244
+n03580990
+n03519848
+n10238375
+n10783646
+n03564849
+n03975926
+n02473554
+n02450426
+n03464952
+n04411835
+n04573045
+n10505732
+n04337650
+n10621514
+n10334782
+n12434985
+n07769102
+n10594523
+n05475397
+n01875610
+n03299406
+n10507692
+n02593679
+n03317233
+n13239736
+n03550420
+n03247351
+n03819047
+n03633341
+n03154745
+n04073425
+n04532022
+n02910964
+n04301242
+n04378651
+n13098515
+n11775626
+n14603798
+n10263146
+n01886045
+n03761731
+n02224713
+n04591249
+n02144251
+n03849412
+n11548728
+n04051705
+n12298165
+n03150795
+n03989447
+n02826459
+n07602650
+n03155915
+n09891730
+n02067603
+n01523105
+n03618339
+n03897130
+n02711780
+n05285623
+n03533486
+n04085873
+n01923404
+n10139077
+n01709484
+n02183507
+n03216562
+n01971850
+n03136051
+n02948834
+n03589313
+n03665851
+n02937336
+n02035656
+n07769465
+n07849186
+n12585373
+n12280364
+n02846260
+n02511730
+n02614653
+n04193179
+n11718681
+n09467696
+n01522450
+n03040836
+n03162297
+n11896141
+n04000480
+n10350220
+n07746038
+n02124157
+n10655169
+n03476542
+n03895038
+n00443917
+n07757753
+n01726203
+n02987706
+n12750076
+n03012734
+n02941228
+n04194009
+n04501127
+n09794550
+n03510487
+n08589670
+n03166951
+n03673270
+n09792125
+n08492354
+n02396157
+n01628331
+n03993878
+n07833816
+n04958865
+n13650447
+n04339191
+n02826683
+n02893269
+n02810139
+n02626471
+n02589796
+n08677801
+n04325968
+n03275864
+n02622547
+n04406687
+n04097085
+n02998107
+n07831450
+n03658102
+n02575590
+n03523398
+n02412909
+n02953850
+n04337503
+n03510987
+n12664005
+n03710294
+n13138155
+n10110093
+n07831955
+n03932080
+n12971804
+n03943623
+n03726371
+n10531445
+n12984489
+n07835051
+n12097556
+n02685701
+n03038041
+n02451125
+n04594919
+n02372140
+n02665985
+n03496183
+n03961828
+n03802800
+n01713170
+n03602790
+n04974145
+n02780588
+n04031884
+n03588216
+n02614140
+n04578708
+n04501281
+n03166600
+n03992975
+n04206070
+n03227721
+n02582349
+n02664642
+n07805389
+n09226869
+n02459190
+n12216968
+n03628984
+n02524928
+n09209025
+n04078002
+n03167153
+n03562565
+n07599554
+n10252547
+n03279804
+n07692887
+n14909584
+n02529293
+n04444953
+n04156814
+n07616174
+n03415626
+n03331244
+n03868324
+n03644073
+n02818687
+n10085101
+n02953056
+n03202481
+n02118707
+n03591901
+n12602434
+n02943465
+n02818254
+n07922607
+n02597004
+n04212810
+n04056073
+n12327528
+n02207647
+n01792808
+n03002555
+n03951213
+n12242123
+n10062275
+n12325787
+n10048117
+n11937278
+n03624767
+n04039041
+n04059298
+n03707171
+n07758407
+n01333483
+n02219015
+n02436645
+n02478239
+n04457638
+n01781698
+n09474765
+n03686363
+n10769084
+n09456207
+n02385776
+n13555775
+n03962685
+n13129078
+n03463185
+n01429172
+n04243251
+n12177129
+n03143754
+n03958338
+n02791795
+n04560502
+n12776774
+n02745816
+n03009111
+n02976552
+n03008817
+n03211413
+n03537550
+n12200504
+n01909788
+n11790089
+n03480973
+n10507070
+n01707294
+n04374907
+n04281571
+n00006024
+n03823906
+n12603273
+n03503358
+n04027820
+n12645530
+n02535080
+n04143365
+n08385989
+n12661227
+n12814857
+n11871059
+n04268418
+n13128582
+n01928865
+n04359124
+n12670334
+n03610836
+n04543924
+n02252799
+n15102359
+n04437380
+n04316924
+n11872324
+n09330378
+n10122300
+n03784139
+n00443375
+n14993378
+n01721174
+n00004475
+n00006484
+n00007846
+n00015388
+n00017222
+n00021265
+n00021939
+n00288000
+n00433458
+n00433661
+n00433802
+n00439826
+n00440218
+n00440509
+n00440747
+n00441824
+n00442115
+n00442981
+n00443231
+n00444651
+n00445351
+n00445802
+n00447073
+n00447221
+n00447540
+n00448466
+n00448640
+n00448958
+n00449295
+n00449695
+n00450335
+n00450700
+n00451370
+n00451866
+n00452293
+n00453935
+n00454237
+n00454624
+n00463246
+n00464651
+n00464894
+n00467719
+n00467995
+n00468480
+n00469651
+n00471437
+n00471613
+n00479076
+n00480508
+n00480993
+n00482298
+n00523513
+n01035667
+n01316422
+n01316579
+n01316949
+n01317089
+n01317391
+n01317541
+n01319467
+n01320872
+n01321230
+n01321579
+n01321854
+n01322343
+n01322685
+n01322898
+n01323068
+n01326291
+n01329186
+n01338685
+n01339336
+n01340935
+n01342269
+n01358572
+n01367772
+n01375204
+n01376237
+n01380610
+n01384687
+n01385330
+n01387065
+n01389507
+n01390123
+n01392380
+n01395254
+n01397114
+n01402600
+n01407798
+n01421807
+n01438208
+n01439121
+n01439514
+n01439808
+n01441425
+n01444783
+n01445429
+n01446589
+n01446760
+n01448951
+n01450661
+n01454856
+n01455778
+n01458842
+n01459791
+n01461646
+n01466257
+n01467336
+n01468238
+n01468712
+n01471682
+n01473806
+n01474283
+n01477525
+n01478511
+n01480516
+n01480880
+n01481331
+n01482071
+n01482330
+n01483522
+n01484097
+n01488918
+n01491874
+n01492357
+n01493541
+n01494757
+n01494882
+n01495006
+n01495701
+n01497118
+n01498406
+n01498699
+n01498989
+n01500091
+n01501160
+n01503061
+n01514752
+n01515078
+n01517565
+n01524359
+n01525720
+n01527194
+n01527617
+n01528654
+n01529672
+n01533339
+n01534582
+n01534762
+n01537134
+n01538955
+n01539573
+n01540233
+n01541922
+n01542786
+n01544208
+n01546921
+n01547832
+n01548301
+n01549430
+n01550761
+n01553142
+n01555809
+n01557185
+n01560105
+n01560636
+n01563128
+n01563746
+n01564394
+n01567133
+n01568132
+n01569836
+n01570676
+n01571904
+n01572328
+n01573074
+n01574045
+n01574390
+n01575745
+n01576695
+n01577659
+n01578575
+n01579028
+n01580379
+n01580490
+n01580772
+n01580870
+n01581166
+n01581434
+n01581730
+n01582398
+n01582498
+n01582856
+n01584225
+n01585121
+n01587834
+n01588431
+n01589286
+n01591697
+n01592257
+n01592540
+n01594372
+n01595624
+n01597336
+n01598588
+n01598988
+n01600085
+n01600657
+n01602080
+n01602209
+n01602630
+n01603600
+n01604330
+n01605630
+n01608814
+n01609062
+n01609391
+n01609751
+n01610955
+n01611472
+n01612628
+n01613294
+n01613615
+n01615121
+n01616551
+n01616764
+n01617095
+n01617443
+n01617766
+n01618082
+n01618922
+n01619310
+n01619536
+n01619835
+n01620135
+n01620414
+n01620735
+n01621127
+n01622352
+n01623706
+n01627424
+n01629276
+n01630284
+n01631175
+n01632047
+n01637112
+n01637932
+n01639765
+n01640846
+n01645776
+n01649170
+n01650167
+n01651487
+n01653773
+n01661091
+n01661592
+n01661818
+n01662622
+n01662784
+n01663401
+n01664369
+n01665932
+n01667432
+n01668091
+n01669372
+n01670092
+n01672032
+n01674216
+n01674464
+n01674990
+n01676755
+n01680264
+n01680478
+n01681940
+n01684133
+n01685439
+n01686044
+n01686220
+n01686403
+n01686609
+n01686808
+n01687665
+n01688961
+n01689411
+n01691951
+n01692864
+n01693783
+n01694709
+n01696633
+n01697178
+n01698434
+n01699040
+n01701551
+n01702256
+n01703011
+n01703569
+n01705934
+n01708106
+n01708998
+n01712008
+n01712752
+n01717016
+n01719403
+n01722998
+n01724231
+n01726692
+n01727646
+n01730185
+n01730307
+n01730812
+n01730960
+n01731545
+n01732244
+n01733757
+n01734637
+n01734808
+n01735439
+n01735577
+n01735728
+n01737472
+n01737728
+n01737875
+n01738065
+n01738601
+n01739647
+n01740551
+n01741232
+n01741562
+n01741943
+n01743605
+n01745125
+n01745484
+n01746359
+n01747885
+n01749582
+n01749742
+n01751036
+n01752165
+n01753959
+n01754876
+n01755740
+n01767661
+n01769347
+n01770795
+n01771417
+n01772222
+n01775370
+n01776192
+n01776705
+n01777304
+n01777467
+n01777649
+n01777909
+n01778217
+n01778487
+n01778621
+n01778801
+n01779148
+n01779463
+n01779629
+n01780696
+n01782209
+n01785667
+n01789386
+n01789740
+n01791107
+n01791625
+n01792158
+n01792640
+n01794158
+n01795088
+n01795735
+n01795900
+n01796019
+n01796105
+n01796519
+n01796729
+n01798706
+n01798839
+n01798979
+n01799302
+n01800424
+n01801088
+n01801479
+n01802721
+n01803078
+n01804478
+n01804653
+n01804921
+n01805070
+n01805801
+n01806847
+n01807828
+n01808140
+n01808291
+n01808596
+n01809106
+n01810700
+n01811909
+n01812337
+n01813385
+n01814370
+n01814921
+n01815601
+n01816887
+n01819115
+n01820348
+n01820801
+n01821076
+n01821203
+n01822602
+n01823013
+n01824749
+n01825930
+n01826364
+n01827403
+n01829869
+n01831712
+n01832167
+n01834177
+n01834540
+n01835276
+n01838038
+n01838598
+n01839598
+n01841102
+n01843719
+n01844231
+n01844551
+n01844917
+n01845132
+n01845477
+n01846331
+n01848123
+n01848648
+n01849466
+n01850373
+n01851375
+n01852142
+n01852861
+n01853498
+n01854415
+n01856072
+n01856155
+n01856380
+n01856553
+n01856890
+n01857079
+n01857325
+n01857512
+n01857632
+n01857851
+n01858441
+n01859496
+n01860497
+n01861148
+n01861778
+n01871543
+n01871875
+n01874434
+n01874928
+n01876326
+n01877134
+n01878061
+n01878335
+n01878639
+n01878929
+n01879217
+n01879509
+n01880152
+n01881171
+n01883513
+n01883920
+n01886756
+n01887896
+n01888264
+n01889074
+n01889520
+n01890860
+n01891633
+n01892551
+n01894207
+n01905661
+n01906749
+n01907738
+n01909422
+n01911403
+n01911839
+n01912454
+n01914163
+n01914830
+n01915811
+n01916187
+n01916925
+n01918744
+n01922303
+n01925270
+n01925695
+n01926379
+n01926689
+n01927159
+n01927456
+n01927928
+n01928215
+n01930852
+n01931140
+n01931520
+n01931714
+n01932151
+n01932936
+n01933151
+n01933478
+n01933988
+n01934440
+n01935176
+n01936391
+n01937909
+n01940736
+n01941223
+n01942177
+n01942869
+n01943541
+n01944118
+n01944812
+n01944955
+n01945143
+n01945340
+n01945845
+n01946277
+n01948573
+n01951613
+n01953361
+n01955933
+n01956481
+n01958038
+n01959985
+n01960459
+n01963571
+n01964049
+n01964441
+n01965889
+n01967094
+n01968315
+n01969726
+n01971094
+n01971280
+n01974773
+n01975687
+n01976146
+n01976957
+n01978930
+n01981702
+n01982650
+n01983048
+n01985493
+n01985797
+n01986806
+n01987545
+n01988701
+n01989869
+n01990007
+n01991028
+n01991520
+n01992262
+n01992423
+n01992773
+n01996585
+n01998183
+n02000954
+n02002075
+n02005790
+n02006985
+n02007284
+n02008041
+n02008796
+n02010453
+n02011805
+n02011943
+n02012185
+n02013177
+n02014941
+n02015554
+n02016358
+n02016956
+n02018027
+n02019190
+n02019438
+n02019929
+n02021050
+n02021795
+n02022684
+n02023341
+n02025043
+n02026059
+n02028175
+n02030035
+n02030287
+n02030996
+n02031934
+n02033208
+n02033324
+n02033561
+n02034129
+n02034661
+n02036053
+n02037464
+n02039171
+n02040505
+n02041085
+n02041246
+n02043063
+n02044178
+n02044778
+n02045369
+n02046759
+n02047260
+n02047614
+n02048698
+n02049532
+n02050004
+n02051474
+n02052204
+n02052365
+n02053083
+n02054502
+n02055658
+n02055803
+n02057731
+n02058594
+n02058747
+n02059162
+n02060411
+n02060889
+n02062017
+n02062430
+n02062744
+n02063224
+n02064338
+n02066707
+n02068206
+n02068974
+n02069701
+n02070430
+n02073250
+n02075296
+n02075927
+n02076196
+n02076779
+n02077152
+n02077658
+n02078292
+n02078574
+n02078738
+n02079005
+n02079389
+n02081571
+n02083346
+n02083672
+n02084071
+n02084861
+n02085374
+n02086346
+n02086478
+n02087122
+n02087551
+n02088839
+n02089232
+n02089555
+n02090475
+n02090827
+n02092468
+n02093056
+n02094562
+n02094721
+n02095050
+n02095412
+n02095727
+n02096756
+n02097786
+n02098550
+n02099029
+n02099997
+n02100399
+n02101108
+n02101861
+n02102605
+n02103406
+n02103841
+n02104523
+n02104882
+n02106966
+n02107420
+n02108254
+n02108672
+n02109150
+n02109811
+n02110532
+n02111626
+n02112497
+n02112826
+n02113335
+n02114100
+n02115012
+n02115335
+n02117512
+n02117646
+n02117900
+n02118176
+n02118333
+n02119247
+n02119359
+n02120278
+n02120997
+n02121620
+n02121808
+n02122725
+n02123785
+n02124623
+n02127292
+n02127381
+n02127482
+n02127586
+n02127678
+n02127808
+n02128598
+n02128669
+n02129463
+n02129530
+n02129837
+n02129923
+n02130545
+n02131653
+n02132466
+n02132580
+n02132788
+n02133400
+n02134971
+n02135220
+n02137722
+n02137888
+n02138647
+n02138777
+n02139199
+n02139671
+n02141306
+n02141713
+n02144593
+n02145424
+n02148835
+n02149420
+n02150482
+n02152740
+n02152991
+n02153203
+n02153809
+n02156732
+n02159955
+n02164464
+n02165877
+n02166229
+n02166567
+n02166826
+n02167505
+n02167820
+n02167944
+n02168245
+n02169023
+n02169218
+n02169705
+n02169974
+n02170400
+n02170993
+n02171453
+n02171869
+n02172518
+n02172678
+n02172761
+n02172870
+n02174355
+n02176261
+n02178411
+n02178717
+n02179012
+n02180233
+n02181235
+n02181724
+n02182045
+n02182355
+n02182642
+n02182930
+n02183857
+n02186153
+n02188699
+n02189363
+n02190790
+n02191273
+n02191773
+n02191979
+n02192252
+n02192513
+n02192814
+n02193009
+n02193163
+n02194249
+n02194750
+n02195091
+n02195526
+n02195819
+n02196344
+n02198532
+n02199502
+n02200198
+n02202287
+n02204722
+n02206270
+n02207179
+n02207449
+n02208280
+n02208498
+n02208848
+n02208979
+n02209111
+n02209354
+n02209624
+n02209964
+n02210427
+n02210921
+n02211444
+n02211627
+n02211896
+n02212062
+n02212602
+n02212958
+n02213107
+n02215161
+n02215770
+n02217563
+n02218713
+n02220055
+n02220225
+n02220518
+n02220804
+n02221083
+n02221414
+n02221571
+n02221715
+n02221820
+n02222035
+n02222321
+n02222582
+n02223266
+n02223520
+n02226183
+n02226821
+n02226970
+n02227247
+n02227604
+n02227966
+n02228341
+n02228697
+n02229156
+n02229765
+n02230023
+n02230187
+n02230480
+n02230634
+n02231052
+n02231803
+n02233943
+n02234355
+n02234570
+n02234848
+n02235205
+n02236241
+n02236896
+n02237424
+n02237581
+n02238235
+n02238887
+n02239528
+n02241569
+n02241799
+n02243562
+n02244173
+n02246011
+n02246628
+n02247511
+n02248368
+n02248510
+n02248887
+n02249515
+n02250822
+n02251775
+n02252226
+n02253127
+n02253715
+n02254697
+n02257003
+n02257284
+n02257715
+n02259377
+n02260421
+n02260863
+n02261419
+n02262178
+n02263378
+n02264885
+n02265330
+n02268148
+n02269196
+n02269522
+n02270011
+n02270200
+n02271570
+n02271897
+n02272871
+n02274024
+n02274259
+n02274822
+n02278210
+n02278839
+n02279637
+n02280458
+n02281015
+n02281136
+n02281267
+n02282257
+n02282385
+n02282553
+n02282903
+n02283077
+n02283201
+n02283951
+n02285548
+n02287004
+n02287799
+n02288789
+n02291220
+n02291572
+n02291748
+n02293352
+n02293868
+n02295064
+n02295390
+n02295870
+n02298541
+n02300173
+n02301452
+n02302459
+n02302620
+n02305407
+n02306433
+n02307325
+n02308139
+n02308471
+n02309337
+n02310000
+n02310717
+n02311060
+n02312006
+n02312427
+n02313008
+n02316707
+n02318167
+n02319308
+n02319555
+n02319829
+n02320127
+n02322047
+n02323449
+n02323902
+n02324045
+n02325722
+n02325884
+n02326074
+n02326763
+n02326862
+n02327028
+n02327175
+n02327435
+n02327656
+n02327842
+n02328429
+n02329401
+n02330245
+n02331046
+n02331309
+n02332755
+n02333546
+n02334460
+n02335127
+n02336011
+n02336641
+n02338901
+n02339376
+n02339922
+n02343058
+n02343320
+n02343772
+n02344528
+n02345600
+n02346998
+n02347274
+n02347573
+n02347744
+n02348173
+n02348788
+n02350105
+n02350989
+n02351870
+n02352591
+n02353861
+n02355227
+n02355477
+n02358091
+n02359324
+n02360781
+n02361587
+n02361706
+n02361850
+n02363245
+n02363351
+n02364520
+n02369680
+n02370806
+n02372584
+n02373336
+n02374149
+n02374451
+n02376542
+n02376791
+n02376918
+n02377181
+n02377480
+n02377703
+n02378415
+n02380335
+n02380583
+n02380745
+n02381460
+n02382437
+n02382948
+n02384858
+n02386014
+n02386310
+n02386496
+n02388276
+n02389346
+n02389559
+n02390454
+n02390834
+n02391234
+n02391373
+n02391508
+n02391994
+n02393580
+n02394477
+n02395003
+n02395694
+n02395931
+n02397529
+n02399000
+n02401031
+n02402010
+n02402175
+n02402425
+n02403325
+n02403454
+n02404186
+n02404573
+n02406174
+n02407959
+n02408660
+n02408817
+n02409870
+n02410702
+n02410900
+n02411705
+n02412440
+n02413131
+n02414578
+n02415435
+n02416519
+n02417070
+n02417534
+n02418064
+n02419796
+n02423218
+n02423362
+n02423589
+n02424305
+n02424695
+n02426813
+n02427724
+n02428349
+n02430045
+n02430559
+n02431122
+n02432511
+n02433546
+n02433925
+n02435853
+n02437136
+n02437971
+n02438173
+n02438272
+n02439033
+n02441326
+n02442172
+n02442336
+n02442446
+n02442572
+n02442668
+n02443015
+n02443346
+n02443808
+n02443959
+n02444251
+n02445004
+n02445171
+n02446206
+n02446352
+n02446645
+n02447021
+n02447762
+n02448060
+n02448633
+n02448885
+n02450034
+n02453108
+n02453611
+n02454794
+n02455135
+n02455428
+n02455720
+n02456008
+n02456275
+n02456962
+n02460009
+n02469914
+n02470325
+n02470899
+n02471300
+n02471762
+n02472293
+n02473307
+n02474777
+n02476219
+n02480153
+n02481103
+n02481235
+n02481366
+n02481500
+n02482060
+n02482286
+n02482474
+n02482650
+n02483092
+n02484322
+n02484473
+n02485225
+n02485371
+n02485536
+n02485688
+n02486657
+n02486908
+n02487079
+n02487547
+n02487675
+n02487847
+n02488003
+n02488415
+n02488894
+n02489589
+n02490597
+n02490811
+n02491107
+n02491329
+n02491474
+n02496913
+n02501583
+n02502514
+n02503127
+n02503517
+n02504770
+n02507649
+n02508021
+n02512053
+n02512938
+n02513560
+n02515214
+n02516188
+n02517442
+n02517938
+n02519148
+n02519686
+n02521646
+n02522399
+n02524524
+n02526425
+n02526818
+n02527057
+n02527271
+n02527622
+n02528163
+n02529772
+n02530421
+n02532028
+n02532602
+n02533209
+n02533834
+n02534559
+n02534734
+n02535537
+n02537085
+n02537319
+n02538406
+n02538985
+n02540412
+n02541687
+n02546331
+n02548689
+n02549989
+n02550460
+n02552171
+n02554730
+n02556846
+n02557591
+n02557749
+n02559862
+n02561108
+n02561661
+n02562315
+n02562796
+n02563182
+n02564720
+n02565573
+n02566109
+n02568959
+n02569484
+n02570838
+n02572196
+n02574910
+n02576223
+n02576575
+n02578233
+n02579557
+n02580336
+n02581957
+n02583567
+n02585872
+n02586543
+n02588286
+n02590495
+n02590702
+n02590987
+n02594250
+n02596381
+n02597367
+n02599052
+n02599958
+n02600298
+n02601344
+n02602405
+n02603317
+n02604157
+n02605316
+n02606384
+n02607201
+n02607862
+n02613181
+n02614482
+n02614978
+n02619165
+n02621908
+n02623445
+n02624167
+n02625612
+n02626762
+n02627835
+n02630281
+n02630739
+n02631041
+n02636170
+n02636854
+n02638596
+n02640626
+n02640857
+n02642107
+n02642644
+n02643112
+n02644113
+n02646667
+n02648625
+n02650050
+n02650541
+n02652668
+n02653145
+n02653786
+n02654425
+n02655523
+n02656670
+n02657368
+n02658079
+n02661017
+n02662239
+n02663849
+n02667379
+n02667576
+n02668393
+n02670382
+n02671780
+n02672371
+n02676261
+n02676670
+n02677028
+n02677718
+n02678384
+n02680110
+n02680754
+n02682407
+n02682922
+n02683791
+n02686121
+n02686568
+n02687992
+n02688443
+n02689274
+n02691156
+n02692513
+n02693413
+n02693540
+n02694426
+n02694966
+n02695627
+n02697576
+n02698244
+n02700258
+n02700895
+n02702989
+n02703275
+n02705944
+n02708224
+n02708555
+n02709367
+n02709637
+n02710600
+n02712643
+n02713218
+n02715229
+n02715513
+n02715712
+n02716626
+n02726305
+n02726681
+n02727016
+n02727825
+n02728440
+n02729837
+n02729965
+n02730265
+n02732072
+n02732827
+n02733213
+n02733524
+n02735361
+n02735688
+n02736798
+n02737660
+n02738031
+n02738271
+n02738535
+n02739550
+n02739668
+n02740533
+n02740764
+n02741475
+n02742322
+n02742753
+n02745492
+n02746365
+n02749790
+n02750169
+n02751067
+n02751295
+n02752496
+n02753044
+n02753394
+n02754103
+n02755352
+n02755529
+n02756098
+n02756977
+n02757462
+n02757810
+n02758134
+n02758960
+n02759700
+n02759963
+n02760099
+n02760199
+n02760429
+n02760855
+n02761392
+n02763198
+n02763714
+n02764044
+n02764614
+n02764779
+n02765028
+n02766320
+n02766534
+n02766792
+n02767433
+n02769075
+n02770830
+n02772554
+n02772700
+n02773037
+n02773838
+n02774152
+n02774630
+n02775483
+n02776205
+n02777100
+n02777734
+n02777927
+n02778456
+n02778669
+n02781121
+n02781338
+n02781517
+n02783035
+n02783324
+n02784998
+n02785648
+n02786198
+n02786463
+n02788689
+n02789487
+n02790823
+n02792552
+n02792948
+n02793842
+n02794008
+n02794779
+n02794972
+n02795783
+n02796207
+n02796623
+n02796995
+n02797692
+n02797881
+n02799897
+n02801184
+n02801525
+n02801938
+n02802721
+n02803349
+n02803666
+n02804252
+n02806088
+n02806379
+n02806875
+n02810471
+n02811468
+n02811719
+n02812201
+n02813252
+n02813399
+n02815478
+n02815950
+n02816494
+n02817031
+n02817650
+n02817799
+n02818832
+n02819697
+n02820210
+n02821627
+n02821943
+n02822220
+n02822399
+n02822865
+n02823335
+n02824448
+n02826589
+n02826886
+n02827606
+n02828299
+n02828884
+n02831335
+n02831724
+n02831894
+n02833793
+n02834778
+n02835412
+n02836268
+n02839351
+n02839910
+n02840619
+n02841063
+n02841506
+n02842133
+n02843029
+n02843777
+n02844214
+n02844307
+n02844714
+n02847631
+n02848216
+n02848523
+n02849154
+n02850950
+n02851099
+n02853016
+n02854532
+n02854926
+n02855089
+n02855390
+n02855793
+n02857365
+n02857477
+n02857644
+n02858304
+n02860415
+n02861886
+n02862048
+n02862916
+n02863750
+n02865665
+n02865931
+n02866578
+n02867715
+n02869737
+n02871631
+n02871824
+n02871963
+n02872752
+n02873839
+n02874086
+n02875436
+n02876326
+n02876457
+n02876657
+n02877962
+n02879517
+n02880189
+n02880546
+n02880940
+n02881193
+n02881906
+n02882483
+n02882647
+n02883004
+n02883344
+n02884225
+n02885108
+n02885338
+n02886599
+n02887209
+n02887970
+n02888569
+n02889425
+n02891188
+n02891788
+n02892499
+n02893418
+n02896294
+n02896442
+n02897389
+n02897820
+n02898173
+n02898369
+n02898585
+n02898711
+n02900705
+n02901481
+n02901901
+n02902079
+n02902916
+n02903006
+n02904109
+n02904640
+n02908217
+n02909285
+n02911485
+n02912065
+n02913152
+n02914991
+n02916179
+n02916350
+n02917377
+n02917607
+n02919414
+n02920503
+n02921884
+n02923129
+n02924116
+n02925519
+n02928413
+n02928608
+n02929289
+n02929462
+n02929923
+n02931417
+n02931836
+n02932019
+n02932400
+n02933112
+n02933462
+n02933750
+n02933990
+n02934168
+n02935658
+n02935891
+n02936176
+n02936281
+n02936714
+n02938886
+n02939866
+n02941095
+n02942699
+n02943241
+n02943871
+n02944826
+n02945161
+n02946270
+n02946348
+n02946921
+n02947212
+n02947818
+n02948557
+n02949202
+n02950186
+n02950256
+n02950632
+n02950943
+n02951843
+n02952485
+n02952674
+n02953673
+n02954163
+n02954340
+n02954938
+n02955065
+n02955247
+n02955540
+n02955767
+n02957135
+n02957755
+n02958343
+n02959942
+n02961451
+n02961947
+n02963302
+n02963692
+n02963821
+n02965216
+n02965300
+n02965529
+n02966545
+n02966786
+n02966942
+n02967081
+n02967991
+n02968473
+n02969010
+n02969163
+n02969634
+n02969886
+n02970685
+n02970849
+n02971691
+n02972397
+n02973017
+n02974697
+n02975212
+n02976939
+n02978205
+n02978753
+n02979516
+n02982599
+n02983189
+n02983904
+n02984061
+n02984203
+n02984469
+n02984699
+n02985137
+n02985828
+n02986066
+n02987047
+n02987492
+n02989099
+n02991048
+n02991302
+n02992032
+n02993546
+n02995998
+n02997391
+n02997607
+n03001282
+n03001627
+n03002210
+n03003091
+n03004620
+n03005515
+n03007130
+n03007591
+n03010656
+n03010795
+n03011018
+n03011355
+n03012159
+n03013006
+n03014440
+n03015254
+n03017070
+n03018209
+n03020034
+n03020416
+n03020692
+n03024333
+n03025070
+n03025886
+n03027108
+n03027250
+n03029066
+n03031422
+n03032811
+n03033362
+n03033986
+n03034516
+n03034663
+n03035510
+n03036469
+n03036866
+n03037108
+n03037709
+n03038685
+n03039015
+n03039947
+n03040229
+n03040376
+n03043274
+n03043958
+n03045337
+n03046257
+n03048883
+n03049066
+n03049457
+n03050026
+n03050546
+n03050655
+n03050864
+n03051396
+n03051540
+n03052464
+n03052917
+n03053047
+n03054901
+n03055670
+n03056097
+n03056493
+n03057021
+n03057636
+n03058107
+n03058603
+n03058949
+n03059366
+n03061050
+n03063073
+n03063338
+n03064350
+n03064758
+n03065708
+n03066849
+n03070193
+n03071021
+n03071160
+n03072201
+n03073296
+n03073977
+n03074380
+n03074855
+n03075097
+n03075500
+n03075634
+n03076411
+n03076708
+n03078287
+n03078670
+n03079230
+n03079741
+n03080497
+n03080731
+n03081986
+n03082127
+n03082807
+n03082979
+n03084420
+n03085333
+n03085602
+n03085915
+n03086183
+n03086457
+n03086670
+n03087366
+n03087643
+n03087816
+n03088707
+n03091044
+n03091374
+n03092166
+n03092314
+n03093792
+n03094503
+n03096439
+n03096960
+n03098140
+n03098806
+n03099454
+n03099771
+n03099945
+n03100346
+n03100490
+n03101156
+n03101986
+n03102654
+n03102859
+n03106722
+n03106898
+n03107046
+n03109881
+n03111690
+n03112869
+n03113152
+n03113657
+n03113835
+n03114839
+n03115180
+n03116530
+n03116767
+n03117199
+n03118346
+n03118969
+n03119510
+n03120198
+n03120491
+n03121897
+n03122748
+n03123809
+n03125870
+n03128085
+n03128427
+n03128519
+n03129001
+n03130066
+n03130563
+n03131669
+n03132261
+n03134853
+n03135917
+n03136369
+n03137579
+n03139464
+n03140900
+n03141065
+n03141327
+n03143572
+n03145384
+n03145843
+n03146846
+n03147509
+n03148324
+n03148727
+n03149401
+n03151077
+n03153948
+n03154073
+n03154446
+n03155178
+n03156071
+n03156405
+n03157348
+n03158796
+n03158885
+n03161450
+n03162818
+n03163798
+n03163973
+n03164605
+n03164722
+n03164929
+n03165823
+n03167978
+n03168107
+n03168217
+n03170635
+n03171356
+n03172965
+n03173387
+n03175604
+n03176386
+n03177165
+n03177708
+n03178000
+n03178430
+n03180504
+n03180969
+n03181293
+n03182140
+n03182232
+n03182912
+n03183080
+n03186818
+n03187751
+n03189818
+n03193597
+n03196062
+n03196324
+n03196598
+n03199647
+n03199901
+n03200357
+n03200539
+n03200701
+n03200906
+n03201035
+n03201638
+n03201996
+n03202354
+n03202760
+n03203089
+n03203806
+n03204306
+n03204558
+n03204955
+n03205143
+n03205304
+n03206718
+n03206908
+n03207305
+n03208556
+n03210683
+n03211117
+n03211616
+n03212811
+n03214253
+n03214450
+n03215191
+n03219135
+n03220237
+n03221059
+n03221720
+n03222516
+n03223162
+n03223441
+n03224753
+n03224893
+n03225777
+n03226538
+n03228016
+n03228533
+n03228692
+n03229115
+n03229526
+n03231160
+n03231819
+n03235796
+n03235979
+n03236580
+n03236735
+n03237212
+n03237639
+n03239259
+n03239726
+n03240140
+n03241093
+n03241335
+n03241496
+n03242120
+n03242506
+n03242995
+n03243218
+n03245271
+n03245421
+n03246933
+n03250952
+n03251533
+n03251766
+n03252324
+n03252637
+n03254374
+n03255488
+n03255899
+n03256788
+n03256928
+n03257586
+n03258905
+n03259505
+n03261776
+n03262519
+n03262809
+n03262932
+n03265032
+n03266749
+n03267821
+n03269203
+n03269401
+n03270695
+n03271765
+n03271865
+n03272239
+n03272383
+n03273061
+n03273913
+n03274561
+n03274796
+n03276179
+n03277459
+n03277771
+n03278248
+n03279153
+n03279364
+n03279508
+n03280394
+n03280644
+n03281145
+n03282060
+n03282401
+n03284743
+n03284981
+n03285912
+n03286572
+n03287733
+n03288003
+n03289985
+n03291413
+n03292960
+n03294048
+n03294833
+n03296478
+n03297103
+n03297644
+n03297735
+n03298089
+n03302790
+n03303217
+n03303831
+n03304197
+n03304465
+n03305522
+n03307573
+n03308152
+n03309808
+n03314378
+n03314884
+n03315644
+n03316406
+n03318136
+n03319457
+n03320046
+n03322570
+n03322940
+n03323703
+n03324928
+n03325088
+n03326073
+n03327234
+n03327691
+n03327841
+n03329663
+n03330792
+n03334017
+n03334492
+n03334912
+n03335030
+n03335846
+n03336839
+n03337494
+n03338287
+n03338821
+n03339296
+n03339643
+n03340009
+n03340923
+n03342961
+n03343354
+n03343560
+n03343853
+n03346135
+n03346455
+n03349296
+n03350352
+n03350456
+n03350602
+n03351262
+n03351979
+n03352628
+n03354903
+n03355468
+n03356446
+n03357267
+n03357716
+n03359137
+n03359566
+n03360731
+n03361683
+n03362771
+n03363363
+n03364008
+n03364937
+n03365592
+n03365991
+n03366823
+n03373237
+n03374649
+n03374838
+n03375171
+n03376279
+n03378342
+n03379343
+n03379828
+n03379989
+n03380647
+n03380867
+n03381126
+n03381231
+n03381776
+n03382856
+n03382969
+n03383468
+n03384167
+n03384891
+n03385557
+n03386011
+n03387323
+n03387653
+n03390327
+n03391770
+n03393324
+n03394480
+n03394649
+n03396580
+n03396654
+n03397266
+n03397532
+n03398228
+n03399761
+n03399971
+n03402188
+n03402369
+n03404012
+n03404360
+n03404449
+n03405265
+n03405725
+n03407369
+n03409393
+n03409591
+n03410147
+n03411339
+n03412058
+n03412220
+n03412511
+n03412906
+n03413264
+n03413428
+n03413828
+n03414162
+n03415252
+n03416489
+n03416775
+n03417345
+n03418158
+n03418242
+n03419014
+n03422072
+n03422589
+n03423719
+n03424630
+n03427296
+n03428090
+n03428349
+n03429003
+n03429288
+n03429914
+n03430091
+n03430313
+n03430551
+n03430959
+n03431243
+n03431745
+n03433637
+n03433877
+n03434285
+n03434830
+n03435593
+n03437941
+n03438257
+n03439814
+n03441112
+n03442288
+n03442756
+n03446070
+n03446832
+n03448031
+n03448956
+n03449564
+n03449858
+n03450516
+n03452267
+n03452449
+n03453320
+n03454110
+n03454211
+n03454707
+n03455355
+n03456548
+n03456665
+n03457008
+n03457686
+n03458271
+n03459914
+n03461882
+n03465500
+n03465818
+n03466162
+n03466839
+n03467517
+n03467796
+n03467984
+n03468696
+n03469493
+n03470387
+n03470629
+n03470948
+n03472232
+n03472535
+n03472937
+n03473817
+n03473966
+n03475823
+n03476083
+n03476313
+n03477773
+n03477902
+n03478756
+n03478907
+n03481521
+n03482523
+n03483230
+n03483531
+n03484083
+n03484931
+n03487331
+n03487444
+n03487774
+n03488188
+n03488603
+n03489162
+n03490324
+n03490449
+n03490884
+n03491988
+n03496296
+n03496612
+n03497100
+n03497657
+n03498536
+n03499468
+n03500295
+n03501152
+n03501288
+n03501614
+n03502331
+n03502509
+n03502777
+n03503718
+n03503997
+n03505383
+n03505504
+n03506370
+n03507963
+n03508101
+n03509394
+n03509843
+n03510583
+n03510866
+n03511175
+n03512147
+n03512911
+n03513137
+n03513376
+n03515338
+n03517899
+n03517982
+n03518631
+n03519674
+n03521076
+n03521544
+n03522634
+n03524574
+n03524976
+n03525074
+n03525454
+n03525827
+n03528263
+n03529444
+n03531281
+n03531447
+n03531546
+n03532342
+n03534776
+n03535024
+n03536761
+n03537412
+n03538037
+n03538300
+n03538634
+n03538957
+n03540267
+n03540595
+n03541091
+n03541696
+n03541923
+n03542333
+n03542860
+n03543603
+n03544360
+n03545150
+n03546340
+n03547054
+n03547530
+n03548930
+n03550153
+n03550289
+n03551084
+n03551790
+n03552449
+n03552749
+n03553486
+n03554460
+n03555426
+n03555662
+n03557590
+n03558176
+n03558404
+n03558739
+n03561169
+n03563200
+n03563710
+n03563967
+n03565288
+n03565565
+n03566329
+n03568117
+n03568818
+n03571942
+n03572205
+n03574555
+n03574816
+n03575958
+n03576215
+n03577672
+n03577818
+n03578055
+n03578251
+n03578656
+n03579538
+n03579982
+n03583621
+n03584400
+n03585073
+n03588951
+n03589513
+n03589791
+n03590306
+n03590932
+n03592245
+n03592773
+n03593526
+n03595409
+n03595860
+n03596285
+n03597317
+n03598151
+n03598299
+n03598646
+n03600977
+n03601638
+n03601840
+n03602081
+n03603722
+n03604629
+n03604843
+n03605722
+n03605915
+n03606465
+n03609235
+n03609542
+n03610418
+n03610992
+n03612814
+n03613294
+n03613592
+n03614007
+n03614532
+n03615563
+n03617095
+n03617594
+n03618546
+n03618982
+n03619396
+n03619650
+n03619793
+n03619890
+n03620052
+n03621049
+n03621694
+n03622931
+n03623556
+n03624134
+n03625355
+n03626115
+n03631177
+n03631811
+n03632852
+n03633886
+n03635032
+n03635668
+n03635932
+n03636248
+n03636649
+n03638883
+n03639675
+n03640988
+n03642444
+n03646296
+n03646916
+n03647520
+n03651388
+n03653220
+n03653454
+n03654576
+n03655072
+n03656484
+n03657239
+n03658858
+n03659292
+n03660124
+n03661340
+n03662719
+n03662887
+n03663531
+n03664675
+n03664943
+n03665366
+n03666362
+n03666917
+n03667235
+n03667829
+n03671914
+n03672827
+n03673450
+n03673767
+n03676759
+n03677766
+n03679384
+n03679712
+n03681477
+n03682487
+n03684823
+n03685307
+n03685820
+n03686130
+n03686470
+n03687928
+n03688943
+n03689157
+n03689570
+n03690851
+n03691817
+n03692379
+n03693293
+n03697552
+n03698604
+n03699280
+n03699975
+n03700963
+n03701191
+n03701391
+n03701640
+n03701790
+n03702248
+n03704834
+n03705379
+n03706653
+n03707597
+n03708036
+n03709206
+n03709363
+n03709545
+n03710528
+n03711711
+n03711999
+n03712887
+n03713069
+n03714235
+n03715386
+n03715669
+n03715892
+n03716966
+n03717131
+n03718212
+n03718335
+n03718699
+n03718789
+n03719053
+n03721590
+n03722007
+n03722288
+n03724176
+n03725035
+n03725717
+n03726516
+n03726760
+n03726993
+n03727837
+n03727946
+n03728437
+n03728982
+n03729647
+n03729951
+n03730153
+n03730788
+n03731695
+n03733644
+n03733925
+n03735637
+n03736970
+n03738241
+n03738472
+n03739518
+n03739693
+n03743902
+n03744276
+n03744684
+n03744840
+n03745571
+n03746330
+n03748162
+n03749504
+n03749807
+n03750206
+n03751065
+n03752185
+n03752922
+n03753077
+n03753514
+n03758894
+n03759432
+n03760671
+n03762982
+n03763727
+n03764276
+n03765561
+n03765934
+n03766322
+n03768132
+n03769722
+n03770954
+n03772077
+n03772674
+n03773035
+n03775199
+n03775847
+n03779000
+n03779370
+n03780047
+n03781787
+n03782190
+n03785499
+n03787523
+n03789171
+n03789400
+n03789946
+n03790230
+n03790512
+n03790755
+n03791235
+n03792048
+n03792526
+n03793850
+n03795976
+n03796181
+n03797390
+n03798982
+n03799113
+n03800485
+n03800772
+n03800933
+n03802007
+n03802228
+n03802393
+n03803116
+n03809312
+n03811295
+n03811444
+n03811847
+n03811965
+n03812382
+n03812924
+n03813176
+n03813946
+n03815278
+n03815482
+n03815615
+n03816005
+n03816136
+n03816849
+n03817647
+n03819595
+n03819994
+n03820154
+n03820318
+n03820728
+n03820950
+n03824197
+n03825080
+n03827536
+n03828020
+n03829340
+n03831757
+n03834040
+n03834604
+n03836062
+n03837422
+n03838748
+n03839172
+n03839276
+n03839795
+n03841666
+n03842156
+n03844045
+n03844233
+n03845190
+n03846234
+n03846772
+n03847471
+n03847823
+n03848168
+n03848348
+n03849275
+n03850613
+n03851341
+n03851787
+n03852280
+n03852688
+n03854815
+n03859280
+n03859495
+n03859958
+n03861430
+n03861842
+n03862676
+n03863923
+n03864139
+n03864356
+n03864692
+n03865371
+n03865949
+n03868406
+n03871083
+n03871524
+n03871724
+n03873848
+n03874138
+n03874823
+n03875218
+n03880129
+n03880323
+n03880531
+n03883054
+n03883773
+n03883944
+n03884639
+n03885535
+n03885669
+n03886053
+n03886641
+n03887185
+n03888022
+n03889503
+n03889726
+n03891051
+n03892557
+n03894051
+n03894379
+n03896103
+n03896233
+n03896419
+n03896628
+n03896984
+n03897943
+n03898271
+n03898633
+n03899612
+n03899933
+n03901338
+n03903133
+n03903424
+n03904060
+n03904183
+n03904433
+n03905540
+n03906997
+n03907654
+n03908204
+n03909160
+n03909406
+n03915118
+n03915437
+n03916470
+n03916720
+n03917327
+n03918480
+n03920737
+n03923564
+n03923692
+n03924069
+n03926148
+n03926412
+n03926876
+n03927792
+n03928116
+n03929091
+n03929202
+n03929443
+n03930515
+n03932670
+n03936269
+n03938522
+n03939677
+n03940256
+n03941684
+n03943920
+n03945615
+n03947111
+n03947466
+n03948459
+n03951971
+n03953020
+n03953416
+n03955809
+n03956785
+n03956922
+n03957315
+n03957762
+n03958630
+n03958752
+n03959014
+n03959701
+n03961939
+n03962525
+n03962932
+n03963028
+n03965907
+n03966325
+n03966751
+n03966976
+n03967942
+n03968293
+n03971321
+n03972524
+n03973520
+n03973628
+n03975035
+n03979377
+n03979492
+n03980026
+n03981340
+n03982232
+n03982895
+n03984234
+n03984381
+n03985232
+n03986704
+n03988170
+n03989665
+n03990474
+n03991443
+n03992325
+n03992703
+n03993180
+n03993403
+n03994008
+n03994757
+n03995018
+n03995856
+n03996145
+n03996416
+n03997484
+n03999992
+n04000311
+n04001397
+n04001499
+n04001845
+n04004210
+n04004475
+n04005912
+n04007664
+n04010057
+n04010779
+n04010927
+n04011827
+n04012084
+n04013729
+n04014297
+n04015204
+n04016576
+n04016684
+n04018399
+n04018667
+n04019101
+n04019696
+n04020087
+n04020298
+n04020912
+n04021028
+n04021362
+n04021798
+n04022332
+n04022708
+n04023249
+n04024274
+n04026053
+n04026918
+n04027023
+n04027706
+n04028315
+n04029734
+n04030274
+n04036303
+n04037964
+n04038440
+n04038727
+n04039848
+n04042358
+n04042632
+n04042795
+n04042985
+n04043733
+n04044307
+n04044498
+n04045085
+n04045397
+n04046590
+n04046974
+n04047401
+n04049405
+n04050066
+n04051549
+n04051825
+n04052757
+n04056932
+n04057047
+n04057435
+n04057846
+n04057981
+n04058096
+n04058239
+n04059947
+n04060647
+n04060904
+n04061793
+n04061969
+n04062644
+n04063373
+n04063868
+n04064401
+n04065464
+n04065789
+n04067231
+n04067353
+n04067921
+n04068441
+n04068601
+n04069276
+n04069777
+n04070207
+n04070964
+n04071102
+n04071263
+n04071393
+n04072193
+n04072551
+n04073948
+n04075468
+n04075916
+n04076284
+n04077430
+n04077734
+n04078574
+n04079106
+n04079244
+n04079933
+n04080454
+n04080833
+n04081844
+n04083649
+n04086794
+n04087126
+n04087709
+n04088696
+n04088797
+n04089666
+n04089976
+n04090548
+n04091097
+n04093625
+n04095210
+n04096066
+n04097622
+n04097866
+n04099175
+n04099429
+n04100174
+n04101497
+n04101701
+n04102037
+n04102285
+n04102406
+n04102962
+n04104147
+n04104500
+n04105068
+n04105438
+n04105893
+n04107984
+n04108268
+n04110068
+n04110654
+n04110955
+n04111190
+n04111414
+n04111668
+n04113765
+n04114996
+n04115256
+n04115996
+n04116389
+n04118021
+n04121228
+n04122349
+n04122492
+n04122825
+n04123123
+n04123567
+n04123740
+n04125116
+n04125853
+n04126541
+n04126659
+n04126980
+n04127904
+n04128499
+n04128837
+n04131929
+n04134632
+n04136510
+n04137444
+n04137897
+n04138977
+n04139859
+n04140064
+n04140631
+n04141838
+n04143897
+n04146050
+n04147495
+n04148054
+n04149083
+n04151108
+n04151581
+n04151940
+n04152387
+n04154753
+n04156297
+n04156411
+n04157320
+n04158807
+n04158956
+n04160372
+n04160586
+n04161358
+n04161981
+n04164757
+n04164868
+n04166111
+n04167489
+n04169437
+n04170037
+n04171459
+n04171629
+n04171831
+n04174101
+n04174500
+n04176068
+n04176190
+n04176528
+n04177329
+n04177545
+n04180063
+n04180888
+n04181228
+n04181718
+n04182322
+n04183217
+n04183329
+n04184435
+n04184600
+n04185071
+n04186051
+n04186268
+n04186455
+n04186624
+n04186848
+n04187061
+n04187547
+n04187885
+n04189092
+n04190052
+n04190464
+n04190747
+n04190997
+n04191150
+n04191595
+n04191943
+n04192238
+n04192858
+n04194289
+n04196080
+n04197391
+n04198015
+n04198797
+n04199027
+n04201733
+n04202417
+n04205318
+n04206356
+n04207763
+n04210390
+n04211356
+n04211970
+n04215910
+n04216634
+n04216860
+n04216963
+n04217718
+n04217882
+n04219424
+n04221823
+n04222210
+n04222470
+n04222847
+n04225031
+n04225222
+n04225729
+n04226464
+n04226537
+n04227900
+n04229007
+n04229107
+n04229480
+n04230603
+n04230808
+n04231693
+n04232153
+n04233832
+n04234455
+n04235291
+n04235771
+n04236001
+n04236377
+n04236702
+n04238617
+n04241042
+n04241394
+n04242408
+n04243003
+n04243941
+n04244997
+n04245847
+n04246855
+n04247630
+n04247736
+n04248507
+n04249415
+n04250224
+n04250599
+n04253931
+n04255499
+n04256520
+n04260589
+n04261116
+n04262678
+n04263336
+n04263760
+n04264233
+n04264914
+n04266486
+n04267577
+n04269944
+n04270891
+n04271148
+n04272054
+n04272782
+n04273064
+n04273796
+n04275283
+n04275661
+n04275904
+n04278353
+n04279172
+n04279987
+n04280259
+n04280970
+n04283585
+n04283905
+n04284002
+n04285146
+n04285622
+n04285803
+n04286128
+n04288272
+n04288533
+n04288673
+n04289449
+n04291242
+n04291759
+n04292414
+n04292572
+n04293119
+n04293744
+n04294212
+n04294426
+n04295081
+n04295881
+n04299215
+n04300358
+n04301000
+n04301474
+n04303258
+n04304375
+n04305471
+n04306080
+n04306847
+n04307419
+n04307878
+n04308084
+n04308273
+n04308397
+n04308583
+n04308807
+n04309348
+n04309833
+n04310721
+n04311595
+n04312154
+n04312432
+n04313220
+n04314914
+n04315828
+n04315948
+n04317420
+n04318131
+n04318982
+n04319937
+n04320405
+n04322026
+n04322692
+n04322801
+n04323819
+n04326799
+n04326896
+n04328054
+n04328329
+n04328946
+n04329477
+n04330340
+n04330669
+n04330998
+n04331277
+n04332987
+n04333129
+n04338517
+n04339638
+n04340750
+n04340935
+n04341133
+n04341414
+n04341686
+n04346679
+n04347519
+n04348184
+n04348359
+n04349401
+n04350104
+n04350458
+n04354589
+n04356595
+n04358707
+n04358874
+n04359335
+n04359589
+n04360501
+n04360798
+n04361095
+n04361260
+n04362821
+n04363210
+n04363874
+n04364545
+n04364827
+n04364994
+n04365328
+n04365484
+n04365751
+n04368695
+n04370048
+n04371563
+n04373894
+n04375775
+n04377057
+n04378956
+n04379243
+n04379964
+n04380346
+n04381994
+n04382334
+n04382880
+n04383130
+n04383301
+n04386664
+n04387201
+n04387400
+n04388162
+n04388743
+n04389521
+n04390873
+n04391838
+n04392526
+n04393095
+n04394261
+n04395875
+n04397168
+n04397261
+n04397645
+n04398497
+n04398688
+n04398834
+n04399046
+n04400289
+n04401088
+n04402057
+n04402580
+n04402746
+n04402984
+n04403638
+n04404817
+n04404997
+n04405540
+n04405762
+n04407435
+n04407686
+n04409128
+n04409806
+n04410086
+n04410365
+n04410485
+n04411264
+n04411966
+n04413151
+n04413419
+n04415663
+n04416901
+n04417180
+n04417361
+n04417809
+n04419073
+n04421872
+n04422875
+n04427715
+n04428008
+n04431436
+n04431745
+n04434932
+n04435180
+n04436185
+n04436401
+n04436542
+n04437670
+n04437953
+n04438304
+n04438643
+n04440963
+n04441662
+n04444749
+n04445040
+n04445952
+n04446276
+n04447276
+n04447443
+n04448070
+n04448361
+n04450243
+n04450640
+n04450749
+n04451818
+n04452615
+n04452848
+n04453156
+n04453666
+n04453910
+n04454654
+n04455250
+n04455652
+n04456472
+n04457326
+n04458843
+n04459362
+n04459610
+n04460130
+n04462011
+n04463679
+n04464852
+n04467099
+n04467307
+n04468005
+n04469251
+n04470741
+n04471315
+n04471632
+n04472243
+n04472726
+n04473884
+n04474466
+n04475411
+n04475631
+n04477548
+n04478512
+n04478657
+n04480527
+n04481524
+n04487724
+n04488427
+n04489008
+n04489817
+n04490091
+n04491769
+n04493109
+n04494204
+n04495450
+n04497442
+n04497570
+n04498523
+n04499446
+n04499554
+n04500060
+n04501837
+n04502197
+n04502502
+n04502670
+n04502851
+n04504141
+n04504770
+n04505036
+n04506994
+n04507453
+n04508163
+n04508489
+n04508949
+n04509260
+n04509592
+n04511002
+n04514241
+n04516116
+n04516214
+n04516672
+n04518132
+n04519153
+n04520170
+n04520382
+n04521987
+n04524313
+n04527648
+n04529681
+n04530566
+n04531098
+n04531873
+n04533042
+n04533199
+n04533700
+n04534127
+n04534895
+n04536153
+n04538552
+n04539203
+n04540761
+n04541320
+n04543158
+n04544450
+n04546194
+n04546855
+n04547592
+n04549122
+n04549919
+n04551055
+n04552696
+n04553389
+n04554871
+n04555600
+n04555897
+n04556948
+n04557308
+n04557751
+n04558059
+n04558804
+n04559023
+n04559730
+n04562262
+n04563204
+n04565375
+n04566257
+n04567098
+n04568069
+n04568557
+n04569520
+n04569822
+n04570958
+n04571292
+n04571566
+n04571958
+n04572935
+n04574471
+n04574999
+n04576002
+n04576211
+n04576971
+n04577426
+n04577769
+n04578801
+n04579230
+n04580493
+n04581595
+n04582349
+n04583620
+n04585745
+n04585980
+n04586932
+n04587648
+n04588739
+n04589190
+n04589434
+n04591056
+n04591887
+n04592005
+n04592099
+n04594218
+n04594489
+n04595285
+n04595855
+n04596852
+n04597066
+n04597804
+n04598136
+n04598582
+n04599124
+n04600312
+n04600486
+n04600912
+n04603729
+n04603872
+n04605726
+n04606574
+n04608329
+n04608567
+n04609531
+n04609651
+n04610176
+n04610503
+n04610676
+n04611916
+n04613015
+n04615226
+n04615644
+n04950713
+n04951373
+n04958634
+n04959672
+n04960277
+n04961691
+n04963740
+n04965179
+n04965661
+n04967191
+n04968895
+n04970059
+n04970631
+n04970916
+n04972801
+n04973386
+n04976952
+n05238282
+n05241218
+n05242070
+n05244934
+n05266879
+n05399034
+n05447757
+n05449959
+n05453657
+n05467758
+n05586759
+n06254669
+n06262567
+n06263369
+n06263609
+n06263762
+n06266417
+n06266710
+n06267145
+n06271778
+n06272290
+n06272803
+n06274092
+n06275353
+n06276697
+n06277280
+n06281040
+n06359467
+n06359657
+n06418693
+n06591815
+n06592078
+n06595351
+n06613686
+n06793231
+n07556637
+n07556970
+n07557165
+n07557434
+n07560652
+n07561112
+n07562495
+n07563800
+n07564629
+n07564971
+n07565725
+n07565945
+n07566340
+n07566863
+n07567390
+n07567707
+n07568818
+n07569106
+n07569543
+n07570720
+n07572353
+n07572957
+n07573103
+n07573696
+n07574602
+n07575076
+n07575726
+n07575984
+n07576182
+n07576438
+n07576577
+n07577374
+n07579575
+n07580053
+n07580359
+n07580470
+n07581346
+n07581775
+n07582277
+n07582441
+n07582609
+n07583197
+n07584228
+n07584593
+n07585208
+n07587441
+n07587700
+n07588947
+n07590320
+n07591473
+n07592094
+n07592656
+n07593774
+n07595914
+n07596046
+n07596452
+n07596684
+n07597145
+n07597365
+n07598734
+n07599468
+n07599783
+n07599998
+n07600506
+n07601407
+n07605474
+n07605944
+n07606278
+n07606764
+n07607707
+n07609407
+n07609840
+n07611148
+n07611358
+n07611839
+n07611991
+n07612367
+n07612632
+n07612996
+n07613671
+n07614198
+n07614825
+n07615052
+n07615190
+n07615460
+n07615569
+n07615671
+n07616590
+n07617188
+n07619004
+n07623136
+n07624466
+n07627931
+n07628068
+n07641928
+n07642471
+n07642933
+n07643306
+n07643474
+n07643764
+n07643981
+n07644244
+n07663899
+n07678729
+n07679356
+n07680517
+n07680932
+n07681926
+n07682316
+n07682624
+n07683786
+n07684600
+n07685730
+n07686873
+n07687211
+n07687469
+n07687789
+n07689003
+n07690273
+n07690892
+n07692405
+n07692614
+n07693889
+n07693972
+n07694403
+n07695878
+n07695965
+n07697100
+n07704054
+n07705931
+n07707451
+n07708512
+n07708798
+n07709333
+n07710007
+n07710283
+n07710616
+n07710952
+n07712063
+n07712382
+n07712748
+n07712856
+n07713395
+n07713895
+n07714078
+n07714802
+n07714895
+n07715561
+n07715721
+n07716034
+n07717070
+n07717858
+n07718671
+n07719437
+n07719839
+n07720442
+n07720615
+n07721325
+n07721456
+n07721678
+n07722217
+n07722763
+n07723330
+n07723559
+n07723753
+n07724943
+n07725376
+n07725531
+n07726796
+n07727578
+n07727868
+n07728804
+n07729000
+n07729485
+n07730406
+n07730855
+n07731122
+n07731587
+n07731952
+n07732302
+n07732747
+n07734017
+n07734292
+n07735052
+n07735803
+n07737081
+n07739125
+n07739506
+n07740220
+n07740954
+n07741461
+n07742012
+n07742704
+n07744246
+n07747055
+n07747811
+n07747951
+n07748753
+n07748912
+n07749095
+n07749192
+n07749312
+n07749731
+n07750586
+n07751451
+n07752377
+n07752664
+n07753743
+n07755089
+n07755411
+n07755707
+n07756096
+n07757132
+n07757312
+n07757602
+n07757990
+n07758680
+n07758950
+n07759424
+n07759691
+n07759816
+n07760501
+n07761141
+n07761309
+n07761611
+n07761777
+n07761954
+n07767344
+n07767847
+n07770571
+n07771212
+n07800091
+n07800740
+n07801508
+n07802152
+n07802417
+n07803093
+n07803545
+n07804323
+n07805254
+n07805594
+n07805731
+n07806221
+n07806633
+n07807317
+n07807710
+n07807922
+n07809096
+n07809368
+n07810907
+n07811416
+n07812184
+n07814203
+n07815588
+n07818277
+n07819480
+n07820497
+n07820814
+n07823951
+n07824702
+n07824988
+n07825717
+n07828987
+n07829412
+n07830593
+n07832902
+n07834507
+n07836731
+n07837002
+n07837362
+n07838233
+n07841495
+n07841639
+n07841907
+n07842753
+n07842972
+n07843464
+n07843775
+n07844042
+n07844604
+n07846143
+n07847198
+n07848338
+n07848771
+n07849336
+n07850083
+n07850329
+n07851298
+n07852045
+n07852919
+n07854813
+n07856270
+n07857959
+n07858595
+n07859284
+n07859583
+n07860805
+n07861158
+n07861813
+n07863374
+n07864638
+n07865105
+n07867421
+n07867883
+n07869391
+n07869775
+n07870313
+n07871436
+n07873464
+n07874063
+n07874159
+n07874259
+n07874343
+n07874441
+n07874780
+n07875693
+n07875835
+n07876281
+n07880751
+n07881117
+n07881205
+n07881404
+n07881800
+n07882497
+n07882886
+n07883031
+n07883251
+n07883384
+n07884567
+n07886572
+n07886849
+n07887634
+n07888465
+n07888909
+n07889510
+n07890352
+n07890750
+n07891726
+n07892813
+n07893528
+n07893891
+n07894102
+n07894298
+n07894965
+n07895237
+n07895435
+n07895595
+n07895710
+n07895839
+n07896287
+n07897200
+n07897865
+n07898117
+n07898333
+n07898745
+n07899108
+n07900406
+n07900616
+n07901587
+n07903208
+n07904395
+n07905038
+n07906284
+n07906877
+n07907161
+n07907548
+n07907943
+n07909129
+n07909811
+n07911371
+n07911677
+n07912211
+n07913393
+n07914413
+n07915618
+n07916041
+n07917618
+n07918028
+n07920222
+n07921455
+n07921948
+n07923748
+n07924033
+n07924560
+n07924834
+n07925966
+n07926920
+n07927197
+n07927931
+n07929519
+n07930554
+n07931001
+n07931096
+n07932614
+n07932841
+n07933274
+n07933891
+n07934032
+n07934530
+n07935152
+n07935504
+n07936263
+n07936745
+n07938149
+n07951464
+n08554440
+n08558963
+n08596076
+n08598301
+n08616050
+n08640531
+n08659446
+n09191635
+n09206896
+n09206985
+n09210862
+n09213434
+n09213565
+n09214060
+n09214916
+n09215437
+n09217230
+n09230041
+n09233446
+n09238926
+n09255070
+n09259025
+n09259219
+n09262690
+n09265620
+n09269882
+n09270735
+n09287968
+n09289331
+n09289596
+n09290444
+n09295946
+n09300306
+n09302616
+n09303008
+n09303528
+n09304750
+n09305031
+n09308572
+n09309292
+n09315159
+n09326662
+n09335693
+n09335809
+n09336555
+n09337253
+n09344198
+n09352849
+n09359803
+n09362945
+n09366017
+n09366317
+n09375606
+n09376526
+n09381242
+n09393605
+n09396465
+n09398677
+n09405787
+n09406793
+n09409512
+n09409752
+n09410224
+n09416076
+n09421799
+n09428628
+n09432990
+n09433442
+n09437454
+n09439213
+n09443641
+n09453008
+n09458269
+n09472413
+n09474010
+n09505153
+n09606009
+n09606527
+n09608709
+n09610405
+n09613191
+n09615336
+n09616922
+n09619168
+n09619452
+n09620078
+n09620794
+n09622049
+n09622302
+n09624168
+n09624559
+n09625401
+n09626238
+n09627906
+n09629246
+n09629752
+n09631129
+n09632274
+n09632518
+n09633969
+n09636339
+n09638875
+n09639919
+n09641002
+n09644152
+n09648743
+n09651123
+n09665545
+n09669631
+n09670280
+n09676884
+n09679925
+n09690208
+n09694771
+n09696585
+n09697401
+n09700964
+n09701148
+n09701833
+n09705124
+n09708750
+n09710164
+n09716047
+n09718217
+n09722658
+n09724785
+n09725229
+n09725772
+n09726621
+n09727440
+n09727826
+n09730204
+n09731436
+n09731571
+n09735258
+n09738400
+n09744679
+n09754217
+n09758173
+n09758885
+n09761068
+n09763784
+n09764201
+n09764598
+n09765278
+n09767197
+n09769076
+n09770179
+n09771435
+n09772746
+n09773962
+n09774783
+n09790482
+n09792555
+n09795124
+n09795334
+n09800964
+n09802445
+n09802641
+n09805151
+n09805475
+n09809538
+n09809749
+n09810166
+n09811712
+n09814660
+n09815790
+n09816771
+n09818022
+n09820263
+n09821831
+n09823502
+n09824135
+n09824609
+n09826204
+n09830194
+n09831962
+n09834699
+n09836160
+n09840217
+n09841188
+n09841515
+n09841696
+n09842047
+n09848489
+n09851575
+n09853645
+n09853881
+n09854915
+n09857007
+n09861946
+n09865398
+n09868270
+n09871681
+n09877951
+n09889691
+n09892693
+n09894654
+n09895222
+n09895701
+n09902353
+n09903153
+n09910374
+n09917593
+n09918248
+n09923418
+n09923673
+n09924996
+n09927089
+n09927451
+n09928136
+n09928451
+n09929298
+n09930257
+n09930876
+n09931640
+n09933098
+n09935434
+n09936892
+n09937056
+n09941964
+n09942970
+n09943239
+n09943811
+n09944160
+n09945319
+n09950457
+n09951070
+n09951274
+n09960688
+n09962966
+n09964411
+n09968845
+n09974648
+n09976728
+n09979321
+n09983572
+n09989502
+n09990415
+n09991867
+n09992538
+n09992837
+n09993252
+n09994673
+n09996481
+n09997622
+n10001217
+n10006748
+n10007684
+n10009484
+n10009671
+n10015215
+n10015897
+n10017422
+n10018861
+n10020890
+n10024362
+n10029068
+n10034201
+n10034614
+n10035952
+n10036266
+n10036929
+n10037385
+n10040945
+n10041887
+n10042690
+n10043643
+n10044879
+n10047459
+n10048367
+n10048836
+n10052694
+n10053808
+n10054657
+n10055730
+n10055847
+n10060175
+n10067968
+n10070711
+n10077593
+n10078131
+n10078806
+n10079399
+n10079893
+n10080869
+n10083823
+n10084043
+n10084295
+n10086383
+n10091651
+n10092488
+n10093475
+n10094584
+n10095869
+n10098710
+n10098862
+n10099375
+n10101634
+n10102800
+n10105085
+n10107303
+n10109662
+n10111903
+n10112129
+n10118844
+n10126177
+n10126424
+n10126708
+n10127689
+n10129825
+n10134396
+n10134982
+n10136959
+n10142747
+n10142946
+n10143172
+n10143725
+n10145340
+n10145774
+n10148305
+n10150071
+n10150940
+n10151570
+n10153594
+n10154186
+n10154601
+n10155849
+n10162194
+n10164233
+n10165448
+n10168183
+n10168584
+n10171567
+n10182190
+n10185793
+n10186774
+n10187130
+n10195593
+n10200781
+n10202624
+n10205457
+n10206173
+n10207169
+n10210137
+n10215623
+n10216106
+n10224578
+n10225219
+n10228278
+n10235385
+n10237069
+n10241300
+n10243664
+n10245639
+n10249270
+n10249459
+n10249950
+n10257221
+n10259348
+n10263411
+n10266328
+n10266848
+n10271677
+n10273064
+n10274815
+n10276045
+n10282672
+n10284064
+n10284965
+n10296444
+n10299250
+n10299700
+n10305635
+n10305802
+n10306004
+n10308732
+n10312287
+n10314054
+n10315561
+n10316360
+n10317007
+n10317500
+n10320863
+n10321340
+n10322238
+n10323999
+n10324560
+n10328437
+n10332385
+n10335246
+n10335931
+n10340312
+n10341573
+n10343554
+n10345100
+n10353016
+n10353355
+n10355142
+n10355449
+n10355688
+n10356450
+n10357613
+n10360747
+n10366966
+n10369528
+n10370381
+n10376523
+n10377021
+n10379376
+n10380672
+n10383816
+n10386984
+n10387196
+n10387324
+n10393909
+n10396106
+n10399130
+n10400998
+n10402824
+n10403876
+n10405694
+n10407954
+n10409752
+n10411551
+n10415037
+n10417551
+n10418101
+n10419047
+n10420031
+n10421016
+n10426454
+n10427764
+n10428004
+n10433737
+n10435716
+n10435988
+n10438172
+n10439851
+n10444194
+n10450303
+n10462860
+n10464052
+n10466918
+n10467179
+n10470779
+n10474064
+n10474645
+n10478960
+n10481268
+n10482054
+n10482921
+n10484858
+n10488309
+n10495421
+n10499355
+n10499857
+n10506544
+n10508710
+n10512372
+n10512708
+n10519494
+n10521100
+n10521662
+n10522035
+n10522324
+n10522759
+n10523341
+n10525134
+n10525436
+n10525617
+n10527334
+n10529231
+n10541833
+n10542888
+n10543161
+n10544232
+n10544748
+n10546633
+n10548537
+n10548681
+n10554846
+n10556518
+n10557854
+n10559288
+n10560637
+n10568200
+n10570019
+n10575787
+n10576962
+n10577284
+n10580535
+n10582746
+n10583387
+n10594147
+n10595164
+n10595647
+n10599806
+n10602985
+n10604634
+n10605253
+n10610465
+n10612210
+n10614629
+n10617193
+n10618685
+n10618848
+n10619642
+n10620758
+n10622053
+n10624074
+n10624310
+n10625860
+n10628644
+n10630188
+n10632576
+n10633450
+n10648237
+n10648696
+n10654932
+n10657835
+n10661002
+n10661563
+n10665698
+n10669991
+n10674130
+n10676018
+n10679174
+n10682953
+n10686073
+n10692883
+n10693824
+n10694258
+n10698368
+n10700201
+n10700640
+n10701180
+n10703336
+n10703692
+n10705615
+n10707233
+n10708454
+n10709529
+n10713686
+n10720453
+n10721321
+n10722575
+n10722965
+n10726786
+n10735298
+n10740868
+n10741152
+n10742997
+n10744164
+n10747119
+n10751265
+n10752480
+n10759151
+n10759982
+n10763383
+n10763620
+n10765679
+n10766260
+n10768903
+n10779610
+n10780632
+n10782791
+n10782940
+n10787470
+n10791221
+n10792335
+n10793570
+n10794014
+n11531193
+n11537327
+n11542640
+n11545524
+n11545714
+n11547562
+n11547855
+n11552386
+n11553240
+n11596108
+n11598686
+n11600372
+n11601177
+n11601918
+n11608250
+n11609475
+n11609684
+n11612923
+n11614250
+n11618861
+n11620673
+n11621029
+n11623105
+n11624531
+n11627168
+n11628456
+n11630017
+n11630489
+n11643835
+n11645914
+n11647306
+n11649878
+n11650558
+n11650759
+n11661372
+n11665372
+n11666854
+n11669921
+n11672400
+n11674332
+n11676500
+n11684264
+n11689483
+n11693981
+n11697560
+n11700864
+n11703669
+n11708658
+n11709674
+n11713164
+n11720353
+n11722982
+n11723770
+n11725015
+n11725623
+n11727091
+n11729478
+n11733054
+n11736694
+n11741350
+n11745817
+n11747468
+n11748002
+n11751765
+n11752578
+n11756092
+n11756669
+n11759224
+n11763625
+n11767354
+n11769621
+n11771539
+n11774513
+n11775340
+n11779300
+n11782036
+n11783920
+n11785668
+n11789438
+n11789962
+n11790788
+n11793779
+n11794519
+n11796005
+n11801392
+n11805956
+n11807108
+n11807979
+n11808721
+n11811473
+n11815491
+n11817914
+n11820965
+n11823043
+n11830714
+n11830906
+n11832214
+n11836722
+n11839568
+n11845557
+n11851578
+n11855274
+n11857696
+n11862835
+n11865071
+n11866248
+n11868814
+n11869351
+n11869689
+n11872146
+n11875691
+n11875938
+n11877473
+n11878283
+n11887119
+n11890022
+n11892637
+n11894327
+n11898639
+n11900569
+n11902709
+n11915214
+n11915658
+n11915899
+n11916467
+n11918286
+n11919447
+n11920498
+n11924445
+n11928352
+n11928858
+n11931918
+n11932745
+n11939699
+n11940006
+n11943407
+n11944196
+n11945367
+n11946727
+n11947251
+n11948264
+n11950345
+n11951511
+n11952346
+n11953884
+n11954484
+n11956850
+n11965627
+n11967744
+n11970101
+n11971248
+n11971783
+n11972759
+n11973341
+n11976170
+n11977303
+n11978233
+n11982115
+n11985053
+n11985739
+n11988893
+n11991263
+n11997032
+n11997969
+n12006766
+n12008252
+n12008749
+n12010628
+n12013511
+n12015959
+n12018760
+n12020507
+n12024176
+n12030654
+n12034141
+n12036067
+n12036939
+n12041446
+n12043444
+n12045860
+n12050959
+n12053405
+n12056217
+n12057447
+n12062468
+n12065316
+n12065777
+n12075151
+n12076577
+n12080395
+n12083591
+n12086012
+n12086539
+n12087961
+n12090890
+n12092262
+n12094244
+n12095020
+n12096395
+n12101870
+n12102133
+n12105125
+n12107970
+n12108432
+n12109827
+n12110778
+n12112008
+n12112918
+n12113657
+n12117017
+n12119099
+n12119238
+n12121033
+n12124627
+n12126360
+n12131550
+n12135898
+n12136720
+n12137120
+n12137569
+n12139575
+n12141495
+n12142085
+n12143676
+n12144313
+n12146311
+n12147226
+n12152532
+n12153580
+n12154773
+n12155583
+n12156819
+n12157056
+n12157769
+n12158031
+n12158798
+n12159055
+n12159555
+n12160490
+n12161285
+n12163035
+n12164363
+n12166424
+n12168565
+n12170585
+n12173664
+n12174311
+n12174926
+n12182049
+n12187663
+n12188289
+n12195391
+n12196129
+n12199266
+n12201580
+n12202936
+n12205694
+n12214789
+n12215579
+n12217453
+n12221191
+n12224978
+n12225349
+n12226932
+n12231192
+n12236546
+n12237486
+n12244153
+n12245695
+n12246232
+n12252168
+n12252866
+n12253229
+n12256112
+n12257570
+n12260799
+n12262553
+n12265394
+n12266217
+n12266796
+n12268246
+n12269241
+n12269652
+n12271643
+n12274630
+n12275489
+n12281241
+n12284262
+n12286826
+n12287642
+n12288823
+n12290748
+n12293723
+n12296432
+n12300840
+n12302071
+n12303462
+n12305475
+n12306717
+n12307756
+n12310349
+n12316444
+n12318378
+n12320010
+n12322501
+n12328398
+n12330469
+n12334293
+n12334891
+n12335483
+n12335664
+n12335800
+n12340383
+n12341542
+n12342299
+n12343480
+n12344283
+n12346578
+n12350758
+n12352287
+n12355760
+n12360108
+n12360684
+n12364604
+n12367611
+n12374418
+n12377198
+n12381511
+n12385429
+n12387633
+n12387839
+n12392070
+n12396924
+n12399132
+n12401335
+n12401684
+n12405714
+n12409231
+n12411461
+n12412355
+n12412606
+n12416423
+n12419037
+n12420535
+n12421467
+n12421683
+n12425281
+n12430198
+n12431434
+n12437513
+n12437769
+n12441958
+n12446200
+n12446519
+n12449296
+n12450344
+n12451915
+n12454159
+n12459629
+n12460697
+n12461466
+n12462032
+n12463743
+n12464476
+n12466727
+n12470092
+n12474167
+n12475035
+n12476510
+n12480895
+n12491826
+n12495146
+n12499163
+n12506181
+n12508309
+n12509476
+n12511856
+n12516584
+n12522188
+n12524188
+n12526516
+n12527738
+n12539074
+n12539306
+n12546183
+n12548280
+n12550210
+n12554526
+n12556656
+n12560282
+n12560775
+n12562577
+n12572546
+n12573256
+n12575322
+n12582231
+n12582665
+n12582846
+n12583126
+n12583401
+n12584191
+n12586298
+n12590232
+n12594989
+n12595964
+n12602262
+n12602980
+n12612170
+n12614477
+n12615710
+n12620196
+n12622875
+n12624381
+n12625383
+n12631331
+n12633638
+n12634211
+n12634429
+n12635744
+n12636885
+n12638218
+n12638556
+n12639736
+n12640607
+n12641413
+n12641931
+n12642200
+n12643473
+n12644902
+n12645174
+n12647376
+n12649065
+n12650556
+n12651821
+n12653218
+n12655869
+n12658118
+n12658846
+n12659356
+n12660601
+n12662772
+n12663804
+n12665048
+n12667406
+n12667964
+n12674120
+n12674685
+n12682411
+n12683407
+n12685431
+n12685831
+n12688716
+n12690653
+n12695144
+n12698435
+n12705013
+n12707781
+n12708293
+n12709901
+n12711596
+n12713063
+n12714755
+n12715914
+n12717072
+n12719684
+n12724942
+n12725521
+n12727301
+n12731401
+n12732491
+n12732756
+n12733647
+n12741222
+n12742741
+n12743823
+n12746884
+n12749049
+n12752205
+n12755225
+n12756457
+n12762896
+n12768369
+n12771192
+n12772753
+n12777436
+n12778605
+n12779603
+n12785724
+n12791064
+n12793015
+n12794985
+n12798284
+n12800586
+n12801520
+n12805146
+n12806732
+n12810595
+n12812235
+n12814643
+n12817464
+n12822769
+n12823717
+n12823859
+n12832315
+n12833985
+n12834798
+n12836212
+n12836862
+n12839979
+n12840749
+n12842302
+n12842887
+n12844939
+n12849061
+n12853080
+n12854048
+n12858150
+n12866968
+n12869478
+n12870535
+n12871272
+n12877244
+n12878169
+n12879963
+n12882779
+n12884260
+n12890265
+n12893463
+n12903367
+n12904938
+n12908645
+n12909421
+n12912670
+n12917901
+n12922763
+n12926480
+n12928071
+n12929403
+n12930778
+n12931906
+n12934036
+n12934479
+n12939104
+n12941536
+n12942395
+n12943443
+n12946849
+n12950126
+n12952165
+n12953206
+n12956170
+n12957608
+n12960378
+n12960863
+n12965626
+n12968136
+n12969131
+n12970193
+n12971400
+n12973791
+n12974987
+n12976198
+n12980840
+n12982468
+n12983961
+n12985773
+n12987056
+n12988158
+n12992868
+n12997654
+n12997919
+n13000891
+n13001041
+n13001206
+n13001366
+n13001529
+n13002750
+n13002925
+n13003061
+n13003254
+n13003522
+n13003712
+n13004423
+n13004640
+n13004826
+n13004992
+n13005329
+n13005984
+n13006171
+n13006631
+n13006894
+n13007417
+n13007629
+n13008157
+n13008315
+n13008485
+n13008689
+n13008839
+n13009085
+n13009244
+n13009429
+n13009656
+n13010694
+n13010951
+n13011221
+n13012253
+n13012469
+n13012973
+n13013534
+n13013764
+n13013965
+n13014097
+n13014265
+n13014409
+n13014581
+n13014741
+n13014879
+n13017102
+n13017240
+n13017439
+n13017610
+n13017789
+n13017979
+n13018088
+n13018232
+n13018407
+n13019496
+n13019643
+n13019835
+n13020191
+n13020481
+n13020964
+n13021166
+n13021332
+n13021543
+n13021689
+n13021867
+n13022210
+n13022709
+n13024012
+n13024500
+n13025647
+n13028611
+n13032115
+n13032923
+n13035241
+n13035389
+n13035707
+n13037585
+n13037805
+n13038068
+n13038376
+n13038744
+n13039349
+n13040629
+n13040796
+n13041312
+n13042982
+n13043926
+n13045210
+n13045975
+n13046130
+n13049953
+n13055423
+n13055577
+n13055792
+n13055949
+n13056135
+n13056349
+n13056607
+n13056799
+n13057054
+n13057242
+n13057422
+n13057639
+n13058037
+n13058272
+n13058608
+n13059298
+n13059657
+n13060017
+n13060190
+n13063269
+n13066129
+n13067191
+n13068917
+n13070308
+n13070875
+n13071371
+n13071553
+n13071815
+n13072031
+n13072209
+n13072350
+n13072528
+n13072706
+n13072863
+n13073055
+n13073703
+n13074619
+n13074814
+n13075020
+n13075272
+n13075441
+n13075684
+n13075847
+n13076041
+n13076405
+n13076643
+n13076831
+n13077033
+n13077295
+n13079419
+n13083023
+n13084184
+n13085113
+n13091620
+n13091774
+n13100156
+n13100677
+n13104059
+n13108131
+n13108662
+n13108841
+n13109733
+n13110915
+n13111174
+n13111881
+n13118707
+n13119870
+n13120211
+n13121104
+n13122364
+n13123431
+n13125117
+n13130161
+n13130726
+n13132034
+n13132338
+n13132486
+n13132940
+n13134302
+n13134947
+n13135832
+n13136316
+n13136556
+n13137409
+n13137672
+n13138308
+n13138658
+n13138842
+n13139055
+n13139647
+n13141141
+n13145444
+n13149296
+n13150894
+n13154841
+n13156986
+n13157137
+n13160831
+n13163991
+n13172923
+n13174670
+n13177529
+n13180534
+n13186388
+n13188096
+n13188268
+n13192625
+n13193642
+n13194572
+n13195761
+n13199970
+n13201969
+n13206817
+n13207736
+n13208705
+n13211790
+n13219422
+n13221529
+n13224673
+n13230662
+n13231678
+n13231919
+n13232106
+n13232363
+n13232779
+n13233727
+n13238375
+n13238988
+n13252672
+n13862780
+n13863186
+n13863473
+n13863771
+n13864153
+n13864965
+n13865298
+n13865483
+n13866144
+n13866827
+n13867492
+n13868248
+n13868371
+n13872592
+n13873502
+n13875392
+n13875571
+n13878306
+n13879320
+n13883603
+n13888491
+n13893786
+n13894434
+n13896100
+n13897996
+n13900287
+n13903079
+n13905121
+n13905275
+n13905792
+n13912260
+n13915999
+n14633206
+n14696793
+n14844693
+n14853210
+n14899328
+n14900184
+n14974264
+n14977504
+n14992287
+n15062057
+n15067877
+n15089258
+n15089472
+n15089645
+n15089803
+n15090742
+n15092409
+n15092751
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/imagenet.shortnames.list" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/imagenet.shortnames.list"
new file mode 100644
index 00000000..e9600eb5
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/imagenet.shortnames.list"
@@ -0,0 +1,21842 @@
+kit fox
+English setter
+Siberian husky
+Australian terrier
+English springer
+grey whale
+lesser panda
+Egyptian cat
+ibex
+Persian cat
+cougar
+gazelle
+porcupine
+sea lion
+malamute
+badger
+Great Dane
+Walker hound
+Welsh springer spaniel
+whippet
+Scottish deerhound
+killer whale
+mink
+African elephant
+Weimaraner
+soft-coated wheaten terrier
+Dandie Dinmont
+red wolf
+Old English sheepdog
+jaguar
+otterhound
+bloodhound
+Airedale
+hyena
+meerkat
+giant schnauzer
+titi
+three-toed sloth
+sorrel
+black-footed ferret
+dalmatian
+black-and-tan coonhound
+papillon
+skunk
+Staffordshire bullterrier
+Mexican hairless
+Bouvier des Flandres
+weasel
+miniature poodle
+Cardigan
+malinois
+bighorn
+fox squirrel
+colobus
+tiger cat
+Lhasa
+impala
+coyote
+Yorkshire terrier
+Newfoundland
+brown bear
+red fox
+Norwegian elkhound
+Rottweiler
+hartebeest
+Saluki
+grey fox
+schipperke
+Pekinese
+Brabancon griffon
+West Highland white terrier
+Sealyham terrier
+guenon
+mongoose
+indri
+tiger
+Irish wolfhound
+wild boar
+EntleBucher
+zebra
+ram
+French bulldog
+orangutan
+basenji
+leopard
+Bernese mountain dog
+Maltese dog
+Norfolk terrier
+toy terrier
+vizsla
+cairn
+squirrel monkey
+groenendael
+clumber
+Siamese cat
+chimpanzee
+komondor
+Afghan hound
+Japanese spaniel
+proboscis monkey
+guinea pig
+white wolf
+ice bear
+gorilla
+borzoi
+toy poodle
+Kerry blue terrier
+ox
+Scotch terrier
+Tibetan mastiff
+spider monkey
+Doberman
+Boston bull
+Greater Swiss Mountain dog
+Appenzeller
+Shih-Tzu
+Irish water spaniel
+Pomeranian
+Bedlington terrier
+warthog
+Arabian camel
+siamang
+miniature schnauzer
+collie
+golden retriever
+Irish terrier
+affenpinscher
+Border collie
+hare
+boxer
+silky terrier
+beagle
+Leonberg
+German short-haired pointer
+patas
+dhole
+baboon
+macaque
+Chesapeake Bay retriever
+bull mastiff
+kuvasz
+capuchin
+pug
+curly-coated retriever
+Norwich terrier
+flat-coated retriever
+hog
+keeshond
+Eskimo dog
+Brittany spaniel
+standard poodle
+Lakeland terrier
+snow leopard
+Gordon setter
+dingo
+standard schnauzer
+hamster
+Tibetan terrier
+Arctic fox
+wire-haired fox terrier
+basset
+water buffalo
+American black bear
+Angora
+bison
+howler monkey
+hippopotamus
+chow
+giant panda
+American Staffordshire terrier
+Shetland sheepdog
+Great Pyrenees
+Chihuahua
+tabby
+marmoset
+Labrador retriever
+Saint Bernard
+armadillo
+Samoyed
+bluetick
+redbone
+polecat
+marmot
+kelpie
+gibbon
+llama
+miniature pinscher
+wood rabbit
+Italian greyhound
+lion
+cocker spaniel
+Irish setter
+dugong
+Indian elephant
+beaver
+Sussex spaniel
+Pembroke
+Blenheim spaniel
+Madagascar cat
+Rhodesian ridgeback
+lynx
+African hunting dog
+langur
+Ibizan hound
+timber wolf
+cheetah
+English foxhound
+briard
+sloth bear
+Border terrier
+German shepherd
+otter
+koala
+tusker
+echidna
+wallaby
+platypus
+wombat
+revolver
+umbrella
+schooner
+soccer ball
+accordion
+ant
+starfish
+chambered nautilus
+grand piano
+laptop
+strawberry
+airliner
+warplane
+airship
+balloon
+space shuttle
+fireboat
+gondola
+speedboat
+lifeboat
+canoe
+yawl
+catamaran
+trimaran
+container ship
+liner
+pirate
+aircraft carrier
+submarine
+wreck
+half track
+tank
+missile
+bobsled
+dogsled
+bicycle-built-for-two
+mountain bike
+freight car
+passenger car
+barrow
+shopping cart
+motor scooter
+forklift
+electric locomotive
+steam locomotive
+amphibian
+ambulance
+beach wagon
+cab
+convertible
+jeep
+limousine
+minivan
+Model T
+racer
+sports car
+go-kart
+golfcart
+moped
+snowplow
+fire engine
+garbage truck
+pickup
+tow truck
+trailer truck
+moving van
+police van
+recreational vehicle
+streetcar
+snowmobile
+tractor
+mobile home
+tricycle
+unicycle
+horse cart
+jinrikisha
+oxcart
+bassinet
+cradle
+crib
+four-poster
+bookcase
+china cabinet
+medicine chest
+chiffonier
+table lamp
+file
+park bench
+barber chair
+throne
+folding chair
+rocking chair
+studio couch
+toilet seat
+desk
+pool table
+dining table
+entertainment center
+wardrobe
+Granny Smith
+orange
+lemon
+fig
+pineapple
+banana
+jackfruit
+custard apple
+pomegranate
+acorn
+hip
+ear
+rapeseed
+corn
+buckeye
+organ
+upright
+chime
+drum
+gong
+maraca
+marimba
+steel drum
+banjo
+cello
+violin
+harp
+acoustic guitar
+electric guitar
+cornet
+French horn
+trombone
+harmonica
+ocarina
+panpipe
+bassoon
+oboe
+sax
+flute
+daisy
+yellow lady's slipper
+cliff
+valley
+alp
+volcano
+promontory
+sandbar
+coral reef
+lakeside
+seashore
+geyser
+hatchet
+cleaver
+letter opener
+plane
+power drill
+lawn mower
+hammer
+corkscrew
+can opener
+plunger
+screwdriver
+shovel
+plow
+chain saw
+cock
+hen
+ostrich
+brambling
+goldfinch
+house finch
+junco
+indigo bunting
+robin
+bulbul
+jay
+magpie
+chickadee
+water ouzel
+kite
+bald eagle
+vulture
+great grey owl
+black grouse
+ptarmigan
+ruffed grouse
+prairie chicken
+peacock
+quail
+partridge
+African grey
+macaw
+sulphur-crested cockatoo
+lorikeet
+coucal
+bee eater
+hornbill
+hummingbird
+jacamar
+toucan
+drake
+red-breasted merganser
+goose
+black swan
+white stork
+black stork
+spoonbill
+flamingo
+American egret
+little blue heron
+bittern
+crane
+limpkin
+American coot
+bustard
+ruddy turnstone
+red-backed sandpiper
+redshank
+dowitcher
+oystercatcher
+European gallinule
+pelican
+king penguin
+albatross
+great white shark
+tiger shark
+hammerhead
+electric ray
+stingray
+barracouta
+coho
+tench
+goldfish
+eel
+rock beauty
+anemone fish
+lionfish
+puffer
+sturgeon
+gar
+loggerhead
+leatherback turtle
+mud turtle
+terrapin
+box turtle
+banded gecko
+common iguana
+American chameleon
+whiptail
+agama
+frilled lizard
+alligator lizard
+Gila monster
+green lizard
+African chameleon
+Komodo dragon
+triceratops
+African crocodile
+American alligator
+thunder snake
+ringneck snake
+hognose snake
+green snake
+king snake
+garter snake
+water snake
+vine snake
+night snake
+boa constrictor
+rock python
+Indian cobra
+green mamba
+sea snake
+horned viper
+diamondback
+sidewinder
+European fire salamander
+common newt
+eft
+spotted salamander
+axolotl
+bullfrog
+tree frog
+tailed frog
+whistle
+wing
+paintbrush
+hand blower
+oxygen mask
+snorkel
+loudspeaker
+microphone
+screen
+mouse
+electric fan
+oil filter
+strainer
+space heater
+stove
+guillotine
+barometer
+rule
+odometer
+scale
+analog clock
+digital clock
+wall clock
+hourglass
+sundial
+parking meter
+stopwatch
+digital watch
+stethoscope
+syringe
+magnetic compass
+binoculars
+projector
+sunglasses
+loupe
+radio telescope
+bow
+cannon
+assault rifle
+rifle
+projectile
+computer keyboard
+typewriter keyboard
+crane
+lighter
+abacus
+cash machine
+slide rule
+desktop computer
+hand-held computer
+notebook
+web site
+harvester
+thresher
+printer
+slot
+vending machine
+sewing machine
+joystick
+switch
+hook
+car wheel
+paddlewheel
+pinwheel
+potter's wheel
+gas pump
+carousel
+swing
+reel
+radiator
+puck
+hard disc
+sunglass
+pick
+car mirror
+solar dish
+remote control
+disk brake
+buckle
+hair slide
+knot
+combination lock
+padlock
+nail
+safety pin
+screw
+muzzle
+seat belt
+ski
+candle
+jack-o'-lantern
+spotlight
+torch
+neck brace
+pier
+tripod
+maypole
+mousetrap
+spider web
+trilobite
+harvestman
+scorpion
+black and gold garden spider
+barn spider
+garden spider
+black widow
+tarantula
+wolf spider
+tick
+centipede
+isopod
+Dungeness crab
+rock crab
+fiddler crab
+king crab
+American lobster
+spiny lobster
+crayfish
+hermit crab
+tiger beetle
+ladybug
+ground beetle
+long-horned beetle
+leaf beetle
+dung beetle
+rhinoceros beetle
+weevil
+fly
+bee
+grasshopper
+cricket
+walking stick
+cockroach
+mantis
+cicada
+leafhopper
+lacewing
+dragonfly
+damselfly
+admiral
+ringlet
+monarch
+cabbage butterfly
+sulphur butterfly
+lycaenid
+jellyfish
+sea anemone
+brain coral
+flatworm
+nematode
+conch
+snail
+slug
+sea slug
+chiton
+sea urchin
+sea cucumber
+iron
+espresso maker
+microwave
+Dutch oven
+rotisserie
+toaster
+waffle iron
+vacuum
+dishwasher
+refrigerator
+washer
+Crock Pot
+frying pan
+wok
+caldron
+coffeepot
+teapot
+spatula
+altar
+triumphal arch
+patio
+steel arch bridge
+suspension bridge
+viaduct
+barn
+greenhouse
+palace
+monastery
+library
+apiary
+boathouse
+church
+mosque
+stupa
+planetarium
+restaurant
+cinema
+home theater
+lumbermill
+coil
+obelisk
+totem pole
+castle
+prison
+grocery store
+bakery
+barbershop
+bookshop
+butcher shop
+confectionery
+shoe shop
+tobacco shop
+toyshop
+fountain
+cliff dwelling
+yurt
+dock
+brass
+megalith
+bannister
+breakwater
+dam
+chainlink fence
+picket fence
+worm fence
+stone wall
+grille
+sliding door
+turnstile
+mountain tent
+scoreboard
+honeycomb
+plate rack
+pedestal
+beacon
+mashed potato
+bell pepper
+head cabbage
+broccoli
+cauliflower
+zucchini
+spaghetti squash
+acorn squash
+butternut squash
+cucumber
+artichoke
+cardoon
+mushroom
+shower curtain
+jean
+carton
+handkerchief
+sandal
+ashcan
+safe
+plate
+necklace
+croquet ball
+fur coat
+thimble
+pajama
+running shoe
+cocktail shaker
+chest
+manhole cover
+modem
+tub
+tray
+balance beam
+bagel
+prayer rug
+kimono
+hot pot
+whiskey jug
+knee pad
+book jacket
+spindle
+ski mask
+beer bottle
+crash helmet
+bottlecap
+tile roof
+mask
+maillot
+Petri dish
+football helmet
+bathing cap
+teddy
+holster
+pop bottle
+photocopier
+vestment
+crossword puzzle
+golf ball
+trifle
+suit
+water tower
+feather boa
+cloak
+red wine
+drumstick
+shield
+Christmas stocking
+hoopskirt
+menu
+stage
+bonnet
+meat loaf
+baseball
+face powder
+scabbard
+sunscreen
+beer glass
+hen-of-the-woods
+guacamole
+lampshade
+wool
+hay
+bow tie
+mailbag
+water jug
+bucket
+dishrag
+soup bowl
+eggnog
+mortar
+trench coat
+paddle
+chain
+swab
+mixing bowl
+potpie
+wine bottle
+shoji
+bulletproof vest
+drilling platform
+binder
+cardigan
+sweatshirt
+pot
+birdhouse
+hamper
+ping-pong ball
+pencil box
+pay-phone
+consomme
+apron
+punching bag
+backpack
+groom
+bearskin
+pencil sharpener
+broom
+mosquito net
+abaya
+mortarboard
+poncho
+crutch
+Polaroid camera
+space bar
+cup
+racket
+traffic light
+quill
+radio
+dough
+cuirass
+military uniform
+lipstick
+shower cap
+monitor
+oscilloscope
+mitten
+brassiere
+French loaf
+vase
+milk can
+rugby ball
+paper towel
+earthstar
+envelope
+miniskirt
+cowboy hat
+trolleybus
+perfume
+bathtub
+hotdog
+coral fungus
+bullet train
+pillow
+toilet tissue
+cassette
+carpenter's kit
+ladle
+stinkhorn
+lotion
+hair spray
+academic gown
+dome
+crate
+wig
+burrito
+pill bottle
+chain mail
+theater curtain
+window shade
+barrel
+washbasin
+ballpoint
+basketball
+bath towel
+cowboy boot
+gown
+window screen
+agaric
+cellular telephone
+nipple
+barbell
+mailbox
+lab coat
+fire screen
+minibus
+packet
+maze
+pole
+horizontal bar
+sombrero
+pickelhaube
+rain barrel
+wallet
+cassette player
+comic book
+piggy bank
+street sign
+bell cote
+fountain pen
+Windsor tie
+volleyball
+overskirt
+sarong
+purse
+bolo tie
+bib
+parachute
+sleeping bag
+television
+swimming trunks
+measuring cup
+espresso
+pizza
+breastplate
+shopping basket
+wooden spoon
+saltshaker
+chocolate sauce
+ballplayer
+goblet
+gyromitra
+stretcher
+water bottle
+dial telephone
+soap dispenser
+jersey
+school bus
+jigsaw puzzle
+plastic bag
+reflex camera
+diaper
+Band Aid
+ice lolly
+velvet
+tennis ball
+gasmask
+doormat
+Loafer
+ice cream
+pretzel
+quilt
+maillot
+tape player
+clog
+iPod
+bolete
+scuba diver
+pitcher
+matchstick
+bikini
+sock
+CD player
+lens cap
+thatch
+vault
+beaker
+bubble
+cheeseburger
+parallel bars
+flagpole
+coffee mug
+rubber eraser
+stole
+carbonara
+dumbbell
+singles
+Virginia deer
+eastern grey squirrel
+gelding
+pylon
+table-tennis table
+peacock
+Segway
+surfing
+tamandua
+knocker
+steering wheel
+motorcycling
+coati
+sitar
+range
+backhoe
+agaric
+dashboard
+water polo
+concrete mixer
+treadmill
+golf bag
+skateboarding
+royal tennis
+tartan
+four-wheel drive
+sport utility
+sedan
+print
+luggage rack
+softball
+windmill
+ben
+red admiral
+jalousie
+towel rail
+truss
+strand
+ice hockey
+sconce
+wind turbine
+plush
+stained-glass window
+ballpark
+thoroughbred
+love seat
+red-spotted purple
+miller
+Adelie
+freight liner
+clock tower
+acrobatics
+shaving brush
+ewe
+ottoman
+African violet
+bicycle wheel
+cork
+windmill
+satin
+comma
+coffee mill
+baggage
+wasp's nest
+batting glove
+Ferris wheel
+push-bike
+porthole
+football stadium
+gas tank
+barbecue
+handlebar
+hula-hoop
+fairground
+rapier
+garter stitch
+exercise bike
+control tower
+carryall
+minute hand
+cog
+riverbank
+water nymph
+common dandelion
+android
+hairbrush
+redberry
+fret
+display window
+pepper mill
+litterbin
+drapery
+ducking
+fly-fishing
+broad jump
+sprinkler
+water-skiing
+chicory
+sail
+volleyball
+rugby
+Texas bluebonnet
+computer monitor
+tortoiseshell
+airplane propeller
+solar array
+figure skating
+air conditioner
+purple loosestrife
+gearshift
+outboard motor
+cowslip
+Abyssinian
+dip
+workstation
+cosy
+bunker
+neon lamp
+campanile
+casket
+verbena
+amphora
+sumo
+common foxglove
+sprocket
+jelly bean
+emperor penguin
+night-blooming cereus
+clock radio
+black birch
+bomber jacket
+Virginia bluebell
+bayonet
+walker
+altarpiece
+tattoo
+bridle
+rocker arm
+water turkey
+spiderwort
+flange
+mute swan
+laser printer
+carburetor
+coverlet
+mountainside
+baritone
+auto racing
+baluster
+gal
+peach bells
+taffeta
+grandfather
+asparagus
+horizontal stabilizer
+world
+grate
+marsh marigold
+white rhinoceros
+movement
+split rail
+rollerblading
+longhorn
+muffler
+church tower
+light bulb
+American agave
+backpacking tent
+overall
+New World goldfinch
+sectional
+wing chair
+transom
+integrated circuit
+dad
+spar
+picture frame
+no-hit game
+alternator
+drill press
+strawflower
+hepatica
+rangefinder
+blinker
+Welsh pony
+nib
+wagon wheel
+rotor
+tie
+denim
+jetliner
+sculling
+external drive
+window frame
+mourning dove
+censer
+stapler
+batting helmet
+flagon
+machete
+windshield
+hedgehog
+weeping willow
+chief executive officer
+hepatica
+pet
+Asiatic black bear
+chinchilla
+uke
+Atlantic bottlenose dolphin
+hair
+dishtowel
+flintlock
+Bermuda shorts
+lavender
+searchlight
+millwheel
+piano keyboard
+luna moth
+bumper
+parrot
+skirt
+manhole
+coffee table
+footstool
+judo
+Dalai Lama
+armored personnel carrier
+voile
+saber
+thoroughbred
+wild carrot
+gemsbok
+caster
+butterfly orchid
+cow
+sideboard
+horseshoe crab
+match play
+cassette recorder
+photomicrograph
+drafting table
+pediment
+tramline
+shipping
+kitten
+wainscoting
+fried rice
+helix
+marguerite
+pumpkin
+white-bellied swallow
+Tulipa gesneriana
+common dolphin
+face
+red squirrel
+bicycling
+shipwreck
+banded purple
+cornice
+pendant earring
+forsythia
+aardvark
+seashell
+spat
+shoulder bag
+fallow deer
+yearling
+common teasel
+tufted titmouse
+ancient
+professional golf
+purl
+vehicle
+okra
+great grandmother
+common lilac
+rose mallow
+newspaper
+crucifix
+chukka
+armlet
+fulmar
+wapiti
+doily
+Greco-Roman wrestling
+bleeding heart
+kitchen table
+bluebonnet
+Cape buffalo
+spun yarn
+crape myrtle
+dewdrop
+great blue heron
+medalist
+vaulting horse
+spinning wheel
+skyscraper
+Tahitian
+forget-me-not
+watercourse
+guitarist
+gargoyle
+bee balm
+pumpkin
+hunting knife
+flutist
+lectern
+skateboarder
+foil
+pant leg
+hedge sparrow
+dresser
+automatic pistol
+chicory
+dialog box
+chamberpot
+black rhinoceros
+fireweed
+half-mast
+pillow sham
+pavilion
+scarf joint
+microprocessor
+filly
+dressing gown
+shell
+Arabian
+child
+radio antenna
+butterweed
+morris dancer
+sparrow hawk
+groom
+brioche
+floret
+rainbow
+earthworm
+cellist
+tine
+toupee
+balldress
+map
+angel's trumpet
+ruin
+fur
+pronghorn
+speed skating
+used-car
+stick
+early spider orchid
+stuffed peppers
+snowdrift
+flats
+least sandpiper
+stick
+console table
+ventilator
+portable
+kepi
+pylon
+viceroy
+shoreline
+Olympian Zeus
+pestle
+great-niece
+life
+air compressor
+fanjet
+scuba diving
+fieldfare
+tree swallow
+personnel carrier
+night-blooming cereus
+sonogram
+assembly hall
+circuit breaker
+chair
+speed skate
+soapwort
+worsted
+raspberry
+burlap
+flat panel display
+Pyracantha
+cemetery
+turban
+deer hunting
+bottle green
+dandelion green
+pieta
+aigrette
+turntable
+cover girl
+clutch bag
+kiwi
+pea jacket
+color guard
+Malay
+shire
+crock
+french fries
+credenza
+hockey stick
+mourning cloak
+potty seat
+glass
+balsamroot
+medal play
+red clover
+gravy boat
+garter belt
+Guinness
+meadow buttercup
+jackass penguin
+coursing
+tooth
+hawfinch
+housetop
+fluorescent lamp
+black-backed gull
+bookshelf
+earplug
+millipede
+fawn
+baseball bat
+soup-strainer
+organ loft
+bugloss
+tomahawk
+blackcap
+black-necked stilt
+hand truck
+bedstead
+tempura
+rose window
+crimson
+snow thrower
+lesser whitethroat
+palomino
+ball
+staff sergeant
+wicker
+garbage heap
+great-nephew
+parquet
+coupe
+nave
+eggs Benedict
+damask
+flush toilet
+Angora
+pedometer
+control room
+bristle brush
+kookaburra
+telephone booth
+Windsor chair
+red-winged blackbird
+cinnamon roll
+briefs
+cloister
+sundress
+mammillaria
+unicyclist
+covered bridge
+coelogyne
+fairy bluebird
+phoebe
+beer mug
+headstock
+parhelion
+gorse
+common European dogwood
+fire-eater
+professional football
+rock climbing
+cyclamen
+tin
+marjoram
+Japanese morning glory
+pipe
+smasher
+hang glider
+abutment
+birdbath
+jotter
+litter
+artist's model
+butterfly bush
+dining area
+sausage dog
+piggery
+English sparrow
+Turk's-cap
+platinum blond
+song sparrow
+alarm clock
+tortoiseshell
+chaise longue
+flintlock
+academic costume
+graffito
+Arnica montana
+adding machine
+waterside
+director
+jonquil
+pipefitting
+stud
+Swedish meatball
+musk rose
+Venus's flytrap
+raven
+bougainvillea
+little brother
+field bindweed
+finder
+white admiral
+tinfoil
+serval
+sheet
+carthorse
+people
+potto
+stockroom
+sphinx
+slate roof
+mountain laurel
+majolica
+coal black
+repository
+bufo
+pique
+binder
+tread
+attorney general
+hydraulic press
+videocassette recorder
+bumper car
+professional baseball
+cow parsley
+ern
+blue peafowl
+common hyacinth
+jack-in-the-pulpit
+ice hockey rink
+sport
+camper
+tailback
+flash
+stacks
+pulp
+Christmas cactus
+netball
+calliandra
+curler
+large periwinkle
+cobweb
+forward
+Roman arch
+cross bun
+stoneware
+banana bread
+cape jasmine
+settle
+tongue
+frock
+pepper shaker
+pitching coach
+CD-R
+casing
+faience
+hand cream
+CD-ROM
+recliner
+striped bass
+clary
+sketch
+risotto
+reticle
+white clover
+touch football
+kitty
+great-aunt
+Japanese maple
+sidecar
+muscovy duck
+hack
+rope bridge
+organist
+stinging nettle
+pocket watch
+Indian pipe
+amorphophallus
+bird's-foot violet
+caller ID
+furnishing
+carriageway
+dish rack
+heiress
+nail polish
+beldam
+Dall sheep
+teriyaki
+stateroom
+laughing gull
+chow
+bookmark
+timer
+toga virilis
+deviled egg
+coltsfoot
+Papuan
+native
+cygnet
+automation
+portfolio
+cabbage palm
+cube
+broiler
+radish
+broodmare
+castor-oil plant
+pith hat
+talus
+lass
+thatch
+common marigold
+young buck
+igloo
+prairie rattlesnake
+soccer player
+spoke
+place
+slide fastener
+tapestry
+toy
+headboard
+cross-country skiing
+harness
+sconce
+rim
+ballet skirt
+transvestite
+saddlebag
+common evening primrose
+taillight
+challah
+willet
+ready-to-wear
+cloud
+answering machine
+waterfront
+vane
+granddaughter
+Chinese gooseberry
+tureen
+cab
+truffle
+viola
+bootlace
+chemise
+taro
+petal
+candied apple
+soccer
+miniature golf
+front porch
+asparagus
+Sauvignon blanc
+daisy fleabane
+ceiling
+slip-on
+bottle-nosed whale
+redbud
+black squirrel
+snowsuit
+ribbing
+gravestone
+creme brulee
+ambassador
+local
+archery
+love-in-a-mist
+garbage
+thyme
+night-blooming cereus
+goshawk
+cuckoopint
+azure
+German iris
+salad bowl
+puppy
+cockhorse
+giant clam
+biplane
+stele
+necklet
+sea otter
+crest
+door
+reformer
+comforter
+Byelorussian
+bottle
+hemline
+book bag
+leotard
+owlet
+spoon
+sari
+bidet
+Latin
+reticulated python
+bowling shoe
+futon
+gaiter
+coypu
+tea urn
+waders
+bangle
+snowbank
+pencil
+porter
+azalea
+English lavender
+red spruce
+team sport
+cruet
+high-rise
+O ring
+vodka
+cormorant
+Canada thistle
+clasp
+showjumping
+rattan
+red fox
+sun parlor
+Charolais
+Tommy gun
+bird's foot trefoil
+sedge warbler
+knot
+chives
+car tire
+steam engine
+adapter
+spirea
+common allamanda
+oyster shell
+harbor seal
+baobab
+wick
+plumbago
+downy woodpecker
+coconut
+leash
+kasbah
+hour hand
+upholstery
+mallard
+cricket bat
+lady
+kitchenware
+right-hander
+leopard
+olive green
+common valerian
+blue whale
+blackboard
+redhead
+periwinkle
+fingerboard
+hard hat
+locker
+breakfast table
+capybara
+beekeeper
+harness
+feeder
+water hyacinth
+hexapod
+brown thrasher
+percale
+lever
+patriarch
+arete
+book
+book
+senator
+bunya bunya
+couch
+durian
+common lady's-slipper
+mountain ash
+golden barrel cactus
+bicycle seat
+beret
+pop
+musk mallow
+manatee
+cotton candy
+boxing glove
+backboard
+tongue
+saguaro
+playground
+capitol
+sanderling
+wagtail
+deputy
+tractor
+tap
+lady's smock
+noseband
+worsted
+radiotelephone
+camisole
+forelock
+muscat
+sweet scabious
+crane fly
+butterfly weed
+chestnut
+pinata
+inositol
+borage
+aquatic
+belly
+broadcaster
+gondolier
+egg yolk
+blush wine
+bufflehead
+rambutan
+oleander
+horse-trail
+sea holly
+yard bird
+conference room
+lacrosse
+belted kingfisher
+defile
+extremum
+whistle
+bear cub
+grainfield
+potage
+watermelon
+lasagna
+sheik
+Cooper's hawk
+bulb
+basketball court
+paella
+cassette tape
+scatter rug
+kid
+impala lily
+Minnesotan
+Sudanese
+chocolate
+tail
+quack-quack
+whistling swan
+shoulder patch
+frozen custard
+sumo wrestler
+smoothie
+bock
+meat grinder
+latch
+palisade
+radial
+sake
+kestrel
+corn chowder
+airframe
+electrician
+reamer
+metropolitan
+cotton flannel
+cassowary
+crossbill
+operating room
+winter aconite
+flute
+Tasmanian devil
+billboard
+suds
+kilt
+aperitif
+cooling tower
+avocado
+hooded merganser
+coleslaw
+bee balm
+ladder-back
+insurance broker
+scaffolding
+polo mallet
+double bed
+two-hitter
+bluff
+gamboge
+baby
+lawn chair
+frond
+pistol grip
+fancy dress
+marquetry
+jambalaya
+fireweed
+Eurasian kingfisher
+cue ball
+ice plant
+horseweed
+rose moss
+musher
+sun
+viscount
+white-breasted nuthatch
+gin and tonic
+thermos
+Kenyan
+first-aid kit
+four-wheeler
+tourist
+stairwell
+Gambian
+liqueur glass
+hovercraft
+cocktail dress
+twin
+coriander
+blister pack
+Barrow's goldeneye
+canteen
+irrigation ditch
+great white heron
+tree sparrow
+canal boat
+lens
+food processor
+common raccoon
+Baltimore oriole
+black-eyed Susan
+bush hibiscus
+corolla
+sire
+mustachio
+professional wrestling
+elk
+clustered bellflower
+pannier
+musk ox
+crapaud
+animal trainer
+rosebud
+ring-necked pheasant
+little egret
+cappuccino
+rocker
+bristlecone pine
+cheerleader
+hedge violet
+semaphore
+central processing unit
+speedskater
+delivery truck
+assembly
+hedgehog cactus
+bergenia
+bull thistle
+bladder campion
+cinquefoil
+inula
+cellulose tape
+main rotor
+bootee
+autogiro
+ice
+grey
+meadow cranesbill
+hummus
+valise
+chassis
+mountain goat
+blacktail prairie dog
+Chardonnay
+romper
+street
+shoveler
+wood ibis
+topiary
+chalice
+silo
+circus acrobat
+Rollerblade
+cosmos
+woof
+heroine
+cold cream
+marabou
+herb robert
+garden lettuce
+nymph
+floor lamp
+automobile engine
+heel
+radiator
+seeded player
+fedora
+father-in-law
+peahen
+Bahamian
+wiper
+wood pigeon
+barn owl
+pegboard
+chorus frog
+kin
+roller skate
+stob
+rosemary
+cowbird
+hortensia
+cranberry sauce
+shot glass
+Dixie cup
+gnu
+fire alarm
+diet
+booster
+oxeye daisy
+twayblade
+high-definition television
+truss bridge
+bunk bed
+mule
+blackbuck
+facsimile
+frog orchid
+point-and-shoot camera
+brocade
+gazebo
+prairie gentian
+concert
+paintball
+Cognac
+maid
+afghan
+barbecued spareribs
+pintail
+tramway
+commissioner
+finger-painting
+beef stew
+caftan
+Aberdeen Angus
+demonstrator
+sea trout
+pigtail
+thrush nightingale
+barbados cherry
+sashimi
+ridgeling
+lamppost
+gabardine
+red-shouldered hawk
+bath salts
+cavern
+cymbid
+Haitian
+boater
+southern buckthorn
+arctic
+motorcycle cop
+red gum
+Clydesdale
+Zamboni
+beagling
+villa
+demitasse
+Sheetrock
+lollipop
+hybrid petunia
+post horse
+carabiner
+brussels sprouts
+Durham
+stylist
+pothole
+sleigh bed
+scallop shell
+harrier eagle
+papaya
+Japanese persimmon
+sachet
+wild rice
+chipboard
+gun enclosure
+menorah
+chinook
+headset
+white campion
+ocean
+Secretary of State
+G-string
+bone china
+basil
+greenish blue
+camcorder
+concrete
+screech owl
+trumpet honeysuckle
+flugelhorn
+layette
+cattle egret
+case knife
+mandarin duck
+robber fly
+salwar
+dressing table
+doughnut
+facade
+runner
+honeypot
+surf casting
+diver
+angel's trumpet
+spin dryer
+chameleon
+wand
+snow
+vitamin A1
+manageress
+volleyball net
+antiperspirant
+street clothes
+tree sparrow
+cords
+sundew
+bricks and mortar
+caryatid
+bridesmaid
+trestle bridge
+eyepiece
+celebrant
+scarlet pimpernel
+gas range
+onion
+green salad
+squill
+creepy-crawly
+hunk
+little owl
+salad nicoise
+earflap
+bird feeder
+spray gun
+bunny
+Cheops
+amazon
+blue tit
+Nissen hut
+Kalashnikov
+skylark
+kremlin
+shoebill
+shopping bag
+frigate bird
+telephoto lens
+peplum
+moss pink
+echidna
+wastepaper basket
+wood ibis
+workroom
+ankle brace
+telpherage
+Michaelmas daisy
+figure skate
+swami
+nylons
+cardoon
+cocotte
+headstall
+twin bed
+parsley
+dirndl
+corn poppy
+nut bread
+cloche
+light heavyweight
+mayor
+lip-gloss
+punch bowl
+pottage
+mango
+fledgling
+mousse
+four-wheel drive
+barrel
+banana boat
+trouser
+bathroom
+Sauterne
+ring
+settee
+lavaliere
+safe-deposit
+godson
+leatherette
+schoolmate
+radish
+hedge trimmer
+dahlia
+euphonium
+palace
+vaulter
+singlet
+slicer
+Pilsner
+cockateel
+kangaroo paw
+Cub Scout
+master bedroom
+hexagon
+cenotaph
+Barberton daisy
+Netherlander
+intersection
+Korean
+gravel
+chandelier
+hospital bed
+flash memory
+pier
+whole wheat flour
+maroon
+pale ale
+special
+snow bunting
+crinoline
+dustpan
+barrette
+common wood sorrel
+yolk
+pothos
+speakerphone
+tendril
+cabinetwork
+farm horse
+brake disk
+streetlight
+superhighway
+bandsaw
+panting
+pressure cooker
+girdle
+old man
+cereal bowl
+felt
+hurling
+architecture
+harmonium
+chain
+blueberry
+cellar
+smocking
+scrub brush
+tablespoon
+sweet corn
+graining
+library
+street
+bill
+felt-tip pen
+monkshood
+crowd
+log cabin
+newel post
+hack
+elephant seal
+golden pothos
+popcorn
+outhouse
+patch pocket
+fish and chips
+tape
+wax plant
+eaves
+fried egg
+emerald
+tea cart
+fan blade
+daily
+Bowie knife
+rowing boat
+leaf shape
+man
+crayon
+trumpetfish
+chipping sparrow
+whiskey bottle
+pillion
+city hall
+golden pheasant
+cheerleader
+creeping bugle
+couch
+Dumpster
+Homo sapiens sapiens
+cranberry juice
+cockpit
+demagogue
+joinery
+scrambled eggs
+technician
+sidewalk
+sheep
+keyhole
+power line
+polyanthus
+roulette
+first lieutenant
+checkout
+tabletop
+nasturtium
+schnapps
+engineering
+skateboard
+ground fir
+bouquet
+bunk
+resort area
+fleur-de-lis
+power steering
+opera
+Bolivian
+Friesian
+buckskins
+bay
+slider
+frozen yogurt
+cabin cruiser
+saunterer
+lean-to
+fishing eagle
+bog star
+cantaloupe
+mouth
+music stand
+fiddlestick
+brilliantine
+pinball machine
+bairn
+barred owl
+bath oil
+signorina
+Mason jar
+nymph
+rubber band
+garden nasturtium
+razorbill
+Japanese beetle
+batting cage
+trestle
+borage
+Secretary of the Interior
+scanner
+baguet
+baseball cap
+chow mein
+pen
+jewelweed
+barbet
+chasm
+pectoral sandpiper
+holster
+glasses case
+sand
+crevice
+Kickapoo
+snowboard
+locket
+satchel
+tankard
+alpinist
+moorhen
+cow pen
+whooper
+crown
+chain
+silversword
+wild geranium
+hi-fi
+Tibetan
+waterwheel
+bee orchid
+ruby-crowned kinglet
+common broom
+tabloid
+javelin
+sauna
+klammath weed
+zebra finch
+spider orchid
+velour
+chiffon
+lecture room
+barrel
+loggia
+millstone
+flatlet
+soupspoon
+econometrician
+golf-club head
+daphnia
+parlor
+fire-eater
+juggler
+attache case
+hay bale
+kisser
+knitting needle
+news magazine
+flatbed
+Senegalese
+trumpeter
+trampoline
+brogan
+bone
+caftan
+lobster pot
+gazpacho
+anthill
+ramekin
+mainsail
+penitentiary
+spotted flycatcher
+cookstove
+root beer
+broom beard grass
+pogo stick
+plywood
+epee
+gas oven
+Global Positioning System
+sweet false chamomile
+breakfast area
+bullring
+second cousin
+wave
+decolletage
+rodeo
+won ton
+swastika
+bobby pin
+papaw
+retaining wall
+Muscadet
+heavyweight
+energizer
+banner
+amusement park
+whinchat
+drugstore
+waxwork
+meander
+congee
+heat sink
+switch grass
+commuter
+peony
+western white pine
+wild raspberry
+nightgown
+saute
+cardinal
+claret
+pollinator
+biryani
+pina colada
+cassette deck
+European sandpiper
+block
+flan
+birdcage
+baby
+lieutenant colonel
+ticking
+European white lily
+dog violet
+coat hanger
+premature baby
+organza
+string bean
+balloonist
+hurricane deck
+window box
+hang glider
+bullfighting
+piste
+seahorse
+hard cider
+batik
+common mullein
+petite marmite
+stuffed mushroom
+tequila
+ground ivy
+fountain grass
+stray
+putter
+buffer
+comet
+bomber
+woodcarving
+baseball glove
+halter
+garnish
+selvage
+megaphone
+sea fan
+rabbit hutch
+very important person
+analog watch
+long-head coneflower
+northern pike
+roll-on
+cigarette butt
+terraced house
+penknife
+windshield wiper
+cricket
+straightener
+snow pea
+cockerel
+canister
+sour bread
+recovery room
+toilet bowl
+tyrannosaur
+big sister
+quartz battery
+television receiver
+vitamin C
+tailpipe
+field thistle
+stonechat
+col
+monstrance
+gift wrapping
+herbivore
+quarter horse
+ice-cream sundae
+rumpus room
+eyepatch
+clary sage
+French lavender
+snorkel
+choir
+tent-fly
+cat box
+horse racing
+high priest
+barrel cactus
+pin oak
+wild thyme
+keyboardist
+raiser
+hammock
+hail
+bungee
+chocolate mousse
+major
+buzzard
+gopher tortoise
+Chablis
+water meter
+benthos
+donna
+blender
+Mauser
+avocet
+rye
+mulch
+chancel
+dusty miller
+mate
+corbel
+minaret
+frittata
+French toast
+mosaic
+home brew
+water faucet
+beard
+swivel chair
+acropolis
+largemouth
+abbey
+tabby
+driver
+copperhead
+stirrup
+Boston fern
+Tennessee walker
+artichoke
+honor guard
+chapatti
+enchantress
+sweat pants
+electric organ
+column
+dry vermouth
+range hood
+Red Delicious
+rape
+splint
+catapult
+gourd
+antipasto
+plaza
+carnation
+star
+wood anemone
+English primrose
+male fern
+boot
+atrium
+Japanese deer
+carnivore
+yearling
+doe
+guelder rose
+chicory
+stretch pants
+ice-cream cake
+frogfish
+tarpaulin
+chicken soup
+balaclava
+tor
+feverfew
+three-hitter
+flyweight
+aqua vitae
+locker room
+wether
+teacup
+wide-angle lens
+hook
+ladder-back
+osprey
+awning
+wedding
+chest protector
+pooch
+rose mallow
+orange daisy
+fondant
+envelope
+duckling
+blackberry
+goosander
+snorkeling
+philatelist
+broad bean
+Frank
+bok choy
+basket
+absinth
+cayenne
+blackbird
+bottled water
+trooper
+timber
+stable
+chestnut
+tomatillo
+bell
+banquet
+rainbow trout
+macrame
+appointee
+heart
+chipmunk
+purple clematis
+safety bicycle
+shuttle bus
+Japanese black pine
+lentil soup
+downhill
+field mustard
+brass
+hand-me-down
+greater yellowlegs
+fanny pack
+croquet mallet
+hip roof
+duffel bag
+Ritz
+document
+pie plant
+staff member
+lifeguard
+white-throated sparrow
+Cameroonian
+hydrofoil
+platter
+common ageratum
+middleweight
+chairlift
+brunch
+pharmacist
+lemon
+driveshaft
+green snake
+lip
+London plane
+mangrove
+crystal
+siskin
+common jasmine
+hollandaise
+villa
+cross-country riding
+mother-in-law's tongue
+generator
+Tanzanian
+whisk
+seeder
+ashtray
+griddle
+evening bag
+bluebird
+bran muffin
+square dancer
+luggage compartment
+tropical pitcher plant
+autofocus
+tape drive
+silencer
+Hawaiian guitar
+swamp sparrow
+Zimbabwean
+drawing room
+weekender
+liparis
+streambed
+samosa
+hitter
+water heater
+tidal basin
+ossuary
+dik-dik
+camouflage
+fiance
+Jordanian
+rolling pin
+slingback
+turret
+hen
+jennet
+playpen
+woodhewer
+bushing
+church bell
+bear grass
+double knit
+tennis pro
+Joe-Pye weed
+pave
+pochard
+painted beauty
+crinoline
+gumbo
+trestle table
+schnitzel
+balloon flower
+Turkish coffee
+extension cord
+wireless local area network
+sluice
+umbel
+microeconomist
+sky
+aisle
+commander in chief
+hydroplane racing
+poll
+Coca Cola
+fuel injection
+bird pepper
+monkey puzzle
+English muffin
+riverbed
+varietal
+kachina
+airport
+saltwort
+oolong
+red-hot poker
+mihrab
+cocoa
+jersey
+Walkman
+syndic
+Hessian boot
+millstone
+carpenter
+outfall
+curbstone
+mocha
+field pansy
+patriarch
+slacks
+switchblade
+killdeer
+whelk
+pampas grass
+racquetball
+platform bed
+Indian rhinoceros
+Japanese iris
+blacktop
+dinner jacket
+stud
+jodhpurs
+telephone pole
+business district
+kurta
+basil
+handset
+file folder
+gloriosa
+orphan
+cantle
+cookie sheet
+cafe au lait
+drawbridge
+hill myna
+Western diamondback
+watch case
+cardcase
+bowling alley
+mattress cover
+canvasback
+pompadour
+cornice
+matador
+cigar cutter
+skunk cabbage
+baptismal font
+bitters
+refectory
+egg
+parula warbler
+tiger lily
+field house
+nanny
+skin-diver
+soda water
+lymphocyte
+carport
+chocolate fudge
+amphitheater
+sugar candy
+sea hare
+open-face sandwich
+dessert spoon
+staple gun
+envelope
+worker bee
+general
+garment bag
+maypop
+autobahn
+Atlantic puffin
+polo shirt
+Humvee
+spice rack
+grotto
+banderillero
+gaillardia
+black-crowned night heron
+oboist
+weigela
+Dictaphone
+dwarf iris
+marsh mallow
+yarrow
+eccentric
+catsup
+jade green
+mistress
+henbit
+beachwear
+head
+commuter
+strawberry tree
+chickpea
+clothespin
+fleabane
+brussels sprout
+winter melon
+Laconian
+great horned owl
+caricaturist
+nan
+flowerbed
+triple sec
+dairy
+round of golf
+cardinal
+kauri
+Zulu
+Armagnac
+cowberry
+mouthpiece
+wild calla
+bling
+puppeteer
+beer drinker
+adder
+field sparrow
+chocolate pudding
+blacksmith
+finback
+Shetland pony
+cheese fondue
+panty girdle
+soda can
+electrolytic
+florist's chrysanthemum
+yellow jasmine
+tudung
+equalizer
+ridge
+dulcimer
+grappa
+barn swallow
+coneflower
+enamel
+poached egg
+halfback
+yak
+toby
+Fleet Street
+blue catfish
+sand tiger
+flying buttress
+snaffle
+stoop
+first base
+cultivated land
+first lady
+waratah
+headquarters
+arnica
+lovebird
+common morel
+parasol
+disk clutch
+Xerox
+vitamin P
+vitamin B12
+long sleeve
+certified public accountant
+hot pants
+pitch pine
+pantie
+drawers
+cake mix
+boar
+grey
+bride
+false sago
+bullion
+coach house
+bass guitar
+Japanese banana
+meadow clary
+black belt
+Canterbury bell
+smallmouth
+treadmill
+great white heron
+enchilada
+rummer
+captain
+camisole
+wild garlic
+oak fern
+ultramarine
+peach
+hawkweed
+autostrada
+adit
+anaconda
+artwork
+skinhead
+jello
+hermit thrush
+Bewick's swan
+dress suit
+trail bike
+stubble
+common polypody
+Riesling
+Easter lily
+telegraph key
+envelope
+garlic bread
+perianth
+salad bar
+steppe
+club sandwich
+nude
+garden forget-me-not
+Tuareg
+flood
+Statehouse
+charcoal
+boy scout
+Rhone wine
+parfait
+spoor
+lanyard
+octagon
+brown bread
+quarterback
+quilted bedspread
+hookah
+Pepsi
+hamburger bun
+entrepreneur
+saddle oxford
+snake's head fritillary
+undies
+chemise
+skidder
+chickpea
+carnation
+honey bun
+mortar
+Montrachet
+automobile horn
+skylight
+gingham
+rafter
+pantile
+climbing frame
+scarlet runner
+cable
+cornstalk
+mockingbird
+raisin bread
+chili sauce
+hand calculator
+concert-goer
+detached house
+coq au vin
+lasso
+hyssop
+globe thistle
+paper clip
+slide
+Jerusalem artichoke
+tetrahedron
+mock orange
+lemon lily
+finger
+little sister
+handcuff
+horse wrangler
+pavlova
+oilcloth
+snow-in-summer
+common mugwort
+greenshank
+ice-cream cone
+rubber boot
+gunnysack
+disk jockey
+long trousers
+sorghum
+pontoon
+calf
+fire extinguisher
+cotton thistle
+pilot whale
+ao dai
+steamroller
+wristwatch
+tawny owl
+city
+country store
+ironweed
+kennel
+bathrobe
+rattan
+drawer
+fly tent
+choline
+musk thistle
+courthouse
+Yugoslav
+bush
+trawler
+shellflower
+jade vine
+ragged orchid
+pea soup
+King Charles spaniel
+hubcap
+snook
+paddy
+bow and arrow
+shovel
+dill
+cliff swallow
+cadaver
+hijab
+masterpiece
+fish geranium
+kettle
+sanitary napkin
+carrot stick
+Mountie
+peanut brittle
+dam
+jackal
+windowsill
+butterfly orchid
+bodice
+picador
+pale yellow
+beanie
+petiole
+tenor saxophonist
+bungalow
+gnomon
+stock saddle
+field glass
+rigging
+wood grain
+Speaker
+settlement house
+swamp milkweed
+paper nautilus
+tangerine
+champagne
+crescent roll
+library
+Schmidt telescope
+stemless carline thistle
+motorcyclist
+alpine ash
+planchet
+water closet
+casuist
+hand luggage
+hyssop
+spaghetti and meatballs
+cannelloni
+cedar waxwing
+water dog
+brick red
+linkage
+sweep hand
+purple heather
+macaroni and cheese
+butter knife
+refreshment
+malt
+St. Augustine grass
+wainscot
+compass
+gas heater
+tamale
+table saw
+referee
+borsch
+projector
+dracaena
+peppermint
+Reuben
+Abyssinian banana
+glassblower
+floss
+small stores
+artilleryman
+lapwing
+ranch
+garbage man
+dwarf banana
+commelina
+currant
+adulteress
+landlocked salmon
+pasqueflower
+nan
+tiger lily
+Eritrean
+rotunda
+catsup bottle
+mezzanine
+royal fern
+blended whiskey
+bowler hat
+mistletoe
+manor
+fusee drive
+pistachio
+dispensary
+swamp
+amputee
+sculptor
+schoolmaster
+Chinese anise
+dwarf iris
+livestock
+chronograph
+nectarine
+jockey
+plaster
+motel room
+swamp azalea
+hippeastrum
+space station
+duchess
+catacomb
+dovetail
+cockscomb
+common spotted orchid
+brittlebush
+cleats
+cloche
+hotchpotch
+cabin car
+prey
+indigo
+light beer
+bear's breech
+jonquil
+analyzer
+alyssum
+spur gear
+ice tea
+honey buzzard
+twayblade
+dirndl
+atlas moth
+croquette
+carafe
+flyweight
+professional basketball
+multivitamin
+air terminal
+phial
+roll-on
+skunk cabbage
+bird of paradise
+rose
+cooter
+camping
+divided highway
+herbage
+sweet vermouth
+common comfrey
+eggplant
+office building
+glutton
+gefilte fish
+bicycle rack
+swamp birch
+Venetian blind
+Pernod
+Norway spruce
+portrait camera
+bastion
+vitamin Bc
+Ugandan
+Indian red
+okapi
+emu
+vin ordinaire
+chintz
+shrimp cocktail
+numbat
+tall oat grass
+cable car
+stopcock
+ham sandwich
+Yemeni
+stanhopea
+plate
+chicken broth
+common yellowthroat
+California poppy
+radio
+chocolate egg
+mess jacket
+tea table
+physostegia
+Japanese flowering cherry
+confectionery
+chicken cacciatore
+painted nettle
+popover
+white rice
+strapless
+mohair
+electrical cable
+coil spring
+arterial road
+miniature fan palm
+spectator pump
+pesto
+interlocutor
+eastern kingbird
+dongle
+vitamin B6
+stuffed tomato
+cough drop
+okra
+black
+barbecue
+burial mound
+firstborn
+corn snake
+amberjack
+bollard
+horn
+Black African
+elbow pad
+Camembert
+circle
+Japanese apricot
+hearing aid
+rock star
+creature
+taster
+bubble gum
+scull
+lemon balm
+chaetodon
+anemometer
+brake drum
+fuselage
+courthouse
+aqualung
+yellow adder's tongue
+reception desk
+guy
+buffalo wing
+ginger beer
+robin
+pantothenic acid
+marsh hawk
+yellow journalism
+exhaust
+cardamom
+Tabasco
+ax handle
+patriarch
+floor
+pine snake
+spoiler
+hood
+sphagnum
+parrotfish
+orphanage
+redpoll
+beef Wellington
+white spruce
+cherry plum
+scapular
+field lens
+broomstick
+mouser
+wood thrush
+Nebraskan
+hotelier
+milk thistle
+soya milk
+Munich beer
+boucle
+snowy egret
+dust storm
+steward
+kudzu
+oriental poppy
+presbytery
+burro
+orange soda
+stonecrop
+splashboard
+menagerie
+dormer
+wire cutter
+yellow bells
+Dubliner
+shore pine
+cousin
+racing gig
+Morgan
+gold plate
+villager
+snifter
+granny's bonnets
+egg roll
+Spode
+amabilis fir
+babbler
+pestle
+heliopsis
+halter
+black spruce
+President of the United States
+ski slope
+chocolate fondue
+lockstitch
+motel
+Epipactis helleborine
+tabbouleh
+Yorkshire pudding
+overpass
+Timorese
+presbyter
+tablefork
+bottle gourd
+tiara
+vintage
+pilgrim
+reindeer moss
+shower stall
+towel rack
+kachina
+chef's salad
+breeder
+cow parsnip
+walker
+Black woman
+Irish coffee
+portrait lens
+lateen
+gilt
+successor
+cargo container
+Lithuanian
+mayapple
+paisley
+highchair
+strawberry jam
+flying fox
+field scabious
+blue-eyed grass
+screw
+Frisbee
+dressing room
+cholla
+walkie-talkie
+red currant
+centrifugal pump
+smorgasbord
+hot rod
+marcher
+rowanberry
+welwitschia
+amphitheater
+pew
+concert band
+bosom
+pillbox
+seagrass
+openwork
+meadow goldenrod
+shower
+chicken sandwich
+Boston ivy
+plastron
+oilfield
+stuffed tomato
+juniper berries
+frame
+Spanish mackerel
+family room
+powder horn
+fight
+maguey
+bunker
+work-shirt
+air filter
+nosh
+sugar bowl
+foothill
+reliquary
+tugboat
+horsebox
+grater
+palace
+board member
+campsite
+halibut
+geneva
+ginger ale
+high commissioner
+genet
+bodywork
+spaghetti
+protractor
+pipe cutter
+wood anemone
+turkey cock
+surge suppressor
+green turtle
+spoiler
+bedsitting room
+television room
+ballot box
+shasta daisy
+impeller
+capote
+bitter
+California wine
+lock
+spinnaker
+gill fungus
+baby's breath
+nut and bolt
+moonflower
+houseboat
+distributor cap
+coffee bean
+gusset
+bowling ball
+knitwear
+frieze
+mistflower
+roadster
+cue
+circuitry
+brake
+butt hinge
+Chickasaw
+leopard frog
+wing tip
+puree
+mantel
+pantheon
+grandfather clock
+cockchafer
+pomegranate
+cleaners
+eyeshadow
+Oregon cedar
+rock hopper
+hawksbill turtle
+agriculturist
+yellow-crowned night heron
+Albanian
+pumpkin seed
+chateau
+goggles
+camper trailer
+bracket fungus
+cigarette case
+signal box
+saddle blanket
+poison ivy
+set gun
+cattleya
+dry fly
+concert hall
+personal digital assistant
+talcum
+deodorant
+common starling
+painted turtle
+kea
+plenipotentiary
+pantyhose
+masjid
+buskin
+hurdle
+cocktail lounge
+belting
+sour dock
+knife blade
+sugar snap pea
+paddle
+dickeybird
+brace
+keep
+call center
+yacht
+lead pencil
+tumbler
+production line
+tetra
+private
+French window
+express
+ski boot
+pinto
+broad bean
+American crow
+screech owl
+snapper
+power cord
+Manx
+rambutan
+sun deck
+stonefish
+golden eagle
+national monument
+readout
+cork oak
+hacksaw
+beer can
+bathe
+tussock bellflower
+wet suit
+mihrab
+big game
+highlighter
+sprocket
+measuring worm
+grapefruit
+samovar
+distributor point
+steak knife
+incubator
+loon
+temporary hookup
+hippodrome
+hot spring
+spacesuit
+flea market
+clay pigeon
+catbird
+earmuff
+tetherball
+yellowfin
+cellophane
+lanolin
+clapperboard
+velveteen
+police dog
+cashew
+sequencer
+mango
+duplex house
+bazaar
+Golden Delicious
+red carpet
+collet
+kickstand
+broadloom
+diskette
+tank engine
+compact
+diesel-electric locomotive
+whale shark
+water moccasin
+mountain avens
+tropic bird
+ginkgo
+ski cap
+fixative
+glockenspiel
+chopine
+ethernet
+herring gull
+skeleton key
+finger paint
+conference table
+great crested grebe
+harbor
+white-crowned sparrow
+Bullock's oriole
+guestroom
+boutique
+cable television
+roulette wheel
+Luger
+Latin American
+trumpeter
+blindfold
+baby
+freshwater bass
+home plate
+bonefish
+giant sunflower
+giant tortoise
+planking
+pigeon hawk
+oceanfront
+door
+bazaar
+common wasp
+conformation
+kick starter
+kid glove
+corydalis
+shuttlecock
+writing desk
+ivory gull
+shirttail
+diving suit
+weka
+downy birch
+altar
+wild sage
+tufted puffin
+cabinet
+Orpington
+cineraria
+bottom
+dial
+coracle
+resort hotel
+soap dish
+spotted owl
+billiard room
+ghetto blaster
+red-breasted nuthatch
+hatchling
+chalet
+bracteole
+crusher
+mixer
+net melon
+farmhouse
+Dutch oven
+transept
+penlight
+palmyra
+stewing pan
+solar cell
+crochet needle
+black-winged stilt
+germander speedwell
+crinkleroot
+truncheon
+bunchberry
+hatchback
+sounding board
+mixing faucet
+chess master
+bisque
+Brie
+Sitka spruce
+pawn
+Mexican-American
+space rocket
+choreographer
+collared peccary
+duffel
+nacho
+patchcord
+carpet snake
+omnivore
+watering can
+hall of residence
+streamer fly
+sunroof
+great grandson
+oil refinery
+billiard player
+ivy geranium
+key palm
+pinwheel
+yellow-shafted flicker
+purple onion
+soldering iron
+condominium
+fishing gear
+heat pump
+marine iguana
+cuckoo clock
+Bletilla striata
+headrest
+spotted salamander
+field hockey ball
+pound
+carboy
+vertical stabilizer
+groundsheet
+cinnamon bread
+acorn squash
+sheathing
+lakefront
+Jeffrey pine
+synthesizer
+olive
+apple
+pannier
+ponderosa
+Jew's-ear
+latch
+equatorial
+metasequoia
+permit
+bloomers
+town hall
+fava bean
+casino
+bier
+jampot
+common snapping turtle
+clary sage
+oatmeal
+Dutchman's breeches
+massif
+Guyanese
+heifer
+handball
+sweat suit
+pomelo
+Iceland moss
+customhouse
+sandbag
+archer
+gyrfalcon
+sword cane
+marmite
+whole snipe
+blue crab
+sugar spoon
+brownstone
+chicken wire
+lizardfish
+dump truck
+chicken yard
+chamois
+electric
+idle pulley
+jujube
+wrestling mat
+aoudad
+Burmese cat
+water shamrock
+dormitory
+Unknown Soldier
+hearse
+bumper
+clipper
+desert pea
+critter
+semitrailer
+backboard
+common St John's wort
+Atlantic manta
+song thrush
+jukebox
+quoin
+eastern chipmunk
+copper beech
+paintball gun
+bull
+package store
+fraise
+royal poinciana
+niqab
+traction engine
+objective
+day nursery
+ski lodge
+orphan
+summer house
+cereal box
+router
+sleuth
+jodhpur
+polyp
+croquet
+sport kite
+green onion
+tulle
+etagere
+tussock caterpillar
+rest house
+elderberry
+bridal wreath
+Torrey pine
+silver wattle
+kidney bean
+pentode
+laelia
+Allen wrench
+sporran
+red drum
+tricot
+heterodyne receiver
+magazine rack
+stone curlew
+trawler
+suckling
+niblick
+sandwich plate
+double door
+Togolese
+pitching wedge
+desert tortoise
+cloth cap
+date palm
+webbing
+jumper
+frogmouth
+copperhead
+covered couch
+black mallee
+riser
+scraper
+gauntlet
+pantheon
+food court
+muntjac
+grocery bag
+bread-bin
+transmission shaft
+primigravida
+window seat
+crab apple
+seat
+Fresnel lens
+dendrobium
+hatchback
+little theater
+butter dish
+back porch
+umbrella tree
+carrot
+seventy-eight
+coconut
+music stool
+Tesla coil
+bay willow
+American basswood
+sabot
+wheel and axle
+gazette
+lute
+bassinet
+hart
+mecca
+breadbasket
+silverfish
+handball
+Scotch pine
+box camera
+stately home
+Hereford
+tread
+single-breasted jacket
+desk phone
+deodar
+professional boxing
+fly casting
+box wrench
+black oak
+martello tower
+red campion
+bullock
+sweet William
+bay leaf
+dollhouse
+flounder
+fox hunting
+beanbag
+king mackerel
+rouge
+film advance
+common mallow
+parasitic jaeger
+satellite receiver
+nurse shark
+chesterfield
+tomatillo
+plimsoll
+hatbox
+bloomer
+foul-weather gear
+longleaf pine
+horse mackerel
+tree lizard
+bark
+belfry
+Treasury
+perch
+purple finch
+stag beetle
+fragrant orchid
+tachymeter
+tadpole
+cookie jar
+knee piece
+agueweed
+bones
+chick
+golf glove
+toothpick
+taboret
+rotor blade
+field artillery
+purple willow
+redhead
+spark plug
+guava
+voice mail
+cross
+butterfly valve
+star magnolia
+olive
+room light
+Australian turtledove
+embassy
+Iraqi
+singles
+nestling
+spinning rod
+radial engine
+rowan
+sandbox
+boss
+moccasin flower
+veneer
+mint
+American chestnut
+white whale
+CPU board
+florist
+press box
+hurricane lamp
+giant kangaroo
+greater whitethroat
+winter jasmine
+blue
+department store
+southern red oak
+saber saw
+corn muffin
+bellbottom trousers
+toaster oven
+red eft
+condominium
+galago
+sunbather
+redpoll
+common European earwig
+songbird
+linnet
+light meter
+bracer
+tepee
+gumbo
+water glass
+roofing
+spathiphyllum
+shofar
+sand lizard
+washroom
+Brussels carpet
+brachyuran
+home room
+floatplane
+knee brace
+solar heater
+felucca
+gas ring
+maguey
+manse
+blue columbine
+cuppa
+cigar band
+male orchis
+mudskipper
+couscous
+Chinese parasol tree
+dude ranch
+banyan
+gopher snake
+sundrops
+aviary
+African daisy
+missel thrush
+Photostat
+stone pine
+circus tent
+tangle
+printer cable
+grease-gun
+rose chafer
+light pen
+plantain
+hearth
+bullfinch
+post oak
+slow loris
+Newtonian telescope
+head
+punt
+spindle
+New England aster
+spotted sandpiper
+pond pine
+grass skirt
+bug
+black rat snake
+tabasco
+bull shark
+tennis camp
+scrambler
+popinjay
+bing cherry
+ministry
+cash register
+redheaded woodpecker
+kameez
+farmer's market
+roan
+harpy
+European toad
+pizzeria
+camshaft
+hemp nettle
+chicken coop
+cottage pink
+daybed
+observatory
+airdock
+mountain devil
+newsstand
+kingfish
+snow gum
+jackdaw
+lacquerware
+peeler
+miro
+sister ship
+damask rose
+pack
+snowshoe
+Liberian
+paramecium
+tidytips
+professional tennis
+bookend
+wood swallow
+cayuse
+cranberry
+rock squirrel
+steak au poivre
+soul patch
+female mammal
+sash fastener
+songwriter
+oxeye daisy
+apse
+floor joist
+hand towel
+wheatear
+cero
+soul mate
+golden fig
+bus stop
+psycholinguist
+convenience store
+manor hall
+mountain sandwort
+Euopean hoopoe
+haricot vert
+mausoleum
+violist
+flashlight battery
+chard
+fixer-upper
+bank martin
+testudo
+diving duck
+kohlrabi
+Omani
+sphygmomanometer
+greyhound racing
+chestnut
+rattlesnake plantain
+chaffinch
+wolf pup
+teakettle
+cairn
+souk
+resident commissioner
+chuckwalla
+gaiter
+capercaillie
+liver chestnut
+bean sprout
+land line
+ambassador
+green pepper
+common chickweed
+Sharpie
+Oriental arborvitae
+oncidium
+pallone
+currawong
+sweet alyssum
+fire tower
+eyebrow pencil
+redfish
+apricot
+clementine
+blucher
+wigwam
+pangolin
+buggy
+common oak
+jumbojet
+laser
+cigarette holder
+racquetball
+georgette
+cleft
+scouring pad
+drum printer
+pond scum
+American red squirrel
+caranday
+swamp willow
+blindworm
+brook trout
+defense system
+nyala
+three-way calling
+mizzen
+shuttle
+African lily
+Oregon white oak
+rain tree
+fuel gauge
+oriental cherry
+wahoo
+pear
+jungle gym
+bass fiddle
+outrigger
+angelfish
+Old World coot
+lime
+battlement
+yarmulke
+herpes varicella zoster
+burp gun
+Alpine glacier
+stun gun
+pilot boat
+Southern crab apple
+bushtit
+pullet
+polo pony
+jackfruit
+raw vegetable
+French marigold
+golden shower tree
+spike lavender
+wahoo
+brass knucks
+cabbage palm
+diesel-hydraulic locomotive
+red jungle fowl
+prairie sunflower
+rye
+loofa
+icecap
+shade tree
+secretary bird
+saffron
+cos
+muskrat
+videodisk
+Carolina wren
+candy bar
+Bohemian waxwing
+flowering almond
+cold frame
+raglan
+pine siskin
+quince
+western red cedar
+red maple
+adobe
+agora
+kumquat
+tenement
+bantam
+bayberry
+water jump
+great granddaughter
+snips
+porcupinefish
+brochette
+love-in-a-mist
+Iceland poppy
+common sage
+pace car
+camel racing
+slipcover
+nopal
+shoehorn
+calypso
+rhea
+in-basket
+maple syrup
+cold chisel
+Pacific ridley
+dietary
+aperture
+lapin
+rock hyrax
+house wren
+litchi
+ragged robin
+control center
+shoebox
+arabesque
+eider
+silver birch
+bantamweight
+ax head
+softball
+blue gum
+Bechtel crab
+tomato sauce
+green douglas fir
+sweet gum
+macaroni salad
+red phalarope
+budgerigar
+Bedford cord
+Uzi
+green woodpecker
+ohmmeter
+bacon-lettuce-tomato sandwich
+hackney
+Easter egg
+motmot
+red pine
+opium poppy
+gat
+pussy willow
+greater scaup
+ocelot
+persimmon
+western hemlock
+carambola
+pinion
+Malcolm stock
+bobsled
+larkspur
+wood drake
+pinetum
+red gum
+draft beer
+funnel
+terrarium
+Pinot blanc
+doodlebug
+brittle star
+salsa
+cantaloup
+pollack
+stockpot
+eastern hemlock
+rock wren
+burqa
+squash
+aircraft engine
+billy
+flamingo flower
+odontoglossum
+old squaw
+redstart
+sheepskin coat
+mate
+flathead catfish
+gentianella
+bilberry
+bog rein orchid
+incense cedar
+mew
+Colorado spruce
+cob
+portmanteau
+grenadine
+common ginger
+masdevallia
+compound microscope
+sobralia
+white fungus
+guppy
+chapterhouse
+honey
+green frog
+sea swallow
+African marigold
+astrolabe
+verdigris
+yellowhammer
+carrot juice
+oxlip
+medicine ball
+highboy
+grass frog
+gamebag
+surgery
+mincer
+mulloway
+cactus wren
+box office
+resonator
+table-mountain pine
+European curlew
+supernova
+cabbageworm
+peach
+plane seat
+asp
+Yquem
+tomato hornworm
+rook
+quadruped
+chador
+micrometer
+dabchick
+Afro-wig
+balsam fir
+bucket seat
+sage green
+macon
+blue poppy
+chinquapin oak
+black pine
+spinach
+chrysalis
+carnauba
+tee
+bearberry
+shirt button
+tree of heaven
+southern white cedar
+covered wagon
+brood hen
+spadix
+European catfish
+winter wren
+bulldog clip
+carpetbag
+study hall
+chino
+simian
+closeup lens
+cookie cutter
+grapefruit
+mandola
+sassaby
+Allegheny plum
+piaffe
+scorpion fly
+booby
+draft animal
+field tent
+cumin
+laurel oak
+smooth-leaved elm
+American arborvitae
+American toad
+grinding wheel
+mountain ash
+cuttlefish
+pipistrelle
+parer
+safety rail
+Clark's nutcracker
+side-blotched lizard
+giant hornet
+wicket
+dugout
+electric toothbrush
+dhow
+common four-o'clock
+long-eared owl
+anchor
+near beer
+tansy
+creme caramel
+guided missile frigate
+shelduck
+durian
+compact
+iron tree
+shiitake
+polo
+camouflage
+pedal pusher
+salon
+tangerine
+lacebark
+Swiss mountain pine
+goalpost
+poolroom
+space capsule
+wild cherry
+dress hat
+wave
+raglan sleeve
+cassia
+Jerusalem artichoke
+cabbage palmetto
+marsh harrier
+American redstart
+sea squirt
+cliff diving
+sparrow hawk
+watch cap
+frankfurter bun
+police boat
+flash camera
+neem
+eastern meadowlark
+Italian cypress
+orb-weaving spider
+graniteware
+sewing basket
+latex paint
+rock dove
+stator
+leaf lettuce
+roulette
+broadcloth
+Spork
+panicle
+sternwheeler
+cider vinegar
+brown creeper
+cowfish
+closed gentian
+chickpea
+port
+pimento
+sheeting
+matilija poppy
+hawk owl
+guava
+papaya
+huisache
+European shrike
+racing skiff
+yellow warbler
+gumbo-limbo
+North Carolinian
+staysail
+court
+iced coffee
+money belt
+shaver
+Psychopsis papilio
+sumo ring
+refection
+kingfish
+clock pendulum
+greater butterfly orchid
+disk harrow
+tawny eagle
+polyphemus moth
+pieplant
+Nicaraguan
+bocce ball
+California box elder
+porbeagle
+crown of thorns
+Mexican sunflower
+fennel
+stream orchid
+slip ring
+white fir
+fold
+moss campion
+fairy ring
+hose
+pony-trekking
+western larch
+meadow pipit
+Cape May warbler
+longan
+bookmobile
+junk shop
+lemon shark
+smelling bottle
+solan
+widow
+sea pen
+universal joint
+day game
+goldcrest
+maiden pink
+biographer
+rotunda
+oriel
+arranger
+gambrel
+Angora
+fen orchid
+leading rein
+Wilson's snipe
+European nuthatch
+natterjack
+athletic supporter
+mouflon
+emergency room
+swallow-tailed coat
+western meadowlark
+feather star
+Navy SEAL
+toilet bag
+loquat
+lesser butterfly orchid
+thumbhole
+breathalyzer
+featherweight
+collards
+mayfly
+confessional
+mountain ebony
+redwing
+Norway maple
+refractometer
+stagecoach
+gasoline gauge
+octopus
+baker
+Rhode Island red
+European tortoise
+cardiologist
+Punjabi
+Arkansas kingbird
+tamarind
+drum brake
+flash
+yellowtail
+stokes' aster
+emperor
+free house
+sour gum
+ruddy duck
+hamadryad
+command module
+tinamou
+Norway lobster
+washstand
+European hornbeam
+roaster
+black-necked grebe
+tallgrass
+leopard lizard
+anastigmat
+Blackburn
+deutzia
+ground rattler
+Christmas fern
+wild pink
+sesame seed
+carrycot
+Italian parsley
+nectar
+roll-on roll-off
+true laurel
+anisette
+candy corn
+flowering maple
+revers
+dun
+tobacco hornworm
+common sunflower
+common grape hyacinth
+cardiograph
+electric meter
+herb Paris
+goalmouth
+spruce grouse
+canopy
+wind poppy
+stemma
+gateleg table
+lumper
+speckled rattlesnake
+gudgeon
+rough-legged hawk
+internal drive
+pomelo
+piece de resistance
+storm door
+clementine
+Japanese pink
+settler
+yellow jacket
+Fraser fir
+royal palm
+cicada killer
+cayenne
+guava
+bluewing
+red baneberry
+lesser yellowlegs
+cache
+bog rose
+sparring partner
+ski jumping
+sherry
+glacier lily
+beer mat
+shredder
+American widgeon
+protectionist
+green olive
+black-tailed deer
+Alpine fir
+dispatch case
+whipping cream
+African daisy
+cantilever bridge
+maraschino
+rhea
+ink bottle
+dacha
+hagberry tree
+lesser rorqual
+orchard oriole
+candidate
+cuticle
+breadfruit
+fishbowl
+giant puffball
+closed gentian
+Joshua tree
+tie rod
+beard lichen
+flame tree
+stegosaur
+acerola
+Swan River daisy
+common murre
+flowering almond
+protegee
+loggerhead shrike
+Wilson's warbler
+Japanese honeysuckle
+basilisk
+skimmer
+hybrid tuberous begonia
+pumpkin ash
+chafing dish
+collared lizard
+iced-tea spoon
+scrubbird
+Iceland poppy
+grey kingbird
+wallflower
+slick
+diesel
+Swiss pine
+ethernet cable
+ketch
+lightship
+black cherry
+swordtail
+Monterey cypress
+lightweight
+Floridian
+Sabine
+stall
+contact
+viola da gamba
+hemstitch
+upland sandpiper
+box spring
+sassafras
+radome
+lesser scaup
+bluefin
+yellow-bellied sapsucker
+armored car
+cabin class
+Moorish arch
+webcam
+aquavit
+overall
+sergeant major
+soft shield fern
+gin and it
+bobolink
+subcompact
+falconer
+black morel
+roadrunner
+lab bench
+thong
+coffee urn
+weeping beech
+caladenia
+southern live oak
+scanner
+wine vinegar
+common speedwell
+European roller
+fuji
+snag
+piping plover
+concertina
+secateurs
+meat thermometer
+supercomputer
+funnel
+dais
+western fence lizard
+spruce pine
+pommel horse
+Cassegrainian telescope
+pitta
+India-rubber tree
+mangosteen
+tamp
+aposematic coloration
+dustcloth
+birth
+Atlas cedar
+reed bunting
+jabiru
+sainfoin
+press photographer
+golden oriole
+laryngoscope
+thermal printer
+winder
+doubles
+cricket ball
+dabbling duck
+tonic
+Buddhist
+Morris chair
+swatter
+quaking aspen
+ancient pine
+American larch
+evaporative cooler
+click beetle
+yellow-breasted chat
+souchong
+bluegill
+pied-billed grebe
+tricorn
+spring beauty
+southern magnolia
+rowel
+chili
+hard roll
+flathead
+satsuma
+gangplank
+bourguignon
+cockfighting
+greenwing
+plum tomato
+fly orchid
+gnatcatcher
+spotted eagle ray
+ovenbird
+brassavola
+mocha
+candy cane
+afterburner
+thriftshop
+study
+winter crookneck
+grinder
+muskellunge
+sacred ibis
+inverter
+sandwort
+deer fern
+stair-carpet
+Cotes de Provence
+ovenbird
+rex begonia
+American woodcock
+poison ash
+lowland fir
+pawpaw
+loblolly pine
+kinkajou
+European hackberry
+pest
+coralwood
+Bedouin
+acetate rayon
+snuffbox
+radiator cap
+basket oak
+table-tennis racquet
+smew
+midge
+telescopic sight
+radish
+great burdock
+separate
+damask violet
+broadbill
+bourbon
+blacktip shark
+gift shop
+khimar
+date
+woodland caribou
+policeman bird
+grey birch
+American elm
+strawflower
+officiant
+hart's-tongue
+straight razor
+Spanish elm
+radicchio
+white croaker
+vicuna
+soft-shell clam
+flannel
+adonis
+bonito
+kittiwake
+English walnut
+soldierfish
+hipflask
+spotted crake
+Streptopelia turtur
+American maidenhair fern
+corn cockle
+telephone cord
+canopy
+playback
+diocesan
+marsh orchid
+manakin
+purple grackle
+cob
+fishmonger
+otoscope
+vermillion flycatcher
+inhaler
+instar
+licentiate
+myrtle warbler
+goat herder
+benthos
+toggle
+drumhead
+piranha
+doorplate
+vault
+triptych
+red-necked grebe
+transporter
+vernier caliper
+flathead
+Portuguese man-of-war
+countrywoman
+vacation home
+Bactrian camel
+night-light
+module
+lemon curd
+carancha
+painted daisy
+bok choy
+ratatouille
+troll
+escarpment
+cinnabar
+computerized axial tomography scanner
+lychgate
+sowbread
+bedside
+guided missile cruiser
+reel
+cleat
+hemostat
+blue shark
+Seven Wonders of the Ancient World
+motorized wheelchair
+pillow block
+horned puffin
+prickly pear
+electric range
+mother's daughter
+vein
+Oregon maple
+bird dog
+faceplate
+wren warbler
+feather reed grass
+common alder
+Adam's needle
+straitjacket
+organ-grinder
+gantry
+bikini pants
+peristyle
+herpes
+terry
+toad lily
+celandine
+red-breasted sapsucker
+bragger
+green peafowl
+fuschia
+quoits
+house martin
+dome
+herpes simplex 1
+touraco
+meeting house
+vacuum gauge
+cat's-ear
+crisphead lettuce
+carpet moth
+European rabbit
+puff adder
+Old World scops owl
+fire pink
+fruit punch
+ant bear
+black walnut
+stroboscope
+white mangrove
+pine grosbeak
+cast
+check-in
+ring-necked parakeet
+matai
+shingle oak
+fieldwork
+rue anemone
+landing net
+ouzo
+herringbone
+lyceum
+hydrogen bomb
+mullein pink
+masher
+evening grosbeak
+water vole
+livingstone daisy
+tomatillo
+cavalier hat
+interphone
+wild lupine
+goosefish
+sugar maple
+plantain
+white dead nettle
+Monterey pine
+bugle
+veloute
+marsh gentian
+Bermuda buttercup
+alehouse
+Peter Pan
+thong
+LP
+tulip tree
+scanner
+scarlet tanager
+music hall
+angel shark
+pecan
+eight ball
+rosy boa
+outboard motorboat
+garage
+fanlight
+black cottonwood
+notornis
+mountain fern
+lunar crater
+reddish orange
+whitetip shark
+executant
+European ladies' tresses
+washboard
+revolving door
+case knife
+balloonfish
+greater kudu
+tarpan
+cog
+wet fly
+Irish soda bread
+basement
+broken arch
+canopic jar
+muscat
+kazoo
+bobsledding
+loaner
+black guillemot
+English saddle
+garlic mustard
+Foucault pendulum
+mulberry
+clotted cream
+dove's foot geranium
+Atlantic ridley
+convector
+ground floor
+European wildcat
+poinsettia
+hideaway
+great barracuda
+black beech
+bushy aster
+cornflower
+tam
+true slime mold
+carving knife
+holly fern
+railroad tunnel
+crimson clover
+disposal
+etamine
+suspension
+plasmodium
+political scientist
+minnow
+Spanish rice
+twist bit
+subway train
+Scleroderma citrinum
+saw palmetto
+console
+gimlet
+hand pump
+waratah
+rock rattlesnake
+keel
+server
+curlew sandpiper
+hone
+sable antelope
+inkle
+photostat
+foresail
+sallet
+tiger salamander
+chutney
+onlooker
+Exmoor
+tiramisu
+drawing room
+battery
+sour orange
+juniper berry
+beeper
+funeral home
+fescue
+Maksutov telescope
+ranch house
+jai alai
+carob
+socket
+popcorn
+sandbar shark
+pipal
+summer tanager
+oast
+skipjack
+rolling stock
+dropper
+great snipe
+turnip greens
+cowpea
+honeycomb
+ichneumon fly
+maternity hospital
+harp seal
+nylon
+bomb shelter
+horse tick
+litchi
+camel's hair
+mimosa
+bur oak
+anvil
+belay
+pinhead
+continental breakfast
+burglar alarm
+Mojave rattlesnake
+auxiliary storage
+lightwood
+ratepayer
+cecropia
+retractor
+quadrate
+pepper tree
+Venus' slipper
+abattoir
+strawflower
+firewater
+purple saxifrage
+black rat
+pack
+pepper pot
+mayweed
+winger
+whitetip shark
+great yellow gentian
+snowdrop anemone
+garden angelica
+soy sauce
+white poplar
+inkwell
+crouton
+gas gun
+honey locust
+house of cards
+ice maker
+moquette
+arrack
+casualty
+butterfly orchid
+eau de vie
+mosquitofish
+prairie smoke
+haft
+horseshoe
+steel
+peach orchard
+Mexican hat
+encaustic
+shoe
+pennywhistle
+sweet woodruff
+hull
+doorsill
+globe amaranth
+day school
+housedog
+crown princess
+oxbow
+maxi
+positron emission tomography scanner
+compere
+European turkey oak
+peanut
+sentry box
+house physician
+hot line
+loquat
+rove beetle
+riband
+flowering fern
+fan vaulting
+ceibo
+bongo
+bat boy
+omelet pan
+European ash
+breadwinner
+gaff topsail
+clerestory
+bushbuck
+bluethroat
+khukuri
+Father
+portcullis
+candy egg
+brake lining
+lawn furniture
+buckskin
+garden pea
+Brazilian rosewood
+Italian bread
+horn poppy
+silk tree
+Christmasberry
+hotel-casino
+poplin
+false lupine
+desert sunflower
+mimeograph
+alpenstock
+cork tree
+cultivar
+common mosquito
+pollard
+black marlin
+understudy
+lancet window
+college
+breadfruit
+Herero
+Labourite
+bar printer
+squaw grass
+stelis
+firing chamber
+sycamore
+artificial horizon
+radiologist
+pansy orchid
+bicycle pump
+wraparound
+bell gable
+home computer
+orchard grass
+carving fork
+bergamot
+honeycreeper
+sewing room
+radiator
+core
+brown bat
+goose grass
+adjutant general
+Erlenmeyer flask
+massasauga
+tail rotor
+cardinal tetra
+Drambuie
+wine palm
+Sarcoscypha coccinea
+shantung
+Calvados
+garganey
+vicar
+house mouse
+creeping oxalis
+digital subscriber line
+cedar elm
+backgammon board
+blackberry-lily
+pallid bat
+New Zealander
+Barbadian
+rose geranium
+European spider crab
+gharry
+electric hammer
+mustard
+Chinese lantern
+laundry cart
+filament
+mozzarella
+gooseberry
+sukiyaki
+porkpie
+culvert
+altazimuth
+plum pudding
+serin
+Spanish dagger
+Asian crocodile
+crevalle jack
+mascara
+pig bed
+alderman
+northern shrike
+Sufi
+purple-fringed orchid
+derringer
+linseed
+hockey skate
+bell jar
+Japanese wistaria
+mantled ground squirrel
+western toad
+lieutenant commander
+mechanical piano
+ovoid
+paddlefish
+demijohn
+coast live oak
+brick
+gearset
+tailstock
+phonograph needle
+winery
+tuberose
+mother's boy
+shot tower
+crucian carp
+carpet pad
+lamb's-quarter
+Menorah
+common white dogwood
+hypanthium
+rosebay
+wild medlar
+soil horizon
+sweet orange
+bitterroot
+hand glass
+cloisonne
+towpath
+gum ball
+margay
+carambola
+bolt cutter
+charger
+vibraphone
+gueridon
+elephant tree
+wood-frog
+ash grey
+duffel coat
+third base
+chunga
+glebe house
+lake trout
+encephalartos
+Japanese oak
+northern red oak
+pruner
+blue orchid
+Biloxi
+western wood pewee
+corselet
+alabaster
+anechoic chamber
+grass pink
+wax begonia
+blue daisy
+pennyroyal
+Asian tiger mosquito
+cheese souffle
+flat bench
+caramel
+sump pump
+bush violet
+common fennel
+corner
+skullcap
+asparagus fern
+white mangrove
+calceolaria
+sateen
+saltbox
+hollowware
+head nurse
+coal miner
+mountain lily
+tufted vetch
+European perch
+line officer
+steamer
+stickball
+shin guard
+cauliflower
+Monegasque
+hatpin
+wolffish
+trackball
+khaki
+arthrogram
+rocket larkspur
+naval commander
+Gemini
+ski binding
+department head
+Chenin blanc
+wingstem
+knothole
+aerides
+sweet bay
+tautog
+gangway
+waterspout
+Hudsonian godwit
+armyworm
+incinerator
+kidney vetch
+pine nut
+cypress vine
+hip tile
+sorrel tree
+relay
+bench press
+Kentucky coffee tree
+dobson
+sapling
+false lily of the valley
+veld
+phaius
+vitamin B2
+beaker
+wall tent
+sieva bean
+dusty miller
+sewing kit
+cavalry horse
+diaper
+butterfly pea
+Spam
+saddlebill
+pearly everlasting
+kowhai
+Sister
+moneywort
+organdy
+pine marten
+bareboat
+hot-water bottle
+baby blue-eyes
+silver lime
+common cotton grass
+malmsey
+blue pea
+baggage car
+pineapple
+folding saw
+cotton rose
+brawler
+black duck
+Weizenbock
+pool player
+Gujarati
+wild duck
+purple sage
+sage grouse
+mail train
+arm guard
+short-spurred fragrant orchid
+queen
+eparchy
+spring peeper
+ortolan
+shoulder
+fighter pilot
+American beech
+snowcap
+novitiate
+roller
+butcherbird
+canyon oak
+brompton stock
+firebrick
+rudder
+light cream
+Primus stove
+nonsmoker
+probationer
+harp
+kosher
+surcoat
+videotape
+zebu
+first class
+yam
+car
+rissole
+miso
+funambulism
+attic
+curling iron
+shutter
+encolure
+split-pea soup
+yellow rocket
+gas oven
+ultracentrifuge
+chamomile
+canteen
+eyeliner
+yellow squash
+Irish stew
+collar
+doublet
+machinist
+septic tank
+snap bean
+Polyporus squamosus
+western tanager
+creeping St John's wort
+back
+sinkhole
+perforation
+Romanian
+epergne
+fez
+comfrey
+sidecar
+beach pea
+screen door
+instigator
+plughole
+woodbine
+pigweed
+hip pocket
+common scoter
+squeegee
+Surinam cherry
+porringer
+body stocking
+eatage
+shallot
+enlarger
+common canary
+trophy case
+gun case
+plow horse
+hot plate
+pearl oyster
+margarita
+madras
+backspace key
+pigeon guillemot
+pajama
+buckthorn berry
+homestead
+bedbug
+Linotype
+trundle bed
+granadilla
+theremin
+chin rest
+bouillabaisse
+tumble-dryer
+truffle
+cassava
+kurrajong
+gyroscope
+European silver fir
+C-clamp
+politician
+green soybean
+exponent
+flame tree
+scissortail
+achimenes
+crown daisy
+soft tree fern
+spaghetti squash
+pale violet
+beaver
+dashiki
+washboard
+driving wheel
+sack
+foulard
+sputnik
+boatbill
+English elm
+sack coat
+grog
+golliwog
+Malayan tapir
+May wine
+calash
+stile
+windjammer
+American sycamore
+rotor head
+fast food
+balata
+dragonet
+Emmenthal
+metronome
+negative
+meadow saxifrage
+rabbit ears
+chenille
+round
+hobby
+crankshaft
+Wilson's phalarope
+Murphy bed
+soil pipe
+forecourt
+policyholder
+tarmacadam
+loyalist
+gyro
+Queen's crape myrtle
+shortcake
+apple butter
+pumpkinseed
+heronry
+yellow perch
+baggage claim
+escarpment
+diaphragm
+mescal bean
+shunter
+flax
+columbarium
+Joe-Pye weed
+Neandertal man
+casement
+hole-in-the-wall
+Verdicchio
+futurist
+eaglet
+tassel hyacinth
+pup tent
+fawn lily
+cabbage palm
+pogonia
+hospital ship
+water mill
+Oregon grape
+lentil
+grindstone
+banana split
+inkberry
+coonskin cap
+bazooka
+wrap
+anise hyssop
+Java sparrow
+red-eyed vireo
+common opossum
+clintonia
+bustle
+booster
+tribesman
+soy
+panhandle
+jaboticaba
+locking pliers
+Sauvignon grape
+ghat
+screw
+oximeter
+white croaker
+saucepot
+eggbeater
+reticule
+cabbage bark
+looking-glass plant
+head gasket
+California sycamore
+cowbell
+Aleuria aurantia
+Herr
+lever
+spider orchid
+cashew
+shift key
+solar house
+wood chisel
+white
+mantilla
+stamp
+bolero
+rear admiral
+garden rake
+Lao
+crowbar
+lapdog
+buttermilk biscuit
+yellow bedstraw
+pickerel frog
+dowel
+serjeant-at-law
+mill-hand
+lambrequin
+state treasurer
+red silk-cotton tree
+coiffeur
+star anise
+shoulder pad
+marshal
+sitar player
+gown
+ground cedar
+hedge maple
+caddie
+pitahaya
+corn marigold
+stick cinnamon
+woodland star
+Eurasian green toad
+anti
+blueweed
+medicinal leech
+gaur
+chocolate kiss
+kit fox
+mother
+butte
+audio CD
+blast furnace
+vitamin D
+nutgrass
+cornice
+black sheep
+hearing aid
+lingonberry
+quad
+lentil
+riding crop
+pratincole
+pentagon
+sea lavender
+nerita
+flatmate
+catboat
+water clover
+angiopteris
+mushy peas
+crown imperial
+music school
+woodshed
+platy
+Turk's-cap
+rundle
+reading teacher
+hardtack
+balloon sail
+oriental spruce
+bluefish
+white mulberry
+horned violet
+satin bowerbird
+treasure flower
+sustaining pedal
+mimosa
+spurge nettle
+sea green
+hasp
+lederhosen
+pink cockatoo
+long johns
+basket weave
+freewheel
+thrust bearing
+timber tree
+orphan
+falafel
+common camas
+bird of passage
+bird's foot trefoil
+electric eel
+fizz
+grape arbor
+serape
+brace
+hazelnut
+kylix
+horse mackerel
+cassia bark
+lizard orchid
+spat
+Brown Swiss
+pocket flap
+pillory
+purplish blue
+rolling mill
+tappet
+broccoli rabe
+semi-detached house
+mushroom coral
+fly orchid
+nougat bar
+ball hawk
+sand wedge
+shirred egg
+black locust
+strip lighting
+drop scone
+brush turkey
+ball
+tragopan
+dallisgrass
+tuatara
+great knapweed
+potentiometer
+Kiliwa
+Pacific bottlenose dolphin
+accelerator
+Darwin tulip
+osteopath
+Arizona cypress
+manna ash
+butterbur
+cornelian cherry
+American holly
+nopal
+tanker
+foreshore
+ditty bag
+gas lamp
+safety razor
+chanter
+fomite
+chip
+striped killifish
+catalytic converter
+plaice
+dusty miller
+takin
+gerenuk
+corn chamomile
+Japanese pagoda tree
+boneset
+common osier
+Guinean
+taro
+plotter
+celandine poppy
+churn
+steenbok
+edible mussel
+sensitive fern
+triode
+black raspberry
+zoo keeper
+feather ball
+dredger
+starlet
+cornpone
+coat button
+rosinweed
+toy Manchester
+crested cariama
+finger food
+basilisk
+shotgun shell
+comfort food
+mountain hemlock
+candytuft
+Stilton
+record changer
+anklet
+ball valve
+Mediterranean snapdragon
+BVD
+sand cat
+Galloway
+nutmeg
+water-mint
+woodwaxen
+citron
+ark shell
+federalist
+drone
+cheekpiece
+hyperbaric chamber
+addax
+field-emission microscope
+synchronous converter
+men's room
+medlar
+electronic fetal monitor
+Sazerac
+false indigo
+roof
+passe-partout
+meadow spittlebug
+Phytophthora infestans
+oast house
+hedge nettle
+voting booth
+slender salamander
+telephone jack
+true bug
+scouring rush
+Scotch egg
+matchbook
+aperea
+cytomegalovirus
+garlic press
+cove
+whitebark pine
+Slovene
+narrow wale
+mother's milk
+Audubon's warbler
+prickly poppy
+cowl
+tailorbird
+mud brick
+bamboo palm
+welt
+Afghan
+Virginia spring beauty
+dinner bell
+night jasmine
+fly rod
+microtome
+aerie
+carinate
+picker
+brick trowel
+loving cup
+swathe
+green mayonnaise
+rivet
+bandbox
+newsroom
+tea tortrix
+bobby
+gig
+hush puppy
+garlic chive
+piston rod
+aspidistra
+bluejack oak
+harvest-lice
+strap hinge
+sour mash
+macadamia nut
+histiocyte
+fan belt
+shelf bracket
+abelia
+Hottentot fig
+fish chowder
+abettor
+compote
+beige
+dioon
+hop
+haymaker
+oilskin
+magnetometer
+tool bag
+tambour
+call girl
+gringo
+fairy light
+broad-leaved plantain
+second base
+zebra mussel
+Japanese cedar
+pistia
+swamp chestnut oak
+cashmere
+double cream
+samisen
+lamb curry
+companion
+kapok
+julep
+sweet woodruff
+gardener
+jewfish
+inspector general
+collembolan
+wheel bug
+bass
+scrubland
+wryneck
+macrozamia
+trouser press
+clove
+tiger cowrie
+yawl
+collard
+dildo
+pony cart
+ormer
+annual
+tessera
+chancellery
+two-toed sloth
+queen
+old lady
+wringer
+spritzer
+baggage
+black mangrove
+black-eyed Susan
+semifinalist
+highlighter
+alfalfa
+Easter daisy
+escapement
+operating table
+neutral spirits
+bursar
+roble
+entablature
+girl wonder
+farm boy
+ring ouzel
+permanent press
+auklet
+beefsteak tomato
+gaming table
+tea bag
+manul
+giant bamboo
+Ozark chinkapin
+matzo
+furrow
+smoothhound
+CD-ROM drive
+powdery mildew
+copilot
+garden
+American merganser
+bunsen burner
+Asian longhorned beetle
+lead tree
+creeping buttercup
+Percheron
+back brace
+axseed
+cub
+soul food
+rabbi
+edelweiss
+mineshaft
+fox grape
+sandwort
+torque wrench
+leisure wear
+Mae West
+broccoli
+loach
+maraschino
+heavy cream
+silkworm
+cirque
+vintner
+whitewash
+butterfly pea
+two-toed sloth
+midiron
+ceriman
+Bulgarian
+operating microscope
+sambuca
+California fuchsia
+silver maple
+tangelo
+black bean
+lugsail
+starting gate
+leek
+sunflower seed
+fish fry
+clinker
+synagogue
+coscoroba
+brae
+uphill
+common limpet
+golden plover
+cedar of Lebanon
+amphibian
+Canary wine
+taipan
+agua
+feeder
+parallel
+mater
+pink calla
+meat counter
+yagi
+crab cactus
+cacao bean
+bowfin
+alley cat
+stonefly
+Eastern cottonwood
+vernier scale
+marginal wood fern
+dancing-master
+detective
+yam
+textile screw pine
+hooch
+spinet
+single prop
+sassafras
+goose barnacle
+triple cream
+China tree
+peeper
+dressmaker
+snatch block
+ironmongery
+dressing case
+creeping bellflower
+silver sage
+honeydew
+eastern red-backed salamander
+peg
+nombril
+danish
+mashie
+anarchist
+alligator snapping turtle
+shepherd
+American white pine
+runner
+chalice vine
+rheumatologist
+defibrillator
+yellow chamomile
+lemon balm
+peacekeeper
+native beech
+sandwich board
+Bavarian
+titrator
+paneling
+deer mouse
+poteen
+sugar snap pea
+meadow salsify
+town crier
+best
+basinet
+common myrtle
+night lizard
+cushaw
+Tampax
+camphor tree
+gentile
+orange peel
+putty knife
+pyromaniac
+Brummie
+fever tree
+double
+nest
+inferior
+cabbage tree
+graduated cylinder
+mucor
+woodborer
+earthwork
+potato salad
+four-hitter
+gooseberry
+water vole
+ziggurat
+grapefruit juice
+four-in-hand
+cranberry bush
+diode
+videotape
+Mohican
+niacin
+beetroot
+shirtsleeve
+cork tree
+two-eyed violet
+white ash
+drawing chalk
+baked Alaska
+bone-ash cup
+toastrack
+diastema
+bed jacket
+dwarf astilbe
+yellow honeysuckle
+cow pasture
+sheet pile
+saxhorn
+upholstery material
+California white oak
+Spanish bayonet
+horsemint
+littleneck
+deflector
+magician
+standard transmission
+blue marlin
+shallot
+feijoa
+collar
+board
+jump suit
+common staghorn fern
+priory
+Xhosa
+Loranthaceae
+barbecued wing
+barmaid
+spit
+lemon juice
+umbrella plant
+field pennycress
+centenarian
+queen bee
+fish stick
+black bread
+dirk
+secularist
+German American
+spotted weakfish
+iron foundry
+speed bump
+yellow-fever mosquito
+gag
+frame
+black-eyed pea
+alcoholic
+involucre
+sperm whale
+balanced diet
+wax bean
+butcher's broom
+winter heath
+Mainer
+Australian pine
+gas guzzler
+double-breasted jacket
+pod
+palo verde
+trimmer
+wattmeter
+dyer's woad
+crotalaria
+vine maple
+sulky
+jack pine
+thumb
+Wilton
+Panchen Lama
+welder
+badminton court
+business editor
+Arabian coffee
+Kamchatkan sea eagle
+foamflower
+steep
+plane
+freckle
+cerebral cortex
+Vouvray
+tea
+forest tent caterpillar
+neckerchief
+accelerator
+jig
+bridal wreath
+highball glass
+New England clam chowder
+beach strawberry
+call waiting
+baton twirler
+double boiler
+Dutch elm
+car bomb
+filmy fern
+breviary
+Florida gallinule
+dace
+parsnip
+riparian forest
+crescent
+earplug
+grab bar
+cusk
+foglamp
+screwtop
+black mangrove
+mascot
+Welsh poppy
+gas holder
+support hose
+salsify
+red beech
+Indian python
+caroler
+pineapple juice
+lowboy
+terra sigillata
+black olive
+hypodermic needle
+radio-phonograph
+moussaka
+miter joint
+creche
+tuning fork
+black wattle
+affiliate
+vertical tail
+kiwi
+red morning-glory
+piping crow
+runway
+Kashmiri
+studio apartment
+sea feather
+Judas tree
+boatbuilder
+corn earworm
+fallboard
+Victrola
+lechwe
+goat willow
+turret clock
+Canada anemone
+leaf lettuce
+savoy cabbage
+headpiece
+Lebanese
+fothergilla
+hemlock
+toolshed
+silver tree
+blue-headed vireo
+weatherman
+cylinder
+caltrop
+adjutant bird
+driving iron
+millet
+European woolly thistle
+rose apple
+clown
+schoolfriend
+eastern coral snake
+barbecue
+executive vice president
+long-billed marsh wren
+brittle bladder fern
+tank destroyer
+left-hander
+matting
+catchment
+balsa raft
+eastern fence lizard
+color tube
+corncrib
+electric typewriter
+westland pine
+elder statesman
+whey
+plonk
+mound
+cittern
+nest egg
+copyholder
+China aster
+basking shark
+gavial
+common duckweed
+vanilla orchid
+red-shafted flicker
+granadilla
+sylph
+sty
+vest pocket
+potherb
+little brown bat
+Trapezium
+ordinary
+adult
+purple-fringed orchid
+abseiler
+disco
+metal detector
+beefsteak fungus
+ilang-ilang
+barley grass
+hawser
+suture
+brake shoe
+staghorn coral
+barbecue sauce
+Browning machine gun
+sarcophagus
+disa
+oven thermometer
+rosemary
+track
+gorget
+quince
+royal
+piston ring
+teak
+pin cherry
+Komi
+walking fern
+sloe
+synchronous motor
+fire-bellied toad
+Teleprompter
+co-star
+cape gooseberry
+oscillograph
+bass clarinet
+cock of the rock
+Tyke
+showy milkweed
+safety valve
+branch water
+sweet marjoram
+hugger
+crampon
+fairy godmother
+band-tailed pigeon
+snow-on-the-mountain
+minibar
+foreland
+grosgrain
+dita
+rampion
+calligrapher
+jointed charlock
+master
+sheepshead
+barrelhouse
+Carolina allspice
+mastic
+brake pad
+whiskey sour
+casement window
+conveyer belt
+stolon
+pavonia
+shinny
+witch elm
+logwood
+hostel
+pageboy
+vesper sparrow
+pyrrhuloxia
+common carline thistle
+wafer
+boysenberry
+screw augur
+hack
+American white oak
+governor general
+Mother Hubbard
+game fowl
+drosophila
+delft
+nymphet
+tollbooth
+chough
+Russian dressing
+plum tomato
+American saddle horse
+dusky salamander
+black medick
+red valerian
+cordage
+Elastoplast
+conacaste
+backlighting
+swell
+riveting machine
+cowpen daisy
+openbill
+water speedwell
+picture hat
+crested myna
+servo
+bletia
+garden trowel
+muscadine
+common caper
+false lily of the valley
+aralia
+sharp-tailed grouse
+cigar smoker
+bandoneon
+Chinese alligator
+crazy
+point lace
+charcoal
+Texas horned lizard
+marinara
+backstay
+Gatling gun
+piston
+game fish
+fall armyworm
+grammarian
+beer hall
+guadalupe fur seal
+sugar palm
+peanut
+velvet ant
+light machine gun
+rya
+cling film
+adobo
+myrtle oak
+angelica
+balsam apple
+windbreak
+brother-in-law
+snap brim
+automobile factory
+clavichord
+dusky shark
+edible banana
+altar boy
+California lady's slipper
+schoolbag
+wax bean
+Atlantic walrus
+bullpen
+straw wine
+thatch palm
+potluck
+tamarind
+charcuterie
+sod house
+tie rack
+liebfraumilch
+clinician
+scarlet lychnis
+Spanish iris
+bread knife
+water oak
+bedpan
+Angolan
+bassarisk
+Alaska fur seal
+African wild ass
+milk float
+froghopper
+Verpa bohemica
+water cooler
+chop suey
+ranker
+red helleborine
+Prince of Wales
+marmalade tree
+car train
+giant red paintbrush
+desert sand verbena
+right whale
+baron
+stevia
+asterism
+five-spot
+catapult
+Silex
+fiberscope
+refresher
+beef Bourguignonne
+snood
+divot
+waterproof
+crabeater seal
+Missouri primrose
+bumper guard
+rock opera
+Lilo
+coffee can
+smokehouse
+buffalo grass
+propjet
+ice tongs
+poop deck
+acorn barnacle
+veal parmesan
+shower room
+collins
+ringhals
+silage
+jawfish
+trouser cuff
+contour feather
+songstress
+rachis
+White Russian
+stanchion
+mastaba
+flatbed press
+viand
+legal representative
+espalier
+organic light-emitting diode
+sushi
+scorer
+haricot
+pinna
+plectranthus
+jungle cat
+dried apricot
+coach horse
+white fringed orchis
+veal cordon bleu
+bath
+dallier
+marching order
+donkey jacket
+Panama tree
+aerator
+klaxon
+pinnacle
+shouldered arch
+lesser celandine
+common eland
+Grand Marnier
+cock of the rock
+phlomis
+Japanese umbrella pine
+morning room
+dead-man's-fingers
+little auk
+bascule
+house paint
+home fries
+great skua
+cesspool
+flying gurnard
+wild crab
+checkerbloom
+Wollemi pine
+cheese dip
+coif
+charwoman
+tea ball
+waif
+Arctic ground squirrel
+parishioner
+stabilizer bar
+potentiometer
+black cohosh
+medlar
+willow oak
+cascara buckthorn
+scoutmaster
+Canada lily
+poppy seed
+paper mulberry
+blackthorn
+garrison cap
+inductee
+aeschynanthus
+interior live oak
+black spleenwort
+wild service tree
+sling
+nicad
+swab
+sego lily
+eiderdown
+fruit cocktail
+pallasite
+weeping spruce
+shiv
+sea lamprey
+coachman
+half binding
+American white birch
+gainer
+Concord grape
+yellow birch
+fucus
+common room
+io moth
+red osier
+crucible
+galangal
+salmagundi
+pepper steak
+cap opener
+swizzle stick
+tomato juice
+Nobelist
+Sarawakian
+African monitor
+sleeping beauty
+stereoscope
+curd
+pyramid bugle
+applejack
+dosser
+rake handle
+pilot light
+Eames chair
+Scotch and soda
+bell heather
+dinette
+blackpoll
+dogie
+sound camera
+cattle guard
+mashie niblick
+edible cockle
+monocle
+steak tartare
+partaker
+sidesaddle
+communications satellite
+porkfish
+water hemlock
+drawbar
+ultramicroscope
+Jamaican cherry
+craftsman
+lovage
+common apricot
+drum majorette
+backsword
+smooth alder
+Amniota
+dribbler
+theosophist
+dolman
+ivory tree
+Green Beret
+pipe smoker
+mayoress
+mignonette
+crampon
+henbane
+kirtle
+death's-head moth
+instep
+great St John's wort
+lorry
+black-necked cobra
+ball carrier
+Jordan almond
+byway
+earless lizard
+marble
+andiron
+high-protein diet
+buzzer
+ice floe
+crankcase
+Bofors gun
+sockeye
+veery
+Delaware
+caravansary
+prairie coneflower
+star apple
+suiting
+cot
+call forwarding
+American gallinule
+glossy snake
+rose chafer
+instant coffee
+placket
+Tarahumara
+pulsar
+philodendron
+orange tortrix
+cypress spurge
+Welsh rarebit
+music box
+giant crab
+vanilla bean
+water thrush
+prayer shawl
+gouge
+promoter
+dagga
+black currant
+bitter cassava
+drain basket
+snare
+digital audiotape
+retainer
+olive drab
+gluten bread
+graham cracker
+cheddar pink
+caregiver
+spray paint
+Anglo-American
+boatyard
+backbencher
+Link trainer
+bell arch
+weir
+arbor
+millionairess
+sour cream
+earthtongue
+crawlspace
+crossjack
+balalaika
+crupper
+western redbud
+guinea hen
+rangeland
+gaboon viper
+common louse
+single-leaf
+horseshoe
+balsam poplar
+triskelion
+jack-in-the-box
+jester
+rain stick
+glove compartment
+imperial moth
+Japanese beech
+biotin
+turnip
+oligarch
+western skink
+mudguard
+retsina
+data system
+green bristlegrass
+visiting professor
+beaded lizard
+weathercock
+Sloppy Joe
+high tea
+lightweight
+record sleeve
+cooler
+nodding onion
+pigs in blankets
+torque converter
+district attorney
+bunting
+orrery
+radiator hose
+common plum
+wood spurge
+calamus
+chicken Kiev
+pin
+lath
+telephone bell
+thistledown
+audiotape
+gypsy moth
+snuffer
+pari-mutuel machine
+peanut butter
+hearthrug
+sack
+Old World yew
+chives
+stovepipe
+xenolith
+mattock
+mangle
+electric chair
+backup system
+Empire
+blackwash
+dodder
+Allegheny chinkapin
+finger plate
+junk
+brown rice
+wild angelica
+chinaberry
+mason
+rasp
+den
+violet wood sorrel
+nosewheel
+plenum
+merino
+kirtle
+Igbo
+ensign
+sex symbol
+Belgian endive
+sugarberry
+yellow salsify
+purple emperor
+atlas
+African clawed frog
+leatherjacket
+midwife
+sac fungus
+European cuckoo
+three-day event
+Mexican poppy
+wagon tire
+armyworm
+rain gauge
+Oregon ash
+columbarium
+spectrophotometer
+Milanese
+pointing trowel
+casualty
+Eastern hop hornbeam
+lobe
+mouthpiece
+au pair girl
+giant water bug
+Browning automatic rifle
+laser-guided bomb
+drone
+white alder
+cockleshell
+mufti
+gravy
+berm
+boat hook
+marshmallow
+pet shop
+cowpea
+tactician
+wading pool
+anchovy dressing
+flip
+shackle
+Wedgwood
+thick-billed murre
+erecting prism
+giant salamander
+sleeper
+quiver
+chain store
+wing tip
+New World tapir
+witches' butter
+gendarme
+ginseng
+common maidenhair
+graduate nurse
+balsam pear
+hoatzin
+philanthropist
+axle bar
+gas meter
+moth mullein
+ragbag
+Chinese cabbage
+celery stick
+rutabaga
+scalpel
+cape marigold
+variometer
+argali
+brig
+shuffleboard
+wort
+Orlon
+epiphyllum
+allice shad
+coffee filter
+solar telescope
+Japanese linden
+thinning shears
+golden wattle
+queen triggerfish
+millinery
+surfbird
+flame fish
+clove
+dicamptodon
+red-bellied terrapin
+turmeric
+baya
+air horn
+Indian coral tree
+punnet
+sharkskin
+water crowfoot
+bight
+desert iguana
+Texas toad
+volva
+dredge
+Turkey red
+chemical plant
+gemma
+dice cup
+orange marmalade
+mistletoe
+surveyor
+frozen orange juice
+pallette
+poultryman
+burbot
+courlan
+captain
+saddlery
+bodyguard
+dwarf tulip
+black ash
+pulse
+nailbrush
+tickseed sunflower
+legless lizard
+shirtwaist
+polling booth
+chickeree
+garlic chive
+common thyme
+multichannel recorder
+screw thread
+sangoma
+calliopsis
+geoduck
+colleen
+bandicoot rat
+pastis
+swamp sunflower
+scorekeeper
+Honduras mahogany
+Australian pitcher plant
+triangle
+elevator shaft
+green pea soup
+carrel
+prairie aster
+bird's-nest fungus
+scarlet clematis
+gook
+mescal button
+carcase
+mulatto
+ejection seat
+strawberry daiquiri
+goat grass
+car battery
+babu
+chief of staff
+monilia
+Siberian crab
+ridge rope
+Morchella semilibera
+nutmeg
+moosewood
+graham bread
+California four o'clock
+zwieback
+velvetleaf
+abelmosk
+shadow box
+corned beef hash
+newsreader
+backstairs
+cutwork
+sherbert
+tooth fungus
+angel-wing begonia
+greasepaint
+common milkwort
+potato vine
+CD drive
+crepe de Chine
+sporting man
+koto
+armet
+barking frog
+celeriac
+drainage ditch
+black box
+steel blue
+clotheshorse
+corn speedwell
+drawknife
+spritsail
+vichyssoise
+modeler
+pocketcomb
+limey
+suslik
+cockpit
+digester
+brig
+raita
+troll
+benedictine
+rock wren
+lock
+Barnaby's thistle
+school bell
+school ship
+Soave
+falchion
+swaddling clothes
+terrine
+smoke screen
+rivulus
+sweet lemon
+cullis
+bustier
+peppermint
+Philadelphia fleabane
+Hampshire
+active
+charnel house
+face guard
+Quebecois
+facilitator
+tongue depressor
+bitternut
+heath aster
+sapodilla
+bluestem
+centrist
+Canterbury bell
+needlenose pliers
+groats
+tapa
+Qatari
+paper feed
+tilt-top table
+plastering trowel
+brazil nut
+rotogravure
+patriot
+manicurist
+bacon and eggs
+puffbird
+lightweight
+golden willow
+kaiser roll
+duff
+girandole
+seaside daisy
+Kurdistan
+Skivvies
+showboat
+fire bell
+lock-gate
+greater masterwort
+weald
+ice ax
+toetoe
+mess kit
+bucking bronco
+black turnstone
+backscratcher
+backpacker
+basement
+marbleization
+trigger
+satsuma
+fall-blooming hydrangea
+mountain lady's slipper
+yellow oleander
+crookneck
+ex-president
+Venn diagram
+psaltery
+bulwark
+old boy
+linear leaf
+aril
+butt weld
+fall webworm
+pruner
+bald-faced hornet
+nougat
+tailgate
+field speedwell
+potsherd
+center punch
+long beech fern
+desert paintbrush
+canyon treefrog
+bushel basket
+Eurasian
+swamp horsetail
+cryptanalyst
+wicket
+school newspaper
+captive
+spider brake
+electric mixer
+tumbleweed
+mason wasp
+sash window
+paddock
+wet bar
+oxtongue
+stevia
+wheat rust
+scute
+switch engine
+mud dauber
+dotterel
+snailflower
+common barberry
+mulligatawny
+cinnamon bark
+cigar box
+trivet
+proof spirit
+cream soda
+western grey squirrel
+baby powder
+Bren
+Japanese yew
+sailcloth
+Basket Maker
+bannock
+basidiocarp
+aphelion
+erect bugle
+limiter
+bosc
+Przewalski's horse
+helmet orchid
+audiometer
+battle cruiser
+grass widower
+staphylococcus
+Congolese
+common pitcher plant
+parliamentary agent
+Virginia snakeroot
+mockernut
+Siberian elm
+backbench
+rough
+chervil
+chlamys
+nationalist
+galantine
+screwdriver
+falsifier
+cancerweed
+spur
+jerkin
+porte-cochere
+dill pickle
+Montagu's harrier
+tetrode
+true fungus
+American quaking aspen
+vitamin B1
+leopard lily
+eggdrop soup
+aurochs
+core bit
+Jaws of Life
+trousseau
+parquetry
+Disciotis venosa
+tender
+beef goulash
+vitamin K1
+pepper spray
+covered smut
+hook
+sports announcer
+weapons carrier
+foxtail grass
+sloe gin
+mezereon
+antifouling paint
+pavior
+pile driver
+security consultant
+monkey-wrench
+Indian hemp
+amaretto
+American wistaria
+A-line
+market strategist
+rainbow runner
+souvlaki
+binturong
+stiletto
+gastrula
+Vietnamese
+Old World hop hornbeam
+cold cathode
+pier table
+houndstooth check
+prop root
+leaf-footed bug
+sedge wren
+Dutch iris
+drop curtain
+opossum rat
+lame
+pollen tube
+doubletree
+compression bandage
+pinon pine
+catmint
+pier arch
+kingmaker
+deanery
+loofah
+fullback
+fencing mask
+flying boat
+carpet sweeper
+lemon-scented gum
+Accipitriformes
+kit
+pigfish
+clipper
+dolmas
+lesser centaury
+blood agar
+water violet
+raw milk
+lemonade
+vicar-general
+supply closet
+Anzac
+confectioner
+ignition key
+velvet grass
+white willow
+John Dory
+ruddiness
+wheel
+common horsetail
+hubbard squash
+speculum
+Spanish bayonet
+mountain mint
+glint
+foxhole
+housemate
+bootjack
+sleigh bell
+clog dancer
+Mexican mint
+rendering
+Hausa
+star saxifrage
+spring squill
+clothesbrush
+liquid metal reactor
+Columbia tiger lily
+sorrel
+cartwheel
+Jersey
+Caucasian walnut
+desert willow
+surveyor
+elbow
+Santa Gertrudis
+fringe bush
+industry analyst
+lyrebird
+Cortland
+arroz con pollo
+catechist
+tank top
+jew's harp
+cereal oat
+heartleaf
+short sleeve
+butty
+butterfly plant
+stud finder
+felloe
+beer garden
+clevis
+wood warbler
+demerara
+cornetfish
+mince
+Jamaica rum
+Spanish broom
+binnacle
+camise
+ferrule
+Copt
+hall
+minicar
+scimitar
+cryptogam
+miter box
+limestone fern
+Marsala
+Parliamentarian
+gravy
+woolly bear moth
+formula
+squash bug
+pigmentation
+plate
+skin graft
+radiotelegraph
+hellbender
+soft pedal
+lavender cotton
+propagator
+Bailey bridge
+cottage pie
+rotgut
+A battery
+pintle
+off-line equipment
+European swift
+shrimp butter
+plumb bob
+trunk lid
+succotash
+yellow cypress
+heartleaf
+antelope squirrel
+sambar
+maternity ward
+deciduous plant
+bartlett
+Riesling
+sour cherry
+Klansman
+poke
+academician
+sociolinguist
+bird's nest fern
+common privet
+scale fern
+tachograph
+oyster stuffing
+pusher
+green June beetle
+staghorn sumac
+lockage
+master
+bap
+harlequin
+blackfly
+spotted coral root
+kahikatea
+cabana
+riot gun
+apple mint
+kob
+praline
+confidant
+pahautea
+float
+city father
+Zen Buddhist
+pessimist
+conference center
+banksia rose
+comfit
+sweet cicely
+winged bean
+henroost
+myope
+bunt
+nailfile
+yellow mountain saxifrage
+cruise control
+abandoned ship
+water chinquapin
+spanker
+wing nut
+puccoon
+pier glass
+Atlantic sailfish
+medlar
+buttercrunch
+rough-skinned newt
+planter's punch
+Dutch iris
+control key
+committeewoman
+torpedo-boat destroyer
+garambulla
+tree heath
+gladiator
+September elm
+inclinometer
+snowbell
+call-in
+sunsuit
+microfiche
+bluestocking
+cheval glass
+server
+franking machine
+sugar syrup
+Macoun
+transport ship
+alderfly
+wash-and-wear
+Abbe condenser
+bush nasturtium
+wild leek
+canary seed
+Northern Baptist
+sweet wormwood
+jaboticaba
+cardroom
+autoradiograph
+ash-pan
+sprinkler system
+rattrap
+claymore
+parts bin
+forest red gum
+thermonuclear reactor
+Indian crocus
+lector
+heir apparent
+leafy spurge
+masquerader
+varicella zoster virus
+cucumber tree
+hedger
+Shumard oak
+zooplankton
+quartermaster
+arrester
+bridge
+hop clover
+meadow foxtail
+winter hazel
+portable circular saw
+penuche
+limpa
+blue toadflax
+mesophyte
+Alpine anemone
+pet sitter
+avocado
+streptococcus
+fiber optic cable
+river red gum
+hornist
+chicken taco
+red spider
+tape grass
+densitometer
+salmonberry
+tiger snake
+hot toddy
+silver fern
+candlenut
+buckram
+local call
+defoliator
+king
+mahoe
+lever lock
+social insect
+winter purslane
+bootblack
+fireball
+ramie
+bellbird
+prepuce
+capote
+Chinese forget-me-not
+Pisces
+costume
+California black oak
+tree lupine
+golden polypody
+liger
+California whipsnake
+urodele
+sapodilla
+skillet bread
+duckpin
+supremo
+asparagus bean
+kampong
+endameba
+cow pony
+rider
+motherwort
+Persian iris
+soursop
+kohlrabi
+Parisienne
+irons
+doubles
+feijoa
+farmplace
+cottage cheese
+bezoar goat
+subcontractor
+blunderbuss
+down
+purple martin
+Lapp
+crenate leaf
+tobacco pouch
+beach towel
+Santa Lucia fir
+monetarist
+stringer
+ocellated turkey
+Texas purple spike
+ackee
+caddy
+hedge mustard
+second-rater
+strawberry bush
+valedictorian
+steak sauce
+prairie gourd
+aspirant
+mint
+Valenciennes
+vodka martini
+American persimmon
+big brown bat
+Mycenaen
+mouthpiece
+norfolk island pine
+pennyroyal
+Jewish rye bread
+granadilla
+tract house
+wall
+shuttle helicopter
+blackjack oak
+Lippizan
+storm window
+white zinnia
+sickle
+sushi bar
+polish
+baldric
+brooklime
+church hat
+control circuit
+vicuna
+death adder
+eukaryote
+durmast
+field soybean
+jacket potato
+wild basil
+queen consort
+brooklime
+octant
+blue false indigo
+broccoli raab
+step-down transformer
+date bread
+blue ash
+duffer
+oak chestnut
+pennant
+wedge
+Florentine iris
+morion
+weakfish
+morning dress
+public address system
+spearmint
+Ashkenazi
+sow
+interpreter
+Metis
+pita
+iron lung
+parfait glass
+cylinder lock
+immortelle
+obstetrical toad
+tee hinge
+successor
+western
+working girl
+julienne
+AND circuit
+spaghetti junction
+fer-de-lance
+enlisted woman
+star
+lightning rod
+bilge pump
+pacer
+horse nettle
+African oil palm
+blastocyst
+air hammer
+bamboo fern
+remote terminal
+lambkin
+money cowrie
+Pelham
+clinical thermometer
+wiggler
+guru
+false indigo
+tea bag
+foredeck
+king
+baby shoe
+mule
+grab bag
+silver-bell tree
+knitting machine
+cobia
+roulette ball
+larder
+button pink
+rumble seat
+noria
+queen mother
+solar thermal system
+aquaplane
+highbrow
+rusty blackbird
+desktop
+lima bean
+pontoon bridge
+watercress
+wild cabbage
+tumbleweed
+dressing sack
+compact-disk burner
+spittoon
+marrow
+sporophyte
+second fiddle
+pot-au-feu
+specialty store
+dry
+mole
+khadi
+japonica
+lovage
+squamous cell
+lobe
+European creeper
+brown pine
+bladderpod
+rumble
+French Canadian
+mascarpone
+Pacific halibut
+perennial ryegrass
+wine lover
+turbot
+longwool
+silver tree fern
+dust cover
+synchromesh
+corn pudding
+alpine azalea
+garboard
+cane sugar
+observation dome
+condensation pump
+hind
+taximeter
+hand drill
+gas thermometer
+jammer
+buffing wheel
+handstamp
+prairie mallow
+turkey stew
+sun spurge
+duck pate
+kibble
+Cassin's kingbird
+apadana
+Devon
+grinner
+oocyte
+blank
+header
+schoolmaster
+guard ship
+intravenous pyelogram
+rimu
+luff
+Mediterranean fruit fly
+singlestick
+lady-in-waiting
+curb
+birch
+limekiln
+orthoscope
+serotine
+Spanish oak
+swamp cottonwood
+edger
+city man
+picnicker
+white basswood
+Parsons table
+Christmas begonia
+perspirer
+Pacific tree toad
+Cape tulip
+finger bowl
+blue pike
+greengage
+handcar
+milkweed
+potbelly
+river dolphin
+creel
+typewriter carriage
+banteng
+pawnbroker's shop
+huon pine
+biennial
+man of action
+foundress
+caveman
+featheredge
+jordan almond
+sandblaster
+coralberry
+low-calorie diet
+hoot owl
+garter
+bain-marie
+wrecker
+fenugreek
+double-hung window
+idol
+scullery
+balloon vine
+summer savory
+winged spindle tree
+Helvella crispa
+walrus mustache
+gas engine
+boulle
+rush grass
+rue
+hoe handle
+cat fancier
+deerstalker
+dunker
+American red plum
+fall dandelion
+groover
+sprag
+stair-rod
+wish-wash
+pricket
+architrave
+California laurel
+net melon
+Arizona sycamore
+executive secretary
+silverweed
+silky cornel
+surface ship
+square sail
+common purslane
+villa
+holly-leaved cherry
+sweet birch
+pecan
+artillery shell
+breast pocket
+pirogi
+scarlet runner
+rabbit brush
+mealworm
+leather carp
+palette knife
+Jerusalem sage
+boneshaker
+slit lamp
+digital voltmeter
+polar glacier
+square-rigger
+homogenized milk
+Sten gun
+lesser calamint
+pyrograph
+Korean lawn grass
+Zinfandel
+crepe fern
+western ragweed
+clasp knife
+distributor housing
+cartouche
+scooter
+ski parka
+jackknife
+Carolina spring beauty
+soft diet
+candlesnuffer
+horse trader
+step stool
+agouti
+accelerometer
+annual fern
+judge advocate
+angelica
+roll film
+treehopper
+ombu
+comer
+sultanate
+kitchen help
+hooded ladies' tresses
+milking machine
+knuckle joint
+Jamaica honeysuckle
+music teacher
+sauerkraut
+Weston cell
+slivovitz
+Worcester sauce
+tall bellflower
+chancery
+prophetess
+casquet
+shortfin mako
+sorus
+visual display unit
+asp
+grenadier
+black pepper
+crottle
+erasable programmable read-only memory
+jabot
+ratchet
+disk controller
+chief petty officer
+tap wrench
+white mountain ash
+cultivated rice
+flying phalanger
+skillet corn bread
+BB gun
+Elamite
+European red elder
+reed rhapis
+ciderpress
+inga
+torpedo
+wild teasel
+bean curd
+oeil de boeuf
+acuminate leaf
+bitter lemon
+hitchrack
+Lorraine cross
+hostess
+European dogtooth
+adz
+polonaise
+rock sandwort
+Waldorf salad
+myrmecophile
+klystron
+mole rat
+draba
+corn borer
+robusta coffee
+chub mackerel
+leatherleaf
+chronometer
+Moselle
+sea aster
+fennel
+slop basin
+constable
+Brunswick stew
+hydraulic pump
+French omelet
+icebreaker
+Manx shearwater
+press of sail
+ninepin
+blue succory
+bootstrap
+hallstand
+chit
+firefly
+bearded seal
+fuel filter
+jezebel
+mate
+Roquefort
+cheesecloth
+plasterer
+blue pimpernel
+lake dwelling
+shrink-wrap
+goat cheese
+common gum cistus
+coastland
+Sunday best
+wild tobacco
+mandrake
+common unicorn plant
+barbican
+culotte
+blockhouse
+German iris
+tarragon
+caramel
+wild rosemary
+grain
+voyager
+squirting cucumber
+eastern narrow-mouthed toad
+creeping fern
+luge
+saffron
+garland flower
+furnace room
+starship
+Oriental scops owl
+Italian honeysuckle
+berserker
+Chinese elm
+scrubber
+bishop pine
+French polish
+compromiser
+skimmer
+river shad
+lobster thermidor
+leadwort
+man-of-the-earth
+razorblade
+vicegerent
+empress
+link
+ham and eggs
+wild lily of the valley
+blackfish
+splicer
+fossa
+mara
+moneygrubber
+brachiopod
+fauteuil
+caldera
+finish coat
+croupier
+termer
+leopard's-bane
+sei whale
+molucca balm
+dolly
+dog food
+term infant
+soft roll
+episcia
+sewer
+inquiry agent
+active citizen
+perry
+California newt
+moon shell
+bladderwrack
+common shrew
+dill
+Dutch elm fungus
+key lime
+electrometer
+divorce lawyer
+lamb's-quarters
+apple turnover
+shipmate
+Guernsey
+legionnaire
+electric blanket
+Rocky mountain pinon
+tobacco mildew
+stinking iris
+forestiera
+departure lounge
+wiper motor
+jurist
+scarlet runner
+pallbearer
+batter's box
+inertial guidance system
+fines herbes
+oilcan
+sisal
+mustache cup
+steamed pudding
+Visayan
+fiesta flower
+lady tulip
+lungless salamander
+batiste
+electrical system
+blazing star
+car carrier
+Walloon
+mother hen
+stump
+mulled cider
+secondary coil
+Alexandria senna
+etui
+scrumpy
+Havasupai
+jawbreaker
+glume
+ex-husband
+Eskimo
+Joint Direct Attack Munition
+number theorist
+five-hitter
+pinstripe
+Olympian
+common mackerel
+stone bass
+bigos
+Bahraini
+airbrush
+great ragweed
+glass lizard
+hand fern
+roundel
+riding master
+shoetree
+yellow avens
+old fashioned
+dolman
+stinger
+nursling
+legate
+faille
+golden fern
+bedpost
+shop steward
+kidney bean
+bladderwort
+internist
+limeade
+Bruneian
+Coloradan
+playsuit
+wintergreen oil
+Cantabrigian
+mutton snapper
+shot putter
+hand grenade
+moccasin
+cobnut
+marrow
+separatist
+cockscomb
+discharge pipe
+Gabonese
+spade bit
+chicken cordon bleu
+varnish tree
+European wood mouse
+striped gentian
+Ayrshire
+curassow
+moo goo gai pan
+malarial mosquito
+glow tube
+ledger board
+bib-and-tucker
+European chestnut
+suffragette
+color wash
+gaffsail
+golden larch
+voting machine
+Kahlua
+lungi
+amusement arcade
+Uzbek
+butternut
+mold
+mule's ears
+dickey
+shrimper
+trophozoite
+dreadnought
+shepherd's purse
+greenhouse whitefly
+spotted gum
+copperware
+perfect game
+semigloss
+spawn
+telecom hotel
+stakeholder
+mason wasp
+flibbertigibbet
+chin strap
+fringed pink
+saki
+urchin
+memorizer
+roulade
+whiting
+cling
+corncrake
+Queen of England
+choo-choo
+empty
+heating pad
+playmate
+visualizer
+popcorn ball
+absconder
+sou'wester
+target acquisition system
+mock-up
+dental floss
+tray cloth
+haddock
+bulblet fern
+housing commissioner
+delayed action
+anchor light
+harbor porpoise
+water wings
+PT boat
+night latch
+fennel
+doorframe
+green-tailed towhee
+grey polypody
+torture chamber
+American germander
+Chinese wistaria
+cattalo
+accompanist
+rifleman
+alpine clover
+contrarian
+lemon peel
+Mexican cypress
+sprog
+dado
+Galilean telescope
+desmid
+lockup
+Latin
+American raspberry
+mescal
+butternut
+prairie orchid
+downy yellow violet
+green hellebore
+radio compass
+bread and butter pickle
+Cherokee rose
+knish
+destroyer escort
+Arkansan
+langlaufer
+pyxis
+winter savory
+velocipede
+motley
+winter savory
+law student
+barren ground caribou
+apple dumpling
+field hospital
+works
+city editor
+European flatfish
+Morchella crassipes
+life office
+boot camp
+cream sauce
+cape aloe
+acetate disk
+devil ray
+tile cutter
+Plymouth Rock
+microspore
+godown
+Syrian
+tiercel
+American cranberry
+lesser spearwort
+anopheline
+Spanish oyster plant
+wire cloth
+attic fan
+birch beer
+small computer system interface
+crook
+ribbon fern
+explorer's gentian
+nagami
+I-beam
+rosebud cherry
+Jerusalem artichoke
+Stillson wrench
+pluralist
+district manager
+Levantine
+orangeade
+part-timer
+post horn
+Oregon grape
+contadino
+cargo helicopter
+silverpoint
+chaja
+California bluebell
+case
+Shasta
+cheese cutter
+Leishmania
+avalanche lily
+iron horse
+bialy
+Yana
+Delawarean
+Prussian
+nonpareil
+hammer
+hoper
+chewink
+anil
+skim milk
+desert four o'clock
+crescent wrench
+white marlin
+blue jasmine
+malacca
+anadama bread
+purple poppy mallow
+ganglion cell
+ligature
+no-parking zone
+golden clematis
+Cotswold
+aliterate
+shebeen
+yardarm
+superbug
+fanaloka
+stinking cedar
+spirochete
+wort
+pater
+heaume
+thermocouple
+ironing
+naval tactical data system
+European goatsucker
+prairie cordgrass
+accused
+foreign agent
+halberd
+western mugwort
+esthetician
+Persian lilac
+cracked-wheat bread
+crosscut saw
+rock penstemon
+paper cutter
+crematory
+ideologist
+cattley guava
+margarine
+creosote bush
+hoary plantain
+spark gap
+lumberjack
+Greek valerian
+mission bells
+tight end
+bigeye
+large crabgrass
+stone marten
+cleat
+lentil
+bay scallop
+lector
+charger
+assemblywoman
+second lieutenant
+boil smut
+sarsaparilla
+hydromel
+cat flea
+pinfish
+whole milk
+hairnet
+myeloblast
+peasant
+blind curve
+first offender
+dwarf-white trillium
+Brother
+coatdress
+gun emplacement
+tamarisk gerbil
+snap
+air cushion
+trailing edge
+potato vine
+gig
+everlasting pea
+champion
+dibble
+rattail cactus
+timothy
+prince's-feather
+cutlas
+lockring
+sealing wax
+Brussels lace
+corn mint
+highboard
+she-oak
+wild celery
+pillar
+Burberry
+Hakka
+leucothoe
+bell tent
+gallery
+coontie
+leather fern
+smack
+adenovirus
+linoleum
+chain wrench
+tammy
+gas fixture
+nut bar
+baneberry
+butterscotch
+goat's rue
+bullock
+grey snapper
+mother-in-law
+hyson
+wayfaring tree
+mollie
+needle spike rush
+buckwheat
+bayberry
+brush-tailed phalanger
+dry rot
+harborage
+stormy petrel
+Oriental beetle
+Atlantic halibut
+coping saw
+simple fruit
+viscose rayon
+surgeonfish
+upstairs
+security system
+common ragweed
+verticillium
+pancake batter
+hawk's-beard
+Dutchman's-pipe
+refrigeration system
+European parsley fern
+Ivy Leaguer
+totalitarian
+gonococcus
+towhead
+showy sunflower
+pallium
+multiengine airplane
+hair trigger
+rabbit-eared bandicoot
+siskiyou lewisia
+fuel system
+flat arch
+broad beech fern
+Alpine lady fern
+bracken
+Kentucky black bass
+rut
+mountain maple
+tunaburger
+umbrella fern
+white-headed stilt
+meat hook
+panhandler
+washhouse
+barnyard
+safety lamp
+leg
+ripple mark
+paper
+sagebrush lizard
+light heavyweight
+common nutcracker
+operator
+stalking-horse
+horseless carriage
+fishhook
+suction cup
+peg
+Ungulata
+false teeth
+round-bottom flask
+Luba
+campaign hat
+firebox
+rudder
+parapet
+ice pack
+appellant
+spirit stove
+metheglin
+common bamboo
+soapwort gentian
+pannikin
+time capsule
+burn bag
+folk poet
+tropical prawn
+end man
+new caledonian pine
+linen
+web
+free trader
+jury box
+railing
+pignut
+leaker
+potboy
+rubber boa
+white snakeroot
+plumber
+Candida albicans
+surfboat
+woman
+promulgator
+eyecup
+wild China tree
+rattlesnake master
+Viyella
+alpine salamander
+ailanthus silkworm
+Albatrellus ovinus
+war room
+meadow vole
+robotics equipment
+rotary actuator
+Engelmann spruce
+pinesap
+beefcake
+native speaker
+ridge
+injector
+water chute
+salmonberry
+decoupage
+bottlebrush
+date plum
+circlet
+American mountain ash
+pocketbook
+horsemint
+sweet four o'clock
+kirpan
+pinto bean
+chervil
+equator
+range animal
+candy thermometer
+calanthe
+cul
+stipendiary
+brahman
+pelican crossing
+topgallant
+wild senna
+sliding window
+carrier pigeon
+Tatar
+quadruplet
+bumboat
+spearmint oil
+slip clutch
+young Turk
+golden yarrow
+shank
+glasswort
+dental plaque
+Manduca sexta
+Northern bedstraw
+dent corn
+Life Saver
+western wall flower
+bedder
+wherry
+Tuscarora
+scrapple
+borstal
+reflux condenser
+problem solver
+nondriver
+perforation
+eastern cricket frog
+white wood aster
+broad buckler-fern
+Cape primrose
+herringbone
+head louse
+earl
+baton
+recording system
+primary color for light
+cherry laurel
+pomfret
+ratafia
+chocolate milk
+obscurantist
+revisionist
+rood screen
+magnetic needle
+commensal
+oil tycoon
+celebrant
+domicile
+harvest mouse
+California nutmeg
+greater spearwort
+black-billed cuckoo
+winepress
+demographer
+straw boss
+diabetic diet
+sweetmeat
+rabbet
+ming tree
+basketweaver
+freestone
+walk-in
+Aryan
+box coat
+audio amplifier
+chicken salad
+churidars
+whydah
+box
+batman
+siren
+selectman
+gouger
+drip coffee
+Caesar salad
+interpreter
+whinstone
+grey goldenrod
+minicomputer
+honey crisp
+hypercoaster
+Irishman
+swamp white oak
+reed canary grass
+globeflower
+cynthia moth
+fennel seed
+canthus
+chino
+blind date
+tar pit
+watermelon begonia
+fishtail palm
+overcast
+Pearmain
+primary color for pigments
+coal seam
+wherry
+safety bolt
+cretonne
+Michigan lily
+inflater
+moneybag
+huckleberry
+brassard
+bush vetch
+looking glass tree
+pinwheel roll
+alfalfa sprout
+sea kale
+clinometer
+achira
+lorgnette
+potter wasp
+gilded flicker
+tody
+capulin
+captain's chair
+crackle
+gerardia
+prie-dieu
+venture capitalist
+New Jerseyan
+block and tackle
+elf cup
+bur reed
+automatic transmission
+wax palm
+flytrap
+crack willow
+coachwhip
+swizzle
+lugger
+Dewar flask
+baster
+oxyacetylene torch
+Culex quinquefasciatus
+St Peter's wort
+wild hyacinth
+Russian almond
+burrfish
+wintergreen
+katsura tree
+butcher knife
+perfumery
+thresher
+porte-cochere
+sheepwalk
+hypotenuse
+Dalmatian iris
+buttercup squash
+demiglace
+goldenseal
+preceptor
+rigger
+poikilotherm
+old-age pensioner
+posthouse
+wood horsetail
+repeater
+reciprocating engine
+Rambouillet
+terra cotta
+togs
+battledore
+horizontal tail
+missile defense system
+trier
+morello
+woolly adelgid
+munition
+double creme
+in-fighting
+squirrel corn
+crow's nest
+antler moth
+brake cylinder
+bandoleer
+noticer
+Parmesan
+hipline
+cheapskate
+Dubonnet
+mole rat
+bog aster
+ribbon tree
+meadow rue
+nard
+ratel
+loose smut
+snapping shrimp
+golden glow
+basil thyme
+Florida strap fern
+moonshine
+flume
+lace fern
+black bream
+orchestra pit
+archerfish
+exile
+ringdove
+career man
+godfather
+bottom-feeder
+pasteurized milk
+dental implant
+pedicel
+Catalpa speciosa
+yellow foxglove
+lancet arch
+steam shovel
+sampan
+patrol boat
+sailor cap
+tollgate
+monal
+velociraptor
+cacique
+jack oak
+cursed crowfoot
+creep
+Parry manzanita
+common matrimony vine
+grace cup
+caecilian
+spurge laurel
+prickly lettuce
+Regius professor
+camail
+Sitka willow
+Courtelle
+gin sling
+dogmatist
+guest
+saltine
+dust cover
+sport
+sweeper
+feist
+lady's-eardrop
+vibist
+wire stripper
+tenpin
+interplanetary space
+beet green
+pruning knife
+drainage system
+gunnery
+ballet master
+lime juice
+flak catcher
+lacrosse ball
+Canadian aspen
+beatnik
+railhead
+utilizer
+spadefish
+Arizona white oak
+city university
+dense blazing star
+hedger
+chain pickerel
+right-hand man
+namby-pamby
+nacelle
+redneck
+tumbler
+Chief Secretary
+cannon
+cupola
+kummel
+papaya juice
+Burton
+Stanley Steamer
+loganberry
+stylus
+square meal
+rock bass
+western ladies' tresses
+dramatist
+assignee
+tandoor
+trumpetwood
+segregator
+green adder's mouth
+coral necklace
+ani
+iceboat
+densimeter
+oxtail soup
+kernel
+cos lettuce
+greenishness
+panchromatic film
+Parker House roll
+oatmeal
+backsaw
+double Gloucester
+bailey
+storage cell
+giant
+coconut milk
+broadtail
+barouche
+loir
+soybean meal
+white-leaved rockrose
+junction barrier
+spandrel
+sweat bag
+goldilocks
+flowering wintergreen
+cockspur
+beef fondue
+holding cell
+cardamom
+cagoule
+Kamia
+tangelo
+Herschelian telescope
+wine bar
+kachina
+sand sage
+guy
+ivory palm
+citrus mealybug
+topper
+ladyfish
+force pump
+fanion
+calaba
+Iowa
+orrisroot
+ivorybill
+Secretary of Agriculture
+gagman
+dry cell
+hypnotist
+kenaf
+grey alder
+deathwatch beetle
+gagman
+magnetic stripe
+trap door
+abdominal wall
+prefab
+broomcorn millet
+architeuthis
+angler
+Pacific giant salamander
+barbette carriage
+low-fat diet
+veal scallopini
+B battery
+wallah
+landing flap
+pistachio
+jaguarundi
+nagi
+cicerone
+felt fungus
+Aertex
+stocks
+smooth aster
+patchouli
+lemon sole
+sleeper
+basket fern
+dundathu pine
+anjou
+Moreton Bay chestnut
+broom sedge
+candid camera
+red angel's trumpet
+oilstone
+cinnamon toast
+Pacific walrus
+fruit custard
+Jehovah's Witness
+mate
+voyeur
+Esselen
+achromatic lens
+sanguine
+brine shrimp
+dunce cap
+swot
+transit instrument
+grey willow
+pack
+bench clamp
+Nova Scotian
+gadgetry
+silvery spleenwort
+enchantress
+rough fish
+morula
+giant taro
+sorus
+roux
+polyhedral angle
+spruce beer
+Chicano
+cola extract
+outfielder
+kohleria
+white-rumped shrike
+car-ferry
+subway token
+spoon bread
+totara
+corn borer
+bowhead
+tensimeter
+water scooter
+flickertail
+Catholicos
+pleaser
+blue-eyed Mary
+calabash
+handyman
+cascades frog
+facing
+scarlet oak
+lutist
+ginger
+tree tomato
+Harvey Wallbanger
+tent peg
+insectivore
+fusil
+swale
+chinning bar
+bladderpod
+New Dealer
+dhoti
+proscenium arch
+common vetchling
+channel
+collect call
+safflower
+Texas tortoise
+test equipment
+theca
+RAM disk
+sheep sorrel
+rammer
+buttonhook
+honey mesquite
+dominus
+babirusa
+queen
+Aspergillus fumigatus
+crash barrier
+nonmember
+Muscovite
+verdin
+Australopithecus afarensis
+Turkish Delight
+stalked puffball
+giardia
+divider
+mountain skink
+head smut
+pacemaker
+evaporated milk
+rattlesnake fern
+flamethrower
+navy bean
+bather
+steed
+showy orchis
+stone crab
+artichoke heart
+phantom orchid
+space helmet
+swamp laurel
+privateer
+junior
+surcoat
+bristlegrass
+flower girl
+aphid lion
+penthouse
+lemonade mix
+coude telescope
+natal plum
+scriber
+wood nettle
+rape suspect
+resplendent quetzel
+western poppy
+choir loft
+fore-topsail
+thyme-leaved sandwort
+erotic
+short circuit
+outdoors
+flowering tobacco
+hookup
+aviatrix
+corker
+horehound
+horn
+swamp pine
+water biscuit
+cherimoya
+vaporizer
+courtier
+European sole
+full skirt
+Mother Carey's chicken
+cymule
+huck
+white snapdragon
+mountain nyala
+country borage
+bonduc
+casein paint
+grampus
+shrimpfish
+lodge
+dragee
+black walnut
+caraway seed
+roper
+glass cutter
+tab key
+Richardson's geranium
+demigod
+chichipe
+Italian ryegrass
+cadet
+electrograph
+rudd
+carpenteria
+foie gras
+lignum vitae
+hedge nettle
+pledger
+American hackberry
+flageolet
+beaked hazelnut
+reflectometer
+sticky geranium
+marriage bed
+white pepper
+japanese clover
+whiteface
+gnat
+extrovert
+Canada plum
+talipot
+chicken stew
+egg foo yong
+fraxinella
+skibob
+saucer magnolia
+jacket
+green smut fungus
+cloakroom
+landing skid
+booth
+ice milk
+dipole
+striped coral root
+red buckeye
+roughcast
+breaststroker
+cowherb
+razor clam
+first-aid station
+briarroot
+clambake
+lander
+Bramley's Seedling
+frail
+jird
+minisub
+luging
+poison milkweed
+European lobster
+epidemiologist
+spandex
+paloverde
+marumi
+bypass condenser
+punter
+petty spurge
+Coryphaena hippurus
+bilberry
+vermillion rockfish
+witness box
+viscometer
+pulque
+Massachusetts fern
+herring salad
+ridge tile
+mesa
+dwarf grey willow
+southern aster
+punch pliers
+tarnished plant bug
+hoop pine
+Japanese red pine
+benedick
+rebozo
+silver plate
+silver willow
+mouse-ear hawkweed
+bonito shark
+abutment arch
+noble cane
+tiger rattlesnake
+pongee
+jumping plant louse
+pattypan squash
+giant ryegrass
+railroad bed
+stiff aster
+imperial Japanese morning glory
+laundry
+winter cress
+large white petunia
+tea maker
+pen-and-ink
+early warning system
+lug
+monocot
+sea wormwood
+breechblock
+postage meter
+third rail
+Mongoloid
+Australopithecus boisei
+umbrella tent
+stirrer
+Dumpy level
+beroe
+post and lintel
+green spleenwort
+tomato paste
+dishpan
+stentor
+sweatband
+cobbler
+New York fern
+gaff
+prairie willow
+cyclops
+jigsaw
+rotavirus
+pallet
+eastern ground snake
+boiling water reactor
+acute triangle
+agora
+European cranberry
+roebuck
+surgical dressing
+busboy
+cannikin
+feedlot
+common pond-skater
+cochin
+horsehair lichen
+fetter
+sapote
+fichu
+dermatologist
+fire tongs
+creme anglais
+foster-mother
+laurelwood
+chicken snake
+mincemeat
+rocker
+wild spinach
+powder and shot
+butterwort
+auxiliary engine
+mamey
+hart's-tongue
+sucking pig
+American turkey oak
+troopship
+buttermilk
+divi-divi
+boatswain's chair
+soda fountain
+southern flying squirrel
+elastic
+cutaway
+housekeeper
+renegade
+apple rust
+bridoon
+machicolation
+stunt
+keyhole limpet
+personality
+solitary vireo
+epidendron
+Jihadist
+boffin
+bettong
+terror
+partial denture
+pusher
+saltcellar
+capstan
+large poodle
+Bibb lettuce
+low-bush blueberry
+staple
+banded krait
+sickroom
+barnyard grass
+wandflower
+woodworm
+bluegrass
+squirrel's-foot fern
+rabbitfish
+delta wing
+milking shorthorn
+limber pine
+guru
+gamine
+scythe
+sweetsop
+Gruyere
+bloodmobile
+mine detector
+American mistletoe
+silver beech
+hound's-tongue
+Lombardy poplar
+basket fern
+pink-and-white everlasting
+redtail
+Aladdin's lamp
+mace
+outtake
+condensed milk
+Canada wild rye
+silver perch
+waxflower
+taxer
+Chinese chestnut
+Our Lord's candle
+mugwump
+school system
+salp
+osso buco
+dress shirt
+butterweed
+low-fat milk
+couchette
+broomcorn
+proscenium
+mill agent
+smut grass
+humpback
+southern spadefoot
+military leader
+canebrake rattlesnake
+tailor-made
+ebony
+beach house
+flying gecko
+hoary alison
+typhoid bacillus
+Romanov
+vanilla pudding
+sweet cicely
+Spodoptera exigua
+dress rack
+flannel
+skipjack
+bolognese pasta sauce
+rooibos
+thunderer
+blessed thistle
+gauntlet
+mahatma
+granadilla
+laurel sumac
+Yuma
+thyme-leaved speedwell
+encyclical
+twill
+linocut
+manna gum
+spark arrester
+cocklebur
+Indian hemp
+lemon oil
+Hall's honeysuckle
+raceway
+flop
+Himalayan lilac
+one-flowered wintergreen
+photosphere
+silvery spleenwort
+convex polygon
+canarybird flower
+foster-sister
+fluffy omelet
+palanquin
+roll
+dandelion green
+Javanese
+workpiece
+Carmelite
+bread mold
+schlemiel
+wild lily of the valley
+grugru
+solenoid
+puff batter
+skep
+balance wheel
+Gadaba
+portia tree
+mobcap
+two-man tent
+scuffle
+firebrat
+ant lion
+anise
+caster
+giant petrel
+American water spaniel
+naboom
+treasure ship
+foster-son
+fiddleneck
+alidade
+sugar refinery
+wild oat
+water beetle
+generic
+damson plum
+abrocome
+detainee
+pitch pipe
+coast
+nilgai
+radiotherapy equipment
+heart-leaved aster
+gristmill
+grocer
+Appaloosa
+Cheviot
+brake pedal
+lantana
+cave myotis
+Rob Roy
+sea spider
+latrine
+carpophore
+recycling plant
+coondog
+brace and bit
+funambulist
+eggar
+mantelet
+postdoc
+mezzanine
+coco plum
+pulse generator
+high-vitamin diet
+menhaden
+mechanical engineer
+bergamot mint
+Chuvash
+grated cheese
+helicon
+belladonna
+beet armyworm
+eelgrass
+resuscitator
+interrupted fern
+arrow grass
+cistern
+Pacific herring
+colostrum
+journal bearing
+Fauve
+wrist pin
+canape
+choice morsel
+quadraphony
+guard boat
+shortgrass
+claymore mine
+hitching post
+cargo door
+decoder
+gym rat
+Cocopa
+commander
+apple of Peru
+seckel
+yellow goatfish
+dog flea
+dodo
+oconee bells
+Tudor arch
+turkey stuffing
+ebony spleenwort
+wheat flag smut
+scolopendrium
+Brazilian pepper tree
+gusset
+inspector
+lunar excursion module
+baron
+plantigrade mammal
+Creole
+phosphate
+aromatic aster
+ghee
+audiovisual
+onychophoran
+cotton stainer
+lieutenant junior grade
+spheroid
+amen corner
+caper sauce
+Caladium bicolor
+dyer's rocket
+seaside goldenrod
+flint corn
+Very pistol
+rotifer
+steeplechaser
+rouleau
+escape wheel
+Namibian
+millivoltmeter
+emmer
+climatologist
+agateware
+sea lyme grass
+inclinometer
+water fennel
+saddle seat
+vicar
+garden cress
+ski rack
+Norfolk jacket
+casaba
+coast rhododendron
+sericea lespedeza
+hematocrit
+autopilot
+tilter
+finish coat
+Pennsylvanian
+shrubby St John's wort
+podocarp
+percussion cap
+ceriman
+peanut bar
+gean
+jack
+durra
+rotor
+carob
+cottage tulip
+three-spined stickleback
+trencher
+elevator
+kalumpang
+abaca
+Australopithecus robustus
+active matrix screen
+water bed
+hatmaker
+lodestone
+cat food
+overcup oak
+balletomane
+popgun
+rheometer
+process cheese
+frog legs
+heartleaf arnica
+p-n-p transistor
+steam turbine
+Tulu
+scalene triangle
+licorice fern
+coffee break
+trade unionist
+starved aster
+firing pin
+water gum
+Masonite
+hairspring
+seminarian
+blue racer
+forecastle
+scrub pine
+Atlantic spiny dogfish
+kopje
+orphrey
+fan tracery
+gee-gee
+vixen
+interstellar space
+Harris Tweed
+sawmill
+lemon mint
+bitewing
+ringlet
+Chinese mustard
+paleontologist
+American hazel
+brigantine
+clay-colored robin
+zombie
+nectarine
+West Indian jasmine
+pineapple weed
+rusher
+gynecologist
+pole
+thylacine
+myrtle beech
+golden cup
+woodruff
+T-bar lift
+terebinth
+service club
+homegirl
+Blue Mountain tea
+figwort
+New Hampshirite
+Stayman
+tonometer
+white turnip
+messuage
+cruet-stand
+colliery
+connecting room
+lesser twayblade
+bland diet
+crown prince
+beggarwoman
+restharrow
+bower actinidia
+firebug
+hepatic tanager
+telegraph
+Spodoptera frugiperda
+spackle
+carpenter's square
+pyx
+supermom
+thickhead
+whorled milkweed
+Arctic char
+Chinese rhubarb
+pince-nez
+wolverine
+tomato concentrate
+cascarilla bark
+red underwing
+leather flower
+Jerusalem thorn
+bullpen
+Salisbury steak
+anode
+coffeeberry
+bottling plant
+fritter batter
+aerial torpedo
+matrix
+local oscillator
+stalked puffball
+bruin
+three-cornered leek
+wassail
+stabling
+damping off fungus
+myriapod
+osier
+lesser kudu
+cownose ray
+chokecherry
+wagon
+obstetrician
+Glengarry
+even-pinnate leaf
+wine sauce
+osteocyte
+baker's yeast
+heir presumptive
+blackjack
+tympanist
+golden fern
+fipple
+Japanese oak
+bar mask
+stamping machine
+argus
+knobcone pine
+oil beetle
+lanai
+upper berth
+condenser
+proctologist
+catechu
+wild spurge
+vestry
+ground snake
+proton accelerator
+walker
+scarlet bush
+transom
+lagging
+bouillon
+slender loris
+black currant
+developer
+football hero
+plum sauce
+striped mullet
+prince charming
+fictional animal
+prosimian
+lug wrench
+lemonwood
+kirsch
+spy satellite
+black caraway
+Thompson Seedless
+bead tree
+purple fringeless orchid
+Virginia strawberry
+chigetai
+punkie
+gall wasp
+addressing machine
+rock polypody
+good-king-henry
+spring cankerworm
+wimple
+noncandidate
+saskatoon
+hacienda
+Darjeeling
+snowberry
+lounging pajama
+ascospore
+ski-plane
+hedgehog cereus
+Welsh onion
+yautia
+coaster brake
+sickle cell
+parrot's beak
+fuller's teasel
+painted greenling
+scablands
+stuffed cabbage
+barrel organ
+etcher
+dwarf maple
+camp
+Australian blacksnake
+currycomb
+obtuse triangle
+rose gum
+psychrometer
+abridger
+torpedo
+carpet loom
+sodalist
+slender rush
+loligo
+sclerometer
+wimp
+dotted gayfeather
+green ash
+pinstripe
+moralist
+medusa's head
+garden centipede
+heath aster
+fool's parsley
+olla podrida
+Potawatomi
+Edam
+toothache tree
+hulk
+seabag
+narthex
+compartment
+prairie star
+lookdown
+B-flat clarinet
+event planner
+clip lead
+shirting
+milk punch
+supercharger
+macadamia nut
+giant coreopsis
+computer store
+martingale
+keyboard buffer
+summer flounder
+squash ball
+gas turbine
+object ball
+plier
+black mulberry
+reef squirrelfish
+scampi
+willow aster
+bowler
+striped marlin
+smooth muscle cell
+diplodocus
+Liberty ship
+sponge cloth
+guitarfish
+walking leaf
+showroom
+California bluebell
+bolo
+turnbuckle
+boysenberry
+hardware
+Gael
+imago
+endorser
+jujube
+dust bag
+rapporteur
+field wormwood
+low-water mark
+naval missile
+Pacific yew
+reversible
+crabapple jelly
+poniard
+barricade
+spawner
+simnel
+seltzer
+deckle edge
+needle
+timbale
+satellite transmitter
+organization man
+job candidate
+orderly
+native cranberry
+fir clubmoss
+coaming
+chartered accountant
+electron accelerator
+Sierra plum
+American foxhound
+long underwear
+Penobscot
+blueberry yogurt
+biretta
+cascara
+Paranthropus
+Dorian
+nun's habit
+lenten rose
+Augustinian
+designer
+northern phalarope
+mombin
+hazel mouse
+reeve
+waffler
+telegraphy
+Verpa conica
+ignition coil
+Japanese oyster
+S-shape
+divining rod
+ant thrush
+throat protector
+interlocutor
+Desmodus rotundus
+pere david's deer
+attenuator
+Cypriot
+red sandalwood
+pendulum watch
+broadcloth
+striped drum
+sequence
+safety arch
+diapensia
+hog
+western spadefoot
+chlorella
+comb-footed spider
+Chechen
+darning needle
+C-ration
+hard beech
+piano action
+scaling ladder
+Nepal trumpet flower
+ravigote
+screw wrench
+ramekin
+Lyonnaise sauce
+dinner napkin
+partial veil
+masseuse
+coatrack
+mooring tower
+blue-eyed African daisy
+English horn
+baton
+rope tow
+toll bridge
+massage parlor
+quark cheese
+lounging jacket
+tall goldenrod
+flying jib
+coordinate axis
+barley-sugar
+integrator
+worm gear
+captain
+sweatshop
+class
+layer
+chili powder
+dripping pan
+oatcake
+newsroom
+tadpole shrimp
+rake
+trade magazine
+silks
+ram's-head
+senior
+knower
+masseur
+yam
+peg
+wheel tree
+hardbake
+test room
+long-spurred violet
+creeping spike rush
+shrapnel
+coffee senna
+matchbox
+creeping soft grass
+welder's mask
+pickaback plant
+urial
+hooded pitcher plant
+incense cedar
+Ohio buckeye
+ant cow
+skeleton fork fern
+Indiaman
+swamp ash
+testatrix
+marang
+spherocyte
+Winesap
+Indian mallow
+teju
+Yersinia pestis
+dye-works
+sauerbraten
+coral bean tree
+safe house
+postulator
+eyas
+lotus
+wood vise
+lady-of-the-night
+East German
+cymling
+rock candy
+western omelet
+anoa
+rainbow seaperch
+crossover voter
+Finn
+tree shrew
+hog plum
+Federal
+shagbark
+clockwork
+Alexandrian laurel
+metal wood
+brill
+military chaplain
+trend-setter
+call-back
+Indian rat snake
+spurred gentian
+Japanese maple
+forest goat
+bee moth
+viola da braccio
+duckboard
+armyworm
+hangnail
+counterbore
+cream-of-tartar tree
+Mullah
+bonbon
+water hazard
+temple orange
+corporatist
+rough bindweed
+Turkish bath
+mistletoe fig
+beach sand verbena
+caddisworm
+English plantain
+brown Betty
+power pack
+lion's-ear
+Francis turbine
+stayer
+dichondra
+marsh St-John's wort
+squab
+energizer
+common horehound
+mantispid
+pullback
+handwheel
+spark arrester
+yakuza
+Virginian witch hazel
+grunter
+waterworks
+bondwoman
+chain printer
+stockjobber
+coconut milk
+yardgrass
+blue chip
+bridle path
+riser
+pleurothallis
+saltwort
+salal
+broadside
+blackboard eraser
+bastard
+Para rubber tree
+red bat
+digital-analog converter
+calabash
+cashier
+cow shark
+horned pout
+microphage
+monologist
+woolly monkey
+Illinoisan
+marsh horsetail
+distaff
+siris
+eparch
+gooseneck loosestrife
+sounding rocket
+multiprocessor
+saiga
+xerographic printer
+madrona
+right triangle
+sweet gale
+red maids
+wolfsbane
+pork-and-veal goulash
+French sorrel
+mutterer
+Venetian sumac
+drumlin
+white crappie
+squire
+large-flowered calamint
+northern cricket frog
+mushroom sauce
+supertanker
+morello
+auxiliary boiler
+Virginia thimbleweed
+cottage tent
+bubble shell
+big shellbark
+wormwood sage
+cider gum
+coast lily
+American feverfew
+Peruvian balsam
+purple silkweed
+tobacco moth
+desk dictionary
+rock elm
+eastern indigo snake
+Japanese privet
+lamb
+levee
+L-plate
+soapfish
+painted tongue
+scuttle
+markhor
+Marburg virus
+mackinaw
+major
+crypt
+ball and chain
+domestic silkworm moth
+bottom feeder
+mistress
+death house
+freight elevator
+bellyband
+Pulex irritans
+Bacillus anthracis
+fire control radar
+hysterosalpingogram
+turbogenerator
+decompound leaf
+vambrace
+scentless camomile
+Medinilla magnifica
+prima ballerina
+Northern Spy
+quartz lamp
+grains of paradise
+justiciar
+felt fern
+seismograph
+Madagascar jasmine
+imaret
+white perch
+Alpine mouse-ear
+tea bread
+yellow bass
+poseuse
+espionage agent
+punching bag
+eurypterid
+orange sneezeweed
+banded stilt
+armhole
+postern
+mother
+kapuka
+catechumen
+Soubise
+Sauvignon blanc
+gunnery sergeant
+self-starter
+ceratozamia
+Atlantic cod
+Reoviridae
+blood cup
+horseshoe bat
+oriental plane
+voussoir
+fetterbush
+samara
+truncated pyramid
+lingcod
+athenaeum
+shyster
+Carolina hemlock
+submarine torpedo
+floating fern
+yataghan
+sun tea
+viola d'amore
+conenose
+ventilation shaft
+walk-up apartment
+saury
+wild wheat
+porcupine ball
+tahini
+kris
+grass fern
+drip pan
+black bryony
+Scotch broth
+tapioca pudding
+southwestern toad
+Hare Krishna
+guimpe
+wild madder
+megalocyte
+teaching fellow
+shrubby penstemon
+lesser wintergreen
+privet hedge
+Fahrenheit thermometer
+stern chaser
+prickly ash
+pump room
+ricer
+chicken mousse
+wing commander
+sun gear
+bolus
+alpine milk vetch
+opera cloak
+twinjet
+Goldie's fern
+abnegator
+alphabet soup
+node
+grape jelly
+early coral root
+Tarzan
+quarterstaff
+greeter
+Eurasian woodcock
+primary coil
+quirt
+tinkerer
+bolt
+creme de fraise
+voltage regulator
+news photography
+Jat
+bristly locust
+Gouda
+dickey
+lobster butter
+dwarf flowering almond
+fagot stitch
+Reform Jew
+ostrich fern
+bathyscaphe
+purple mullein
+alpaca
+civic leader
+jellaba
+Arizona ash
+wasabi
+Irishwoman
+choke
+stockinet
+religionist
+sewage disposal plant
+bittersweet
+Hyphantria cunea
+pheasant under glass
+screen actor
+chapterhouse
+quoit
+horseshoe bat
+rapper
+cupule
+planetary gear
+cascade penstemon
+redoubt
+salt
+areaway
+megalomaniac
+bush willow
+amethystine python
+plains spadefoot
+colour supplement
+kick pleat
+bell apple
+narwhal
+slippery elm
+stenograph
+baa-lamb
+quadrant
+balker
+jobcentre
+spit curl
+bastard indigo
+malacca
+serow
+adobe lily
+yacca
+palestra
+penalty box
+scrub beefwood
+reenactor
+screening
+white bryony
+alderleaf Juneberry
+harpoon
+alpine clubmoss
+neurosurgeon
+surrey
+sweet calabash
+Scotch laburnum
+coquille
+French honeysuckle
+extrados
+pipe cleaner
+southwestern white pine
+Virginian stock
+scaly lentinus
+aileron
+carob bar
+swordfish
+Alpine woodsia
+negus
+wireworm
+sweep
+goldfields
+drop arch
+European bream
+roly-poly
+pin
+bastard wing
+fustian
+wild buckwheat
+lake whitefish
+overcoat
+water filter
+Bermuda chub
+New Zealand spinach
+high-hat cymbal
+European larch
+radiologic technologist
+fine-tooth comb
+brunch coat
+splice
+electronic converter
+overmantel
+extern
+taper
+cluster bomb
+teletypewriter
+pinwheel
+trailing arbutus
+quipu
+creeping zinnia
+orange milkwort
+tabard
+Australopithecus africanus
+melancholy thistle
+insole
+courser
+darkroom
+surface-to-air missile system
+bark-louse
+Confederate
+neritina
+clip-on
+spouter
+trench knife
+outside caliper
+dhak
+Limburger
+chuck wagon
+buttercup squash
+shirtdress
+pouter pigeon
+dirty old man
+zodiac
+fennel flower
+mother figure
+appointment
+Manichaean
+lignum
+bouffant
+rum sling
+Ravenna grass
+hibachi
+gin rickey
+American harvest mouse
+cocozelle
+western wheatgrass
+black crappie
+rhombus
+Missouri goldenrod
+barndoor
+wild mango
+pneumococcus
+Boston lettuce
+ratline
+desert holly
+cobweb
+fluoroscope
+ethnologist
+tor
+bullshot
+stockade
+greave
+rock sea bass
+slip-joint pliers
+taxi dancer
+schizophrenic
+zill
+creme de menthe
+orange-blossom orchid
+divot
+supplejack
+busybody
+casemaking clothes moth
+ramrod
+gearbox
+birdcall
+Wiffle
+thwart
+beauty consultant
+chicken paprika
+trawl
+skep
+spirometer
+hopper
+kvass
+doggie bag
+bath chair
+showy daisy
+wild tamarind
+Tarsius syrichta
+glyptics
+Algerian
+cargo area
+bunk
+Velveeta
+iconoclast
+clinch
+New Caledonian yew
+false mallow
+Japanese tree lilac
+convex polyhedron
+water boatman
+cruise missile
+finisher
+colonoscope
+cumin
+wickiup
+saccharin
+whipcord
+trailer camp
+eryngo
+cuckold
+yam bean
+fighting chair
+forewoman
+galingale
+citron
+positivist
+four-lined plant bug
+suet pudding
+field pea
+Circaea lutetiana
+deer grass
+trap-door spider
+common corn salad
+mirror carp
+sounder
+second-in-command
+seaside alder
+burgoo
+ming tree
+curry sauce
+courbaril
+green alder
+figure loom
+fauld
+halfbeak
+squelch circuit
+cladode
+winter cress
+tongue and groove joint
+dwarf dandelion
+joss house
+western buttercup
+welted thistle
+potato tree
+anglewing
+cookfire
+marzipan
+hood latch
+seed shrimp
+common moonseed
+toasting fork
+bevel
+three-quarter binding
+midwife toad
+stage director
+Pentecostal
+technical sergeant
+golden-beard penstemon
+drunk
+silky oak
+corn gluten feed
+T-square
+stoker
+selling agent
+cruse
+server
+rope-a-dope
+bicorn
+matzo meal
+wide wale
+roadblock
+false foxglove
+tuck box
+bandsman
+smoke bush
+machinist's vise
+Highlander
+scholiast
+self-starter
+Swedish rye bread
+spark transmitter
+maverick
+maquiladora
+cabinetmaker
+compress
+rainbow shower
+huntsman's horn
+mackinaw
+copper rockfish
+lappet
+nitrate bacterium
+telephone plug
+soutache
+Dacron
+toboggan
+sissoo
+yogi
+laurel-tree
+vice chancellor
+Christ's-thorn
+cartridge fuse
+serial port
+quassia
+tarweed
+pecopteris
+beggarweed
+anchovy pear
+bookbindery
+woodland oxeye
+toad rush
+sandalwood tree
+marsh andromeda
+Tyrian purple
+boothose
+tragedienne
+fragrant cliff fern
+festoon
+bondwoman
+melancholic
+butternut squash
+exhaust valve
+semi-skimmed milk
+glowworm
+Virginia oyster
+Identikit
+ayah
+gallows tree
+Carioca
+monoplane
+jewels-of-opar
+scallop
+moth miller
+marsh cress
+lobed spleenwort
+ricotta
+emitter
+arame
+tub gurnard
+army attache
+maniac
+organizer
+pheasant's-eye
+Melba toast
+homeboy
+Bavarian cream
+Maximilian's sunflower
+backstop
+Tremella foliacea
+yellow avens
+spreading fleabane
+plumb level
+false rue anemone
+zabaglione
+climbing maidenhair
+doeskin
+walking shoe
+lancewood
+material
+jacksnipe
+South American poison toad
+agonist
+hinny
+paper mill
+psychophysicist
+valley girl
+toast mistress
+jorum
+tiler
+chicken Tetrazzini
+trivet
+grasshopper
+three-mile limit
+kink
+kiang
+pole horse
+jig
+Cornish heath
+hedge thorn
+false alumroot
+Popper
+remount
+photojournalist
+sideroblast
+stonecress
+Agave tequilana
+Japanese lilac
+hawse
+maenad
+air bag
+leaf spring
+dwarf willow
+soda cracker
+contralto
+moleskin
+pilaster
+Audubon's caracara
+pia
+American organ
+bleu cheese dressing
+betel palm
+PC board
+almond willow
+socializer
+tone arm
+stammerer
+free-liver
+scaler
+Gentianopsis crinita
+leak
+black haw
+hound's-tongue
+grass pea
+Stassano furnace
+coralbells
+ministrant
+perihelion
+Luxemburger
+powder-post termite
+arboreal salamander
+cushion flower
+foramen magnum
+pyrethrum
+poacher
+woolly mammoth
+horned chameleon
+tearaway
+father-figure
+tufted gentian
+salmi
+finger millet
+physa
+registrar
+polyoma
+bamboo shoot
+matchlock
+seine
+congress boot
+bulgur pilaf
+monosodium glutamate
+Kentucky wonder
+mycologist
+kedgeree
+ragweed pollen
+boarfish
+yellow pimpernel
+tan
+northern Jacob's ladder
+macrobiotic diet
+migrant shrike
+big-cone spruce
+colonialist
+white dogtooth violet
+bath asparagus
+webbing clothes moth
+ladies' room
+experimenter
+prairie bird's-foot trefoil
+bootleg
+cognitive neuroscientist
+fire chief
+flagfish
+dendrite
+stinking goosefoot
+fore edge
+hogfish
+Spanish cedar
+hotel-casino
+Tory
+life-support system
+pea flour
+cash bar
+Chenin blanc
+white-footed mouse
+Canada garlic
+salt-rising bread
+roomette
+mastodon
+bell founder
+long iron
+bi-fold door
+fig-bird
+European water shrew
+dyer's weed
+frog orchid
+allosaur
+Florida yew
+wild potato vine
+crape fern
+flat-topped white aster
+klebsiella
+oil heater
+waxmallow
+enjoyer
+mesocarp
+semidesert
+senior vice president
+coccidium
+burrawong
+syllabub
+jump suit
+harrier
+leaf roller
+cherrystone
+cinchona tree
+touring car
+eulogist
+air force officer
+red goosefoot
+cat thyme
+smoothbore
+slugger
+cardiac monitor
+cobber
+blister rust
+musicologist
+rolled biscuit
+Braun's holly fern
+hog plum
+nonpasserine bird
+pascal celery
+damson
+Jonathan
+Sheraton
+cohune palm
+egg white
+baton
+sixth-former
+Siberian pea tree
+choanocyte
+wineskin
+auditor
+detention home
+Leichtlin's camas
+Chartreuse
+clusia
+club car
+wattle and daub
+security blanket
+common American shad
+assistant professor
+marsh pea
+camomile tea
+gopher hole
+gravure
+Freudian
+spirillum
+maharani
+equilateral
+crow garlic
+mammee apple
+felwort
+hardtop
+dillenia
+curlycup gumweed
+pilot engine
+calcimine
+wooly lip fern
+bitter dock
+wineberry
+jumper
+monolingual
+spinning frame
+old-timer
+native cat
+diving petrel
+sodium-vapor lamp
+marchand de vin
+sexton
+matelote
+interior designer
+windfall
+mole salamander
+minder
+bodkin
+neutron bomb
+Caloscypha fulgens
+slinger ring
+mezzo-soprano
+aura
+Southern Baptist
+viscacha
+midfield
+tie
+prosthetist
+round-headed leek
+yellow mariposa tulip
+canary grass
+staddle
+Tokay
+Muenster
+brazil nut
+California black walnut
+applesauce
+penologist
+virgin's bower
+tenon
+steward
+Jerusalem oak
+red-bellied snake
+bindery
+scow
+fluid flywheel
+bullhead
+satinleaf
+clove
+double glazing
+matron
+wild parsnip
+winged elm
+shoot-'em-up
+musk deer
+white rust
+lock
+Cornishman
+Vidalia onion
+corn spurry
+freeloader
+justice of the peace
+inlay
+myxobacteria
+tiglon
+tangram
+German ivy
+scented fern
+woolly daisy
+caretaker
+gastroscope
+scuppernong
+spotted sunfish
+guilloche
+codling
+wormcast
+Eskimo curlew
+tayra
+European fly honeysuckle
+septuagenarian
+third gear
+coatee
+red alder
+water ice
+cubitiere
+frame buffer
+gamboge tree
+pernyi moth
+chicken Marengo
+Galliano
+Lincoln
+true sago palm
+hunter's sauce
+carpet beater
+alpine goldenrod
+arch support
+vehicle-borne transmission
+jilt
+paternoster
+redcap
+Siberian larch
+hoary plantain
+swan's down
+chicane
+reverse
+divan
+kneeler
+alexic
+mock turtle soup
+daffodil garlic
+mission bells
+squilla
+ursinia
+winter's bark
+trifoliate orange
+discina
+frijole
+Swiss steak
+maildrop
+knotgrass
+dog fennel
+drum sander
+heroin addict
+costume
+camber arch
+shining willow
+lutefisk
+red porgy
+microfossil
+good old boy
+angle bracket
+pitcher sage
+bordelaise
+heat exchanger
+carrion
+bush jacket
+fanjet
+coach
+blackface
+sicklepod
+Manhattan clam chowder
+daisywheel printer
+olive
+Sphacelotheca
+Spanish needles
+brown root rot fungus
+boudoir
+encyclopedist
+V-8 juice
+red haw
+brass buttons
+gym suit
+skywalk
+water wagon
+gas-turbine ship
+stoup
+lisle
+sailor suit
+box beam
+balm of gilead
+housemaster
+hayrack
+neutralist
+water elm
+brook thistle
+doyenne
+nark
+alpha-tocopheral
+WASP
+hydrilla
+water-shield
+footlocker
+variola major
+pargeting
+ion engine
+yellow globe lily
+Malecite
+bloodleaf
+yellow sand verbena
+whorled loosestrife
+packinghouse
+Carolina parakeet
+Virginia waterleaf
+armband
+red rockfish
+factory ship
+moon trefoil
+jump seat
+water gillyflower
+yerba mansa
+chamfer bit
+compass saw
+hopsacking
+Indian rhododendron
+sickbed
+treacle
+honey eater
+mailsorter
+seabeach sandwort
+sob sister
+primrose jasmine
+prince consort
+elocutionist
+wishing cap
+runner
+trestle
+sugar water
+half-and-half dressing
+fringed poppy mallow
+portiere
+bung
+swan orchid
+weather satellite
+beef broth
+marblewood
+sapper
+agitator
+wren-tit
+grade
+allspice tree
+spacewalker
+American hornbeam
+sieva bean
+dill seed
+potoroo
+love-in-winter
+alembic
+Cheshire cheese
+small white aster
+Oregonian
+flipper
+twill
+differential gear
+Prince Albert
+licorice
+foster-father
+Melkite
+portraitist
+Yosemite toad
+Cox's Orange Pippin
+slender wheatgrass
+knob
+silique
+Rocky Mountain bee plant
+stirrup pump
+chicken hawk
+sweetbrier
+Sierra lodgepole pine
+poulette
+biohazard suit
+striated muscle cell
+Geiger counter
+World Wide Web
+turmeric
+prairie wake-robin
+latchet
+pushball
+grill
+shooting lodge
+floating-moss
+refried beans
+boojum tree
+red poll
+toothbrush tree
+rabbiteye blueberry
+red haw
+sweet vetch
+delta
+upland cotton
+ballet mistress
+padrone
+complementary color
+great Solomon's-seal
+bud brush
+brandy sling
+spinster
+Andorran
+Mojave aster
+mackinaw
+golden calla
+bottom rot fungus
+segmental arch
+periwinkle
+hellion
+topknot
+copper
+Mexican hyssop
+weeping love grass
+point woman
+pathogen
+fall cankerworm
+common shiner
+silverspot
+corer
+atomic pile
+crystal detector
+yellow spot fungus
+truncated cone
+saprobe
+variegated horsetail
+Cro-magnon
+cercaria
+aglet
+pollster
+oyster bed
+pancake turner
+egg cream
+sporozoite
+quirk molding
+mutisia
+sound bow
+physic nut
+sugar-bush
+cow
+magnetron
+jungle hen
+brassie
+rock bit
+taco sauce
+seeded raisin
+desert selaginella
+folding door
+vinegarroon
+Pinot blanc
+rye
+ellipsoid
+betel nut
+tree of knowledge
+ambrosia
+long tom
+breechloader
+bicolor lespediza
+cosmetician
+monoblast
+American oil palm
+prancer
+farina
+caiman lizard
+hardball
+bullock's heart
+cotton rat
+whiting
+weather ship
+sharecropper
+creamcups
+gas bracket
+divinity
+ornithologist
+yellow twining snapdragon
+showy goldenrod
+end man
+heptagon
+sand dropseed
+round file
+guama
+blue elder
+sand spurry
+raccoon dog
+zigzag goldenrod
+fast reactor
+arctic willow
+cyclopean masonry
+punter
+sgraffito
+slattern
+storage ring
+clipper
+pulasan
+short-tailed shrew
+scammony
+daybook
+umbrella tree
+coloring
+element of a cone
+gesneriad
+cane
+burgoo
+western coral snake
+friendship plant
+Leydig cell
+scrutineer
+hairy golden aster
+inclined fault
+water milfoil
+bryozoan
+nardoo
+native pomegranate
+curly grass
+Florence fennel
+resurrection plant
+ice water
+crown
+ploughman's lunch
+clustered lady's slipper
+kitchenette
+sand sedge
+pouched mouse
+roadbed
+parsley haw
+predecessor
+super heavyweight
+seedless raisin
+mailbag
+sparling
+codling moth
+squama
+Bercy
+thermoelectric thermometer
+Jaculus jaculus
+saltpan
+firmer chisel
+round whitefish
+ramrod
+criollo
+pinch bar
+slash pocket
+thigh pad
+velvet plant
+intergalactic space
+brazilian ironwood
+whaleboat
+sirrah
+hanging fly
+aspirator
+Dominican
+dribbler
+yellow-eyed grass
+Cornish
+geophysicist
+tarmacadam
+marchioness
+rattlesnake orchid
+Alaska Native
+ilama
+myrrh tree
+zucchini
+licorice root
+nosebag
+lounger
+troposphere
+virginal
+spaghetti Western
+Virgin Mary
+waterwheel plant
+dry nurse
+enate
+carpet shark
+rijsttaffel
+stuffing nut
+caraway seed bread
+Leotia lubrica
+kaffiyeh
+Boston baked beans
+halophyte
+backscratcher
+instillator
+trefoil arch
+pip
+digitizer
+dosemeter
+Carolinian
+French sorrel
+boards
+historian
+rangpur
+clansman
+goral
+leatherjacket
+coiner
+fleece
+white globe lily
+storm cellar
+roundhouse
+mediatrix
+butterfly flower
+swamp gum
+prairie vole
+rhizomatous begonia
+common tobacco
+Marco Polo sheep
+subarachnoid space
+broomweed
+safety net
+silky wisteria
+swagger stick
+spectacled caiman
+derris root
+soap pad
+chop-suey greens
+summer hyacinth
+palo santo
+carbohydrate loading
+chinch bug
+roadman
+sheep plant
+messiah
+desk officer
+banquette
+drugget
+trumpet arch
+great duckweed
+purdah
+heartbreaker
+hasty pudding
+alligator weed
+dragee
+yellow bristlegrass
+Jacob's ladder
+campstool
+coffee fern
+sweet fern
+little chief hare
+cat-o'-nine-tails
+rep
+American red elder
+divorcee
+black salsify
+cambric
+sennit
+Canada ginger
+wonderer
+Formica
+cream-colored courser
+zooid
+European beggar-ticks
+sorrel tree
+piddock
+blolly
+red-flowered silky oak
+bay
+Hooker's onion
+dark horse
+cone clutch
+Roman hyacinth
+paintbox
+mestiza
+green alder
+bill
+panicled aster
+mammogram
+snuffbox fern
+Rediffusion
+swamp fly honeysuckle
+stoup
+psychiatrist
+nodding groundsel
+student union
+cold duck
+bee beetle
+playbox
+Psychopsis krameriana
+nosh-up
+earthnut
+narthex
+single-rotor helicopter
+revetment
+sweetleaf
+seasoned salt
+piculet
+speckled alder
+mackerel scad
+common yellowwood
+devisee
+static tube
+Spanish heath
+umbrella plant
+fucoid
+Chilean
+coral-root bittercress
+fanatic
+cachou
+agony aunt
+bird's-foot fern
+washwoman
+torchbearer
+placoderm
+frosted bat
+spicemill
+Cape lobster
+hard-shell crab
+colonizer
+camphor daisy
+friar's-cowl
+false tamarisk
+toggle joint
+tinsmith
+theorist
+hydrologist
+loganberry
+universal donor
+northern whiting
+tent-caterpillar moth
+russet
+kangaroo mouse
+African scented mahogany
+bastinado
+breast implant
+betel
+grade separation
+vox humana
+stodge
+Maryland chicken
+Anguillan
+oil pump
+governor's plum
+narcissist
+deadwood
+private citizen
+winker
+ropewalker
+gidgee
+Lothario
+ski resort
+major-domo
+von Neumann machine
+belaying pin
+water parsnip
+Fissipedia
+luggage carrier
+spring water
+oyster stew
+kohl
+celesta
+date-nut bread
+punchboard
+sunniness
+hospital train
+man
+rack and pinion
+mixer
+pousse-cafe
+narrow goldenrod
+Maxim gun
+stiff
+recruiting-sergeant
+watch glass
+white hellebore
+tung tree
+prairie white-fringed orchid
+beef Stroganoff
+scoffer
+grassy death camas
+Shawnee cake
+tapioca
+Short's aster
+banker
+laparoscope
+honeyflower
+Caterpillar
+electric clock
+baling wire
+huntress
+Surinam toad
+art school
+incurable
+Canton crepe
+apple juice
+hipline
+bronchoscope
+marshmallow fluff
+Texan
+wild fig
+sawed-off shotgun
+forestay
+red kauri
+fish slice
+Egyptian grass
+English walnut
+brown sauce
+ogee arch
+nectary
+chambray
+leather flower
+phloem
+Persian violet
+bomb calorimeter
+western narrow-mouthed toad
+soup du jour
+sickle alfalfa
+caracolito
+periscope
+coralberry
+sword bean
+sigmoidoscope
+water locust
+hygrodeik
+sycamore
+sheikdom
+ballistocardiograph
+clove
+akee
+fucoid
+jacquard
+cat's-ear
+puritan
+slender wild oat
+smooth softshell
+purchasing agent
+landing craft
+chartist
+lace bug
+sharksucker
+Virginia chain fern
+horseradish
+namer
+ripcord
+personage
+aspirin powder
+puku
+Wankel engine
+nightcap
+velvet bent
+roridula
+cytogeneticist
+olm
+almond extract
+common heath
+fringe-toed lizard
+Kentucky yellowwood
+lithosphere
+cramp
+bulgur
+scurvy grass
+officer's mess
+frigate
+electroscope
+giant chinkapin
+opah
+rutabaga
+wood hoopoe
+Farley maidenhair
+shingle tree
+argentine
+router
+palm nut
+quillwort
+hiba arborvitae
+runcible spoon
+hireling
+sickbay
+alpine totara
+white lupine
+Cotoneaster horizontalis
+desert plume
+staghound
+Sea Scout
+opalescence
+enophile
+Jersey elm
+coal house
+Helvella acetabulum
+selenium cell
+white camas
+creole-fish
+auger
+fragrant agrimony
+research center
+achromia
+shank
+cottonseed
+mod con
+extension
+sugar beet
+winter flounder
+silky dogwood
+strop
+tokamak
+rabbit ears
+baby farmer
+fireman's ax
+serration
+taproot
+socket wrench
+action officer
+Chilean jasmine
+Greek fire
+stem-winder
+body louse
+lumpsucker
+stink bomb
+American lady crab
+dicer
+lie detector
+maneuverer
+black-headed snake
+tiger moth
+shooting stick
+spermatid
+babushka
+deaconess
+home
+prior
+chanfron
+chickasaw plum
+big-eared bat
+rusty woodsia
+tertigravida
+miniver
+combretum
+habit
+bluehead
+angled loofah
+gipsywort
+fire-on-the-mountain
+purple milk vetch
+alpine gold
+merozoite
+loddon pondweed
+Uniat
+provost marshal
+Gyromitra fastigiata
+Coigue
+proconsul
+oarfish
+San Jose scale
+filature
+chimney plant
+spiny softshell
+bluecoat
+live axle
+river limpet
+clever Dick
+pink bollworm
+Japanese plum
+roarer
+caricature plant
+wardroom
+Texas chachalaca
+Bahia grass
+Moreton Bay tulipwood
+accessory fruit
+pearl barley
+ashcake
+bunt
+Polynesian tattler
+pine fern
+laughing owl
+potato fern
+speaking trumpet
+adjoining room
+bearing rein
+banana quit
+redbrick university
+Scleroderma bovista
+magdalen
+pressurized water reactor
+advisee
+NIMBY
+poorwill
+almond moth
+comedian
+star tulip
+cracked wheat
+water pump
+guest of honor
+yellow-breasted bunting
+hire
+pedate leaf
+augur
+purple locoweed
+Socinian
+upland white aster
+guesthouse
+double reed
+detention basin
+rollmops
+hitch
+bodega
+mayeng
+sparkplug wrench
+attack dog
+peach melba
+heliozoan
+tower mustard
+blue mold fungus
+lamplighter
+banded sand snake
+smooth crabgrass
+elsholtzia
+bodkin
+Aegean island
+bag lady
+alewife
+arcella
+electrical contact
+common ax
+animist
+concave polyhedron
+coalface
+climbing perch
+yellowtail
+hobble skirt
+marquee
+Russian dandelion
+snow mushroom
+polo ball
+NADA daiquiri
+cormous plant
+chaparral mallow
+inside caliper
+milking stool
+fallout shelter
+sea gooseberry
+Danish blue
+grissino
+chimney breast
+mosquito fern
+soundbox
+spring chicken
+epauliere
+cape forget-me-not
+japan
+saddle oyster
+white fritillary
+push-button radio
+bladder senna
+bladder stone
+macedoine
+moire
+Shawnee
+starnose mole
+douroucouli
+horseradish sauce
+electron gun
+cotter
+console
+park commissioner
+free press
+lump sugar
+western poison oak
+apple maggot
+keurboom
+lisper
+griffon
+burin
+horseshoe whipsnake
+Jacobean lily
+spinner
+cochineal insect
+emesis basin
+sowbane
+humanitarian
+uakari
+three-dimensional radar
+wild hollyhock
+heartseed
+swinger
+two-by-four
+mop handle
+common amsinckia
+traitress
+rush aster
+fibrous-rooted begonia
+violet-flowered petunia
+milliammeter
+alidade
+azure aster
+celery seed
+snorer
+scarlet plume
+obtuse leaf
+heathen
+rose chestnut
+headrace
+dwarf buckeye
+Pacific tripletail
+wiggler
+bounty hunter
+Lowlander
+slate pencil
+typist
+syconium
+vaquita
+skybox
+business lunch
+gusher
+curacao
+palometa
+Diapsida
+light diet
+sourdine
+thorny amaranth
+potato fern
+cartridge extractor
+peshmerga
+chaffweed
+tahoka daisy
+hematologist
+massage parlor
+diverging lens
+breadroot
+papyrus
+amarelle
+cover plate
+hubbard squash
+cryptomonad
+whitetail prairie dog
+rabbit burrow
+orthochromatic film
+goncalo alves
+Chile bonito
+tent-caterpillar moth
+Manila grass
+buck sergeant
+mustard seed
+crested wheatgrass
+wise guy
+asarabacca
+field pea
+bite plate
+barbasco
+heart-lung machine
+mouse-eared bat
+piping guan
+gun pendulum
+climbing onion
+fungus gnat
+Livonian
+one-hitter
+Chilean firebush
+Sonoran whipsnake
+round scad
+myelogram
+Rhodes grass
+vomitory
+roble beech
+South-African yellowwood
+molasses
+Velcro
+common calamint
+radiation pyrometer
+sketcher
+chaparral pea
+coffee stall
+Australian nettle
+bilimbi
+Khedive
+visionary
+field spaniel
+devilwood
+collimator
+Siberian spruce
+sling
+limestone salamander
+ribbon worm
+hazel
+petter
+coolant system
+artillery plant
+bailiff
+chameleon tree frog
+microsporophyll
+maiden blue-eyed Mary
+Drosophyllum lusitanicum
+cocozelle
+king post
+nailer
+knobkerrie
+tovarich
+Intelnet
+worm lizard
+drop forge
+wool grass
+brown bullhead
+anthropoid
+vitamin A2
+creche
+hickory nut
+whiffletree
+deipnosophist
+Muskhogean
+masochist
+hypsometer
+gliricidia
+complexifier
+wild licorice
+reconnaissance vehicle
+fives
+beefsteak plant
+eastern dasyure
+bookworm
+crested coral root
+wire recorder
+cinnamon vine
+bubble
+Newfoundland dwarf birch
+spruce bark beetle
+teetotaler
+fad diet
+ascus
+spicebush
+African coral snake
+soft-shell crab
+Postum
+packhorse
+sand cherry
+cricket-bat willow
+middlebrow
+Hungarian sauce
+buffalo clover
+jimsonweed
+latanier
+stablemate
+jumper
+zoospore
+smooth woodsia
+flowering ash
+unilateralist
+lomatia
+flapper
+wild cotton
+Siberian wall flower
+probe
+bankrupt
+blockade
+lemon geranium
+fig leaf
+basic point defense missile system
+clack valve
+buttinsky
+ingenue
+mountain everlasting
+zebra-tailed lizard
+shaving-brush tree
+evergreen huckleberry
+core drill
+lugworm
+Cashmere goat
+doorjamb
+minelayer
+student center
+horsehair
+European dewberry
+white broom
+arenavirus
+eastern poison oak
+rye ergot
+Tupi
+tensiometer
+fleawort
+coquille
+icing sugar
+junior lightweight
+Doppler radar
+mahuang
+candlepin
+chambermaid
+evergreen blueberry
+Eton jacket
+parvis
+solleret
+molded salad
+malvasia
+birth-control campaigner
+nonagon
+backswimmer
+ogee
+bowstring
+salt marsh mallow
+trapezohedron
+hoary willow
+speech therapist
+Zinjanthropus
+core
+red-backed mouse
+eptatretus
+mossy saxifrage
+Aristotelian
+Thessalonian
+searing iron
+bifocals
+falangist
+field pea
+packsaddle
+lay reader
+hoecake
+cuboid
+white maire
+iceman
+lobscouse
+neckcloth
+color-blind person
+Chinese holly
+assemblyman
+white-lipped peccary
+kava
+plastron
+crab louse
+hook wrench
+trailing four o'clock
+junior
+skilly
+internet
+tonguefish
+footman
+sub-assembly
+evangelist
+track
+bench lathe
+desk clerk
+scalded milk
+chamois cloth
+American marten
+chachka
+nondescript
+pellitory-of-the-wall
+swamp candles
+procurator
+cuddy
+farkleberry
+mountain male fern
+trawl
+dual scan display
+fish meal
+prospector
+convener
+guano bat
+ant shrike
+picture rail
+sand rat
+gynophore
+quilting
+sleeper
+summer savory
+Cotoneaster dammeri
+smooth sumac
+slumgullion
+suite
+catalufa
+spherule
+lean-to tent
+gryphon
+gas shell
+short iron
+sweet sultan
+dewberry
+Victoria plum
+American water shrew
+X-ray tube
+macebearer
+green arrow arum
+abbe
+poke milkweed
+atheist
+Fosbury flop
+Ord kangaroo rat
+moldboard
+wheat germ
+explosive trace detection
+whippoorwill
+examiner
+tallyman
+Crookes tube
+wild peach
+fringed grass of Parnassus
+Crookes radiometer
+Atlantic croaker
+lobster stew
+spring cress
+maggot
+pacer
+hydra
+Zionist
+pepper tree
+diamante
+baize
+Rhodesian man
+county agent
+respecter
+Anglican
+antimacassar
+materialist
+Swan River everlasting
+cloud grass
+toll line
+C battery
+chinese mustard
+grass poly
+warming pan
+seasonal worker
+common sickle pine
+bathysphere
+elegant Habenaria
+card table
+Chilean cedar
+brocket
+collimator
+malted milk
+avadavat
+fire marshall
+coloratura
+yellow spiny daisy
+fingerstall
+narrow-leaf penstemon
+indigo broom
+pillwort
+bearberry willow
+Etonian
+certified milk
+climbing bird's nest fern
+field coil
+wrist pad
+parr
+kaoliang
+engelmannia
+stocker
+satrap
+Nantua
+spearfish
+caper tree
+gold-tail moth
+mountain chinchilla
+sea milkwort
+westerner
+army cutworm
+leaf-nosed snake
+neurobiologist
+xeranthemum
+Eastern silvery aster
+ecclesiastical attire
+caper
+Ukranian
+bight
+button fern
+peach pit
+oligodendrocyte
+maar
+digitigrade mammal
+streptobacillus
+sensitometer
+preemptor
+oat
+bell foundry
+crown lens
+rock purslane
+Junior
+Brazilian guava
+kicksorter
+Ohio goldenrod
+red mulberry
+King's Counsel
+mountain four o'clock
+fairy shrimp
+fell
+oca
+sycophant
+chantry
+dermatoglyphic
+bomblet
+keyhole saw
+hangman's rope
+little barley
+lion-jaw forceps
+giant scrambling fern
+popper
+dulcimer
+Espagnole
+tardigrade
+smooth-haired fox terrier
+bullbrier
+rewa-rewa
+Japanese poinsettia
+trunk line
+cannery
+helminth
+American spikenard
+prince's-feather
+arthroscope
+ginger
+aphakic
+pilot bit
+angle of refraction
+low-sodium diet
+wall creeper
+growler
+praetorium
+Hall of Fame
+soupfin shark
+Molotov cocktail
+kaffir boom
+stitcher
+sawwort
+flagellant
+Atlantic herring
+Reticulitermes lucifugus
+voltaic pile
+snowy orchid
+southern flounder
+skysail
+osage orange
+white mullein
+lined snake
+tolu tree
+poliovirus
+foreman
+burette
+jackass bat
+invigilator
+electromyograph
+acarus
+presence chamber
+columbian mammoth
+hyacinth bean
+pilot
+meadow jumping mouse
+Maria
+outskirts
+aftershaft
+Queensland nut
+schlockmeister
+plainsman
+afropavo
+scarlet musk flower
+five spice powder
+gunboat
+multiplex
+Dutch uncle
+louvered window
+chimney corner
+cuscus
+psalmist
+Vichy water
+signer
+amphiuma
+harmonizer
+authorizer
+naiad
+control rod
+stentor
+mountain bladder fern
+gig
+read-only memory chip
+assenter
+vixen
+hermitage
+corn dab
+locksmith
+cockspur thorn
+variable-pitch propeller
+western red-backed salamander
+dolman sleeve
+cultist
+sweet buckeye
+pine vole
+Peking man
+mountain swamp gum
+nimblewill
+bethel
+aye-aye
+lancelet
+teff
+Alpine celery pine
+endive
+nipa palm
+center of curvature
+seeder
+Sabahan
+sea scallop
+social secretary
+gorgonzola
+western chokecherry
+misanthrope
+rabbitweed
+beggarman
+button fern
+white mallee
+doodia
+mastiff bat
+roper
+prima donna
+blanc
+holding pen
+fingerling
+skyhook
+flophouse
+steam chest
+crystallized ginger
+acrocarp
+horse pistol
+true mahogany
+costmary
+ballistic galvanometer
+jaunting car
+bartonia
+rep
+mandibular notch
+bubble and squeak
+umpire
+fringed loosestrife
+bear oak
+ski jump
+staggerbush
+plumcot
+thermal reactor
+field brome
+bodkin
+jackknife-fish
+malope
+writing arm
+gold fern
+Stayman Winesap
+merlon
+eclectic
+fluxmeter
+emeritus
+imam
+drum
+pop tent
+capital ship
+subalpine larch
+flail
+Lorenzo dressing
+tomboy
+eastern woodrat
+warrantee
+Pacific spiny dogfish
+sheepshead porgy
+farthingale
+Cryptoprocta
+power loom
+communicant
+howdah
+ectomorph
+false foxglove
+basset horn
+odd-pinnate leaf
+Wisconsin weeping willow
+Queensland bottletree
+dampener
+corbel arch
+silent butler
+Circe
+town clerk
+Japanese chestnut
+bloodwood tree
+switcher
+cup hook
+spreader
+rice rat
+straightedge
+traverser
+fluid drive
+Spanish paprika
+sour milk
+poison camas
+bean dip
+card table
+vinegar fly
+vizier
+electric-discharge lamp
+purple rock brake
+dynamo
+Japanese snowbell
+Grindelia robusta
+neuroglia
+safflower seed
+coronet
+frown line
+Renaissance man
+Steller's sea cow
+book scorpion
+isosceles triangle
+arthritic
+spherical triangle
+kangaroo mouse
+garden orache
+stemless hymenoxys
+titi
+out-basket
+gent
+columnea
+mint sauce
+mouthbreeder
+Liebig condenser
+cheerer
+assegai
+stickler
+Merostomata
+dimmer
+grey poplar
+common heath
+scorzonera
+glory hole
+Blackfoot
+oil slick
+musketeer
+apple geranium
+daisyleaf grape fern
+gas furnace
+bijugate leaf
+Arabist
+star-thistle
+hand throttle
+huckleberry oak
+lift pump
+maulstick
+Rome Beauty
+Newburg sauce
+pit
+volunteer
+Baldwin
+ark
+Asian horseshoe crab
+black calla
+marlinespike
+Gentianopsid procera
+guinea gold vine
+tucker-bag
+desk sergeant
+piezometer
+migrator
+keelson
+executrix
+sackcloth
+onion smut
+buckboard
+substitute
+pudge
+mess
+cinchona
+intervenor
+gravimeter
+pederast
+censor
+gastroenterologist
+cutlassfish
+launch
+demerara
+Diegueno
+bog bilberry
+aglet
+soda fountain
+crank call
+harpoon gun
+ribbon fern
+Gurkha
+output device
+epilating wax
+greasewood
+water horehound
+return key
+fairy swallow
+spatulate leaf
+culverin
+leptocephalus
+kleptomaniac
+barley water
+bleeding tooth
+Cheyenne
+maleberry
+limber
+tapenade
+whorled aster
+toe
+revenant
+lap joint
+vein
+truant
+florest's cineraria
+morning dress
+trichodesmium
+nightshirt
+element of a cylinder
+shopaholic
+section hand
+electrodynamometer
+Guadalupe cypress
+rosebud
+racist
+avaram
+keeled garlic
+Alaska rein orchid
+orange toast
+cunner
+dipstick
+Neolentinus ponderosus
+bulbil
+charlotte
+pull-through
+header
+Manduca quinquemaculata
+persona grata
+elegist
+cafe royale
+scup
+semanticist
+wood sage
+field magnet
+tundra
+bay myrtle
+alluvial flat
+arrowleaf groundsel
+celtuce
+baryon
+must
+entrant
+othonna
+pied-a-terre
+liza
+sticky aster
+grasshopper mouse
+prison guard
+tire iron
+bomb rack
+Spanish American
+sheltered workshop
+turfing daisy
+backbone
+tangle orchid
+creeping willow
+dumb bomb
+horse cassia
+barosaur
+Yavapai
+shrimp Newburg
+peanut worm
+dwarf chinkapin oak
+corchorus
+brick cheese
+by-catch
+stover
+Urnula craterium
+clasp
+Kekchi
+alpine coltsfoot
+soybean future
+altar wine
+ripping chisel
+encephalogram
+mountain spleenwort
+transferee
+remoulade sauce
+American rock brake
+stenographer
+read/write head
+loblolly
+ground
+powdered mustard
+brake band
+sea dahlia
+freak
+proconsul
+Coffey still
+Sivapithecus
+pellitory
+palm cat
+skew arch
+American angelica tree
+vigilante
+candelilla
+andryala
+amarelle
+swiftlet
+petcock
+associate professor
+sclerite
+open circuit
+Virginia crownbeard
+Last Supper
+button tree
+scyphozoan
+margate
+mercury cell
+horsewhip
+water scorpion
+companionway
+drop cloth
+Amhara
+miraculous food
+pro-lifer
+embryologist
+Creole
+bombazine
+Indian blackwood
+cubeb
+trace detector
+gros point
+main-topsail
+meringue kiss
+spree killer
+capstone
+specimen bottle
+woolly apple aphid
+silverweed
+American barberry
+gallfly
+European bog asphodel
+northern flying squirrel
+alliterator
+Old Catholic
+heliograph
+Pteris cretica
+tippler
+pump well
+allspice
+balancer
+scarlet bugler
+lantern fly
+white prairie aster
+krummhorn
+robin's plantain
+Pacific sardine
+patty-pan
+decaffeinated coffee
+western saxifrage
+warrantee
+colorimeter
+ball bearing
+makomako
+foot
+troika
+apricot sauce
+data multiplexer
+rose-root
+sound film
+Northern dewberry
+water hickory
+swing door
+spastic
+Oligoporus leucospongia
+botulinus
+tamale pie
+Sagittarius
+muff
+spicebush
+petiolule
+pump action
+Parry's pinyon
+split-pea
+rudder blade
+princess royal
+wormseed mustard
+honey guide
+pip-squeak
+fin keel
+foretop
+cyrilla
+Navaho
+melanocyte
+deist
+silver tree
+citrus whitefly
+Morrow's honeysuckle
+green peach aphid
+longanberry
+call-board
+wild yam
+novelist
+toothed spurge
+alienee
+pond apple
+allspice
+Carolina lupine
+Jack of all trades
+white false indigo
+boiled dinner
+princewood
+sailor's-choice
+false bracken
+microbrewery
+black grama
+tutee
+brickkiln
+sea raven
+guesser
+wirework
+European lemming
+thyrse
+plains lemon monarda
+milo
+shunt
+spotted cowbane
+anchovy sauce
+grande dame
+Maryland golden aster
+Chinese puzzle
+boarfish
+burweed marsh elder
+defense contractor
+nitric bacteria
+Belgian hare
+beach plum
+conformal projection
+sand fly
+steering linkage
+quickset
+Mahayanist
+Geiger tube
+loudmouth
+Lancastrian
+brownie mix
+ex-spouse
+deltoid leaf
+Shasta salamander
+rabbet joint
+purple anise
+garibaldi
+gebang palm
+bladderpod
+Host
+great bowerbird
+string cheese
+spinning jenny
+drift net
+matriarch
+guar
+bitter betch
+panda car
+mess
+plains pocket mouse
+scarlet wisteria tree
+deerberry
+reamer
+homing torpedo
+molehill
+stockyard
+reniform leaf
+rag
+symmetry
+Texas star
+lerot
+pickle relish
+three-seeded mercury
+cotter pin
+ice-cream bean
+farmyard
+bar magnet
+hansom
+prickle cell
+renal cortex
+pest
+Ultrasuede
+sailing master
+brougham
+wastrel
+amboina pine
+Canary Island hare's foot fern
+ninepin ball
+southwestern lip fern
+usherette
+lemon drop
+star begonia
+weeds
+saltworks
+Persian melon
+corbina
+medusa
+bucksaw
+Gibson girl
+diameter
+American twinflower
+kino
+clear liquid diet
+angiocardiogram
+wetter
+oyster cracker
+yellowfin mojarra
+wild parsley
+life tenant
+broom closet
+Corynebacterium diphtheriae
+square shooter
+bedwetter
+ball-and-socket joint
+nonsolid color
+Salmonella typhimurium
+buffel grass
+hip pad
+subaltern
+heliothis moth
+trail boss
+hayloft
+Francisella
+primordial dwarf
+cock-a-leekie
+sugarplum
+propulsion system
+tyrolean
+Carib
+salai
+ketembilla
+ironclad
+cornhusk
+heckler
+multistage rocket
+north island edelweiss
+Chaldean
+twenty-two pistol
+Francophobe
+scofflaw
+sickle feather
+screw bean
+sea squill
+Scopolia carniolica
+agglomerator
+western holly fern
+presenter
+straight pin
+Myxine glutinosa
+Colbert
+clover-leaf roll
+war paint
+bird's-eye bush
+longfin mako
+running suit
+arrow wood
+margrave
+blue fleabane
+dracontium
+plastron
+chimney swift
+child prodigy
+commissar
+turtle soup
+postulant
+archaebacteria
+snakefly
+Pitot tube
+chap
+smilo
+Malthusian
+French roof
+worm wheel
+gulag
+pointed-leaf maple
+pull-off
+Cathaya
+American green toad
+ball cartridge
+infiltrator
+snowfield
+crotchet
+auxiliary pump
+bearnaise
+galax
+chaenactis
+olympic salamander
+sundowner
+cows' milk
+beach plum
+moss-trooper
+Arabidopsis thaliana
+cat's-claw
+bog rosemary
+ribier
+book agent
+bumper jack
+beefwood
+monk's cloth
+alpine bearberry
+climbing fumitory
+cucking stool
+puka
+Piltdown man
+property man
+discharge lamp
+X chromosome
+knobble
+lobster Newburg
+herbalist
+sunray
+golden saxifrage
+leopard cat
+muffle
+stonewort
+blancmange
+intraocular lens
+trepan
+desert mariposa tulip
+plume poppy
+Dane
+martynia
+shaver
+white milkweed
+napu
+tansy-leaved rocket
+abortus
+telemeter
+tansy mustard
+harpy
+honeysuckle
+ironworks
+testacean
+Tartuffe
+silvervine
+Sihasapa
+surface gauge
+western blind snake
+paramyxovirus
+Icelander
+bird louse
+stockbroker belt
+test-tube baby
+ague root
+little golden zinnia
+dietician
+elephant's-foot
+dirty bomb
+sailing warship
+brier
+tinter
+Connemara heath
+potato fungus
+bait casting
+decagon
+rosefish
+die
+high-pass filter
+solitaire
+widow's walk
+goldthread
+Tudor
+trews
+orange pekoe
+ninon
+soda jerk
+sump
+flying carpet
+burial garment
+oblanceolate leaf
+press gallery
+Shintoist
+three-centered arch
+spreading pogonia
+Moro
+foxtail orchid
+Ghanian
+dry kiln
+thane
+naranjilla
+bitter pea
+American bugbane
+apron string
+oyster fish
+Port Jackson fig
+prize winner
+high-water mark
+Oneida
+smoking room
+potato skin
+charge d'affaires
+gantlet
+amyloid plaque
+barmbrack
+mate
+arrow leaved aster
+handbarrow
+horned screamer
+virago
+linoleum knife
+rattlesnake root
+K ration
+reset
+foot brake
+red coral
+good guy
+aberrant
+lavalava
+poleax
+garden webworm
+sneezer
+mountain heath
+American dog violet
+eolith
+chimneysweeper
+matriarch
+smalltooth sawfish
+sea mouse
+tubercle bacillus
+superconducting supercollider
+Abney level
+darnel
+gherkin
+celery salt
+Tungus
+pulasan
+oriflamme
+death camp
+redhorse
+apprehender
+scion
+selectwoman
+pentahedron
+principal
+old school tie
+slice bar
+chanar
+pimento butter
+wailer
+zero
+mescal
+rosebud orchid
+stone bramble
+Jarvik heart
+NOC
+pitchman
+rat cheese
+strawberry tomato
+dwarf golden chinkapin
+landau
+tocsin
+ampulla
+scratcher
+crab Louis
+ginseng
+ripcord
+polluter
+tensiometer
+eyewitness
+aalii
+Oregon crab apple
+conservator
+day jessamine
+hexahedron
+suture
+tippet
+linsey-woolsey
+vernal witch hazel
+stainer
+egocentric
+canistel
+nudger
+shipping agent
+shortleaf pine
+battle sight
+cheese spread
+weeder
+incendiary bomb
+honeyflower
+stovepipe iron
+stepper
+hellgrammiate
+votary
+aflatoxin
+arquebus
+impulse turbine
+pipewort
+garrote
+glow lamp
+pigsticking
+blood clam
+surface search radar
+Bolshevik
+platen
+chariot
+Gentianopsis thermalis
+water level
+quandong
+catalytic cracker
+giant foxtail
+nut butter
+drainplug
+holdover
+coastguardsman
+Secretary of Health and Human Services
+Seeing Eye dog
+American plaice
+coquilles Saint-Jacques
+christella
+medium
+clingfish
+lally
+light-o'-love
+Gentianopsis detonsa
+taper file
+signal detection
+trip wire
+lignosae
+receiver
+sedan
+mud puppy
+corn sugar
+Philippine mahogany
+magnetic pole
+jointed rush
+trapper's tea
+Dorking
+welcome wagon
+clammyweed
+guard
+false azalea
+convalescent
+babassu
+dedicated file server
+colossus
+air search radar
+marquess
+straight flute
+sand stargazer
+sea catfish
+rosilla
+ripsaw
+Bermuda onion
+peach sauce
+sagebrush mariposa tulip
+yashmak
+Virginia mallow
+erose leaf
+sand blackberry
+boulevardier
+forester
+choragus
+onion mildew
+threadfin
+winged pea
+sugar daddy
+rotary press
+styracosaur
+rathskeller
+Japanese millet
+anchorite
+coral drops
+false gavial
+eastern pipistrel
+cheese press
+Chinese primrose
+pamperer
+real estate broker
+power worker
+breeder reactor
+nutcracker
+piano wire
+cushaw
+Sinanthropus
+firebreak
+kelp greenling
+herba impia
+toll call
+yoke
+bird fancier
+evening-snow
+fever tree
+reed meadow grass
+flanker back
+toggle bolt
+Santa Cruz cypress
+carbonnade flamande
+northern dune tansy
+mikado
+millettia
+forty-five
+court
+icepick
+holm oak
+Japanese angelica tree
+Pacific cod
+cant hook
+urologist
+spelt
+lekvar
+enologist
+Mediterranean flour moth
+prickly-edged leaf
+Spanish grunt
+dune cycling
+frostweed
+whisperer
+tucker
+Roman wormwood
+counterterrorist
+woolly alder aphid
+Nuttall oak
+snail butter
+threshing floor
+motley
+forge
+water mold
+mummichog
+sulfur paintbrush
+head
+walking delegate
+jujube
+peachleaf willow
+Christmas bells
+valley pocket gopher
+bear's-paw fern
+Lanthanotus borneensis
+pearl hominy
+placeman
+swage block
+offerer
+stargazer
+jeweler's glass
+male chauvinist
+crossbar
+Oktoberfest
+tamarau
+micronutrient
+large-leaved aster
+tasset
+tepary bean
+sausage curl
+ivy
+snob
+roller towel
+wood meadowgrass
+archil
+padrone
+prairie rocket
+tongueflower
+kidney fern
+Carolina buckthorn
+sea island cotton
+landscape architect
+realist
+oyabun
+mother hen
+ostracoderm
+esker
+heliophila
+nympholept
+shining clubmoss
+press agent
+clam dip
+Djiboutian
+white currant
+codfish ball
+hand cheese
+kraal
+trident
+conventicle
+bacteroid
+Indian plantain
+quandong
+kola nut
+signor
+theater light
+musk clover
+canistel
+silent partner
+steel-wool pad
+diggings
+affluent
+sightreader
+John Doe
+arrowworm
+goatsfoot
+guardroom
+wild cinnamon
+kaffir boom
+ink eraser
+yardie
+industrialist
+sea lily
+polarimeter
+Polistes annularis
+western big-eared bat
+omnivore
+Ted
+horsecloth
+crab cocktail
+vacuum chamber
+flower-of-an-hour
+bilge
+poleax
+neolith
+Montezuma
+plum-yew
+welfare case
+trave
+pipe bomb
+shading
+Centigrade thermometer
+bangalore torpedo
+celery top pine
+nuclear rocket
+fowling piece
+anti-Semite
+landscape
+derris
+bush honeysuckle
+Mediterranean water shrew
+ticket collector
+masked shrew
+white dipladenia
+Savoyard
+bondman
+tempter
+pygmy cypress
+pentathlete
+thruster
+usurper
+Arminian
+yerba buena
+ice field
+ichthyosaurus
+sackcloth
+bean tostada
+Oxbridge
+Pteropus hypomelanus
+thinker
+bank robber
+ape-man
+thurifer
+knawel
+mule fat
+hot spot
+hairy-legged vampire bat
+night raven
+hook and eye
+crocodile bird
+skunkweed
+beaver rat
+cypress sedge
+florida selaginella
+April fool
+Jonah crab
+glass wool
+corkwood
+dwarf elder
+hinging post
+gentile
+Brazilian trumpeter
+witch doctor
+thermograph
+pink shower
+Mao jacket
+capelin
+parang
+bradawl
+stooper
+jewel orchid
+citrange
+oarswoman
+Macedonian
+particolored buckeye
+pachycephalosaur
+satinwood
+Chinese brown sauce
+peep sight
+straight man
+quandong
+chamois cress
+nonfat dry milk
+rosin bag
+Leiden jar
+Grimes' golden
+spirillum
+grass vetch
+carillonneur
+downy wood mint
+melon ball
+sweet calabash
+chlamydospore
+bombshell
+sidewall
+sprig
+Indian button fern
+globe pepper
+rough-stemmed goldenrod
+bocconia
+bubble chamber
+sand dab
+plum-fruited yew
+aecium
+marrowfat pea
+hobbyist
+whipper-in
+salad burnet
+neckband
+Tangier pea
+sauce Louis
+salad burnet
+artist's loft
+koumiss
+Nazarene
+cutter
+scrim
+drape
+crab-eating dog
+deckhand
+bedroll
+gaff
+stifler
+pink lady
+great plains paintbrush
+patternmaker
+yoke
+caryophyllaceous plant
+angrecum
+quadriplegic
+grid
+genlisea
+aspic
+water table
+junket
+signore
+Mutillidae
+proprioceptor
+pivoting window
+Indian poke
+synchroscope
+trichion
+tarahumara frog
+proctoscope
+abomination
+purslane speedwell
+breast drill
+Japanese barberry
+mandrake root
+breakable
+salon
+American watercress
+take-up
+entrenchment
+cocktail sauce
+Scotch asphodel
+borough
+matchmaker
+Seneca snakeroot
+pointsman
+psephologist
+clustered poppy mallow
+onion thrips
+nuclear-powered ship
+organizer
+deciduous holly
+balsam willow
+enzymologist
+caraway
+drip loop
+dog laurel
+Orangeman
+sapsago
+polymath
+backplate
+leathery grape fern
+modillion
+two-timer
+handhold
+consignee
+white stringybark
+nettle-leaved goosefoot
+bookmaker
+disk drive
+doliolum
+palmist
+packinghouse
+Spandau
+Whipple's penstemon
+sword grass
+ribbon development
+pearly-shelled mussel
+winter heliotrope
+rogue elephant
+deck tennis
+Venus's flower basket
+football
+shim
+boatswain
+blinks
+armored catfish
+hooded seal
+outdoorswoman
+water starwort
+upholstery needle
+pleurodont
+silky anteater
+cornmeal
+lead-in
+redfin pickerel
+horse balm
+Rydberg's penstemon
+cascade transformer
+fly poison
+Volvaria bombycina
+broad-leaved twayblade
+pastry cart
+body plethysmograph
+waverer
+hardware store
+Parry's penstemon
+European sanicle
+strawberry geranium
+cross-examiner
+head gate
+devil's tongue
+hemiepiphyte
+pine hyacinth
+machmeter
+spirit lamp
+field judge
+Rock Cornish
+mayhaw
+Sassenach
+bog pimpernel
+parallel interface
+crowberry
+roach
+Aegyptopithecus
+cajan pea
+lapboard
+cryostat
+magnetic storage medium
+white yam
+Lombard
+rhymer
+bed and breakfast
+bunya bunya
+rifle grenade
+caterer
+collared pika
+anti-submarine rocket
+bookkeeper
+Western mountain ash
+profit taker
+fruitlet
+Knowlton's cactus
+infernal
+beefsteak begonia
+lunula
+emulsion
+intermediate wheatgrass
+titfer
+European sea bream
+bigeye scad
+yak butter
+kola
+cone pepper
+plesiosaur
+ragwort
+penal colony
+black carpet beetle
+lubber's hole
+Stapelias asterias
+yard marker
+balloon bomb
+Scythian lamb
+armory
+selsyn
+marblewood
+spirula
+fatalist
+hash head
+armiger
+Dom Pedro
+white-chinned petrel
+ballast
+orthopter
+greater water parsnip
+clutch
+largeleaf holly
+Evangelist
+king whiting
+tuna fish salad
+Muscadet
+surpriser
+jumping bristletail
+proportional counter tube
+Hamburg parsley
+obstructionist
+pus-forming bacteria
+creep feed
+stepbrother
+janissary
+control freak
+trusty
+trepan
+King William pine
+orthicon
+geological horizon
+molecular biologist
+violator
+pariah dog
+Austrian
+conciliator
+Fauntleroy
+packing needle
+mazer
+Saturday night special
+leucocytozoan
+coastal rein orchid
+whirligig beetle
+capitalist
+breeches buoy
+clubroot fungus
+meadow spikemoss
+Kichai
+Spanish lime
+land office
+camera obscura
+strafer
+purple-stemmed aster
+lusterware
+valve
+Roman nettle
+isthmus
+breadstuff
+sealskin
+maleo
+bilge keel
+carissa plum
+fish fly
+kolkhoznik
+heath pea
+cowage
+hog sucker
+Sam Browne belt
+inductor
+wild licorice
+Socotra begonia
+supernumerary
+Angle
+red shrubby penstemon
+toilet kit
+tawse
+sweet bells
+kawaka
+brown soft scale
+lyssavirus
+betting shop
+double-crosser
+macrotus
+climbing hempweed
+poi
+strip mall
+deadhead
+petit juror
+tract housing
+American mistletoe
+lace-flower vine
+precipitator
+endoparasite
+hairy wood mint
+red snapper
+Victorian
+hog peanut
+line of heart
+opossum shrimp
+plumcot
+Bavarian blue
+slops
+light flyweight
+oregano
+sand myrtle
+pocket battleship
+curator
+narc
+hydraulic cement
+plains pocket gopher
+closed loop
+pluralist
+molter
+Christmas bush
+snuffers
+slender knapweed
+footwall
+plage
+caper tree
+red siskin
+tender
+boat train
+tipster
+low-pass filter
+student lamp
+morosoph
+japonica
+bellows
+herald
+oyster plant
+savory
+mail
+computational linguist
+blade
+winter crookneck squash
+zoomastigote
+blackmailer
+richweed
+dialectician
+genip
+plumed scorpionfish
+jet bridge
+thermopile
+billy buttons
+Brule
+millwright
+Arenaviridae
+Jones' penstemon
+monastic habit
+genipap fruit
+burnous
+dairyman
+top
+crab-eating raccoon
+quadrangular prism
+pilot burner
+weeder
+trireme
+boy wonder
+man of letters
+Catawba
+high-muck-a-muck
+light circuit
+bloodworm
+lappet caterpillar
+half-and-half
+office boy
+saddle stitch
+mistletoe cactus
+false chamomile
+Catalina cherry
+workhouse
+Jamaica quassia
+britches
+tooth shell
+reduction gear
+carrot pudding
+balsam woolly aphid
+handspike
+aioli
+silver hake
+flour bin
+wireman
+gas-cooled reactor
+aficionado
+plus fours
+gitano
+gene chip
+oilfish
+ingenue
+tulip orchid
+late purple aster
+pork and beans
+envoy
+lemon extract
+milk bar
+black huckleberry
+ground roller
+Connecticuter
+siderocyte
+Jacquard loom
+chub
+meat safe
+stock cube
+Australian sumac
+purple sanicle
+tailless tenrec
+dog wrench
+rainbow cactus
+castor bean
+scintillation counter
+eohippus
+pawnbroker
+gauge boson
+front man
+early warning radar
+bearing wall
+Bourbon
+sandwichman
+sild
+gravelweed
+perishable
+cembra nut
+riflebird
+quicksand
+slate
+sweeper
+ship-towed long-range acoustic detection system
+defamer
+president
+vitamin K3
+challis
+tanekaha
+bloodwort
+grenadier
+quietist
+Zairese
+fucker
+foremother
+gesneria
+print buffer
+salsilla
+fissiped mammal
+fender
+consulate
+acidophilus milk
+Southern dewberry
+snail darter
+Panama redwood tree
+dehydrated food
+bush willow
+coffee fungus
+Sinologist
+Mesoamerican
+hood
+large civet
+deck-house
+cyborg
+smuggler
+pepper sauce
+cyberpunk
+Grand Inquisitor
+persona non grata
+haggis
+weeping tree broom
+stop bath
+modifier
+coyol
+conodont
+yellow giant hyssop
+optical pyrometer
+Carolina moonseed
+marinade
+aspartame
+false wintergreen
+cityscape
+philter
+turnery
+hemiplegic
+chuck-will's-widow
+vower
+track star
+myrtaceous tree
+small civet
+intelligence analyst
+dogcart
+yardman
+cross bit
+holometabola
+platen
+sweet cassava
+Comstock mealybug
+acute angle
+Communist
+alcohol thermometer
+mountain hollyhock
+Mead's milkweed
+highjacker
+Townes
+congou
+Astrophyton muricatum
+lazybones
+roughcast
+pressure cabin
+clinch
+cinnamon
+smoke bomb
+quandong
+tout
+office-bearer
+punctum
+efficiency apartment
+Queensland hemp
+Ceylon bowstring hemp
+newswoman
+vermin
+fetid bugbane
+grantee
+sanitary landfill
+gluten-free diet
+clabber
+shillelagh
+white lettuce
+sweet coltsfoot
+beggar's lice
+samite
+loser
+flasher
+water star grass
+banana passion fruit
+translator
+artificial kidney
+Virginia creeper
+American crab apple
+cactus mouse
+nebbish
+Ligustrum obtusifolium
+vox angelica
+stringer
+hunter
+know-it-all
+scene painter
+invalidator
+jungle cock
+basilica
+coriander
+California single-leaf pinyon
+miles gloriosus
+pina cloth
+law agent
+scarlet fritillary
+keurboom
+bailor
+ramjet
+seedling
+rib joint pliers
+ways
+picket ship
+Surgeon General
+wasabi
+marquis
+clostridium perfringens
+Helvella sulcata
+furnace lining
+kingwood
+painted sandgrouse
+plain wanderer
+Indian madder
+silver screen
+bailey
+dwarf spurge
+Serbian
+ball-buster
+shaheed
+Platte River penstemon
+tensiometer
+mute
+nymphomaniac
+Yokuts
+arroyo willow
+whipping post
+class act
+load
+winged everlasting
+periodontist
+diarist
+robber frog
+diestock
+curry powder
+ratchet wheel
+store detective
+hog plum
+prune whip
+shortwave diathermy machine
+Anabaptist
+post chaise
+Kennan
+bean caper
+delegate
+orderly sergeant
+celtuce
+jumping bean
+gowen cypress
+puddingwife
+registered nurse
+West Saxon
+rosita
+gun room
+nasotracheal tube
+matchboard
+flagship
+Boswellia carteri
+Canadian pondweed
+wonder boy
+sewer rat
+dimetrodon
+pantograph
+marsh bellflower
+angoumois moth
+slippery dick
+woolly indris
+creme de cacao
+dulciana
+Jewess
+Macadamia integrifolia
+least shrew
+don
+diffuser
+black-stem spleenwort
+grouseberry
+goniometer
+annotator
+sticktight
+gossip columnist
+speechwriter
+capon
+rock hind
+Liederkranz
+chandler
+echocardiograph
+sidelight
+fisher
+brocket
+New Zealand daisybush
+northern sea robin
+roller bandage
+peachick
+pellet
+pichi
+plug fuse
+spark coil
+buckwheat
+brood bitch
+wedgie
+dwarf bilberry
+filigree
+bull
+queen
+dodo
+Salish
+denticulate leaf
+Western silvery aster
+Prima
+magnetic bottle
+fetterbush
+process-server
+nainsook
+mythologist
+Piedmont glacier
+hammerhead
+niggard
+Mound Builder
+Kui
+Nootka
+highbinder
+passenger pigeon
+oblong
+tickler coil
+agnostic
+succorer
+esophagogastric junction
+dressmaker's model
+bombshell
+social anthropologist
+gildhall
+orpine
+pterodactyl
+bristly sarsaparilla
+Lane's Prince Albert
+hognose bat
+salesgirl
+lubricating system
+electric catfish
+wrap
+Jacksonian
+chard
+cherry laurel
+foreground
+beadsman
+Kolam
+amniote
+frozen pudding
+acid head
+poor box
+depositor
+coattail
+pallas's sandgrouse
+mason's level
+English lady crab
+skeg
+cruel plant
+petrolatum gauze
+tuna
+swivel
+stock-in-trade
+perisperm
+civies
+Phyllostomus hastatus
+alienor
+Verdicchio
+guard's van
+onion butter
+moviegoer
+planter
+citrange
+box huckleberry
+iconoscope
+familiar
+helmsman
+baby boomer
+constructivist
+American bog asphodel
+whorled caraway
+simple pendulum
+viviparous eelpout
+Job's tears
+holdout
+sour salt
+poison bush
+dusky-footed woodrat
+golden algae
+granadilla tree
+telethermometer
+crossbar
+thrift
+African bowstring hemp
+dog in the manger
+hayrack
+gold-crowned kinglet
+prolonge
+doge
+pencil
+discount house
+mulligan stew
+Nonconformist
+virologist
+gregarine
+facula
+rocket scientist
+thin-shelled mussel
+oospore
+annual salt-marsh aster
+Afrikaner
+metallic
+julienne
+culverin
+cleavers
+Berliner
+mudhif
+thorny skate
+brown lemming
+yellow colicroot
+cooling system
+large-leaved magnolia
+free-reed
+canyonside
+preemptor
+stake
+Brucella
+anti-G suit
+pleximeter
+squire
+salsilla
+write-in candidate
+lowland burrowing treefrog
+flare star
+dwarf hulsea
+jobber
+mangel-wurzel
+quagga
+red-skinned onion
+positive pole
+Pteropus capestratus
+jug wine
+stomacher
+standee
+bladder worm
+hakim
+house of correction
+pelisse
+golden mole
+temporizer
+rose apple
+drove
+umbrellawort
+holy of holies
+lawyer cane
+smooth lip fern
+anode
+astatic coils
+zip gun
+feverroot
+self-heal
+expansion bit
+salt reed grass
+field pussytoes
+nutmeg hickory
+cryptic coloration
+Venus's girdle
+Hunkpapa
+Calostoma cinnabarina
+raft foundation
+May apple
+pygmy mouse
+prokaryote
+yellow-green algae
+Bermuda maidenhair
+withdrawer
+coelacanth
+Elliott's goldenrod
+driftfish
+epicyclic train
+bowl
+swamp dewberry
+corbel step
+sadist
+party line
+anti-American
+mining engineer
+Amur privet
+conidium
+Gastrocybe lateritia
+lithia water
+chaulmoogra
+Rough Rider
+Guinea pepper
+glade mallow
+pitcher sage
+whitecup
+shanghaier
+low St Andrew's cross
+phonologist
+cocobolo
+perfumery
+visor
+prison chaplain
+belt
+ingesta
+literary critic
+industrial watercourse
+reckoner
+pursuer
+Kinetoscope
+Kuiper belt
+hyperope
+raw recruit
+Galiella rufa
+Prince Albert yew
+slit trench
+usher
+tenderfoot
+white-rayed mule's ears
+browser
+piccalilli
+bran
+giant buttercup
+water lobelia
+arborescent plant
+echinus
+dryland blueberry
+struggler
+platyctenean
+Geordie
+domatium
+twenty-two rifle
+keteleeria
+sports editor
+chorus girl
+Hakham
+dry-bulb thermometer
+onomancer
+double-bitted ax
+Girondist
+bottle bank
+thyrsopteris
+bandwagon
+star anise
+armored car
+dhawa
+Bessemer converter
+mutineer
+paradise tree
+tupik
+centurion
+mending
+chowchow
+margrave
+International Grandmaster
+African hemp
+catafalque
+leptodactylid frog
+forcemeat
+tank shell
+pill
+barbecue pit
+worthy
+lady's maid
+evergreen
+Jesuit
+South American staghorn
+rigger
+suffragan
+imperialist
+spherical angle
+grey lemming
+kitchen police
+tree swift
+coliphage
+archaist
+Conservative
+rib
+exegete
+Mendelian
+tragedian
+steerage
+Paleo-American
+obeche
+garlic
+grapefruit peel
+accommodating lens implant
+half blood
+barrelfish
+catgut
+lanceolate spleenwort
+hardliner
+frieze
+name dropper
+carrack
+huckster
+onion bread
+magnetic head
+pease pudding
+raisin moth
+negative magnetic pole
+electroencephalograph
+bunji-bunji
+synchroflash
+Mornay sauce
+stencil
+winged pigweed
+Nesselrode
+MEDLINE
+licorice
+mainspring
+melilotus
+duke
+experimenter
+Napier's bones
+four-minute man
+pin-tailed sandgrouse
+toolmaker
+pogge
+rootstock
+baton
+pricket
+creeping snowberry
+anomalops
+nester
+devourer
+apolemia
+Maricopa
+pine-barren sandwort
+larvacean
+American dewberry
+escalope de veau Orloff
+gig
+myrtle
+pitsaw
+Lutheran
+fish house punch
+gnathostome
+intake valve
+molasses taffy
+clammy locust
+vandyke beard
+Atlantic tripletail
+planktonic algae
+estradiol patch
+flummery
+cytologist
+sectarian
+oil meal
+tomtate
+mediterranean anchovy
+aspersorium
+argonaut
+porkholt
+sheep ked
+algometer
+Adventist
+false goatsbeard
+snake polypody
+streetwalker
+shelver
+adoptee
+highflier
+pitch apple
+prairie rocket
+fish mousse
+viroid
+deckle
+manila tamarind
+observer's meridian
+pincurl clip
+hardstem bulrush
+gossamer
+brookweed
+Druze
+hug-me-tight
+accessory before the fact
+oilman
+Comanche
+Marine
+bedlamite
+Chinese cork oak
+squawbush
+false miterwort
+walk-on
+Cynopterus sphinx
+brandyball
+landlubber
+arrowroot
+cape forget-me-not
+galoot
+tabor pipe
+checker
+Levant cotton
+paddle box
+murderess
+smirker
+fuddy-duddy
+withdrawer
+newel
+shade
+pink disease fungus
+tipu
+sweet sultan
+aeronautical engineer
+tall gallberry holly
+acarid
+conqueror
+cucumber
+film director
+ordinary
+salon
+closet queen
+allegorizer
+tonka bean
+flax rust
+negative pole
+dagame
+dentist's drill
+mock privet
+micropyle
+contributor
+dark horse
+climbing corydalis
+cosmotron
+land agent
+Big Blue
+Cynic
+tassel flower
+lyrate leaf
+Minuteman
+Dutch-elm beetle
+Hessian fly
+flower girl
+West-sider
+window dresser
+skinny-dipper
+whitebait
+out-and-outer
+hooker
+amicus curiae
+jack
+camwood
+stockist
+black root rot fungus
+Jamaica dogwood
+diaphragm
+Holocentrus ascensionis
+roselle
+black maire
+Pygmy
+fumigator
+lame duck
+mudder
+hydraulic transmission
+conning tower
+phoronid
+batfish
+hearing dog
+monohybrid
+whaling gun
+Cockcroft and Walton accelerator
+allemande
+seasoner
+epileptic
+ammonia clock
+Young Turk
+lanseh tree
+urceole
+cafe noir
+poster girl
+Oglala
+deadeye
+manna lichen
+positive pole
+cinch
+lyricist
+hermaphrodite
+kidney stone
+dilator
+number one
+frotteur
+kaffir bread
+fish knife
+tarragon
+adjuster
+potato wart fungus
+Florida pompano
+conductor
+corbie gable
+rounders
+Catha edulis
+bender
+recruit
+Uruguayan
+subject
+bunghole
+day boarder
+pocketed bat
+Oxonian
+owner-occupier
+yellow-leaf sickle pine
+devisor
+exhibitor
+looking glass
+shipowner
+crooked-stemmed aster
+calico
+dash-pot
+defilade
+Confucian
+egg-and-dart
+irreligionist
+lepton
+self-rising flour
+diving bell
+Brahui
+shop girl
+maximum and minimum thermometer
+Dalmatian laburnum
+correspondent
+subduer
+nonperson
+Reaumur thermometer
+rough-leaved aster
+jacksmelt
+pinfold
+magneto
+ex-wife
+round-leaved rein orchid
+purloo
+American shrew mole
+sweet sand verbena
+polymastigote
+outfitter
+curled leaf pondweed
+Italian dressing
+borderer
+ambusher
+geebung
+four-stroke engine
+small ship
+homeopath
+gynostegium
+political prisoner
+Radiigera fuscogleba
+ensiform leaf
+rhizoctinia
+satyr orchid
+rue
+bouillon cube
+flip
+prophyll
+tilefish
+periselene
+prima donna
+choker
+laminar flow clean room
+Hooker's orchid
+fish joint
+mombin
+remover
+array
+coelostat
+autophyte
+consigner
+Damaraland mole rat
+gasman
+public works
+lye hominy
+pearlfish
+piassava palm
+Georgian
+uxoricide
+confessor
+community center
+epigone
+tagger
+abrading stone
+cryoscope
+nautch girl
+reliever
+Cartesian
+Indian beech
+protoplasmic astrocyte
+fundamentalist
+mustard sauce
+crank
+houselights
+five-point bishop's cap
+comedienne
+triangle
+presentist
+beaugregory
+dreamer
+Wave
+blue mockingbird
+Barbados gooseberry
+ten-spined stickleback
+papoose
+silky pocket mouse
+holdup man
+agent-in-place
+suspensory
+emigrant
+ropemaker
+bookbinder
+jumby bead
+undershrub
+Killarney fern
+sheep bell
+city slicker
+equerry
+pea crab
+down-and-out
+blackmouth bass
+shirtmaker
+lister
+UNIX guru
+snipefish
+gimbal
+maisonette
+haircloth
+Ranvier's nodes
+pigmy talinum
+tribute album
+msasa
+hydroxide ion
+madame
+four-pounder
+prophet
+sloganeer
+field-effect transistor
+nude mouse
+canteen
+Calostoma lutescens
+buteonine
+sunlamp
+Uruguay potato
+Spanish tamarind
+Prince-of-Wales'-heath
+kishke
+caprifig
+chincapin
+hegari
+alarmist
+bathtub gin
+astatic galvanometer
+Calostoma ravenelii
+marang
+tussah
+coin box
+bugleweed
+hacker
+frontal eminence
+timekeeper
+shunt
+bicycle clip
+mustang mint
+caesium clock
+hospice
+glenoid fossa
+archpriest
+ex-gambler
+incrustation
+salvager
+Donatist
+violator
+lamb succory
+hygroscope
+oilbird
+sharptail mola
+showplace
+corn syrup
+flashlight fish
+pulse timing circuit
+anchovy paste
+fascista
+chigoe
+divan
+Druid
+squad room
+Huntingdon elm
+buffalo carpet beetle
+carper
+corn lily
+goats' milk
+assault gun
+cockpit
+Lochaber ax
+Visigoth
+occupier
+Basotho
+criminologist
+spindle
+Rosicrucian
+Cornishwoman
+musk kangaroo
+artificial skin
+pandurate leaf
+Parkia javanica
+roundhead
+tea-like drink
+basidiolichen
+unguiculate
+stepmother
+Nauruan
+gutta-percha tree
+bloodberry
+scarlet haw
+marupa
+censor
+algebraist
+pelvimeter
+whaler
+cowhide
+paparazzo
+biochip
+internationalist
+Yukon white birch
+hangar queen
+chlamydia
+puttee
+Pipturus albidus
+pearly razorfish
+sea moss
+burglar
+hoary golden bush
+colter
+drey
+bushman's poison
+maxillaria
+gnetum
+deadeye
+shittah
+swamp oak
+damper block
+deepwater squirrelfish
+truffle
+cangue
+paleolith
+lawyerbush
+sorehead
+Texas snowbell
+Tremella reticulata
+quarter
+keelboat
+dimity
+whiner
+Wagnerian
+myrmecophyte
+frontierswoman
+pyrometric cone
+big-tree plum
+puppy
+galbulus
+hod
+winceyette
+carriage wrench
+dictostylium
+farmland
+infanticide
+Jacob's rod
+threadfish
+monocline
+inamorato
+leaf miner
+purple cress
+passer
+black-fronted bush shrike
+silverrod
+bootmaker
+segregate
+captive
+Edmontonia
+spherometer
+television transmitter
+bladder
+Saratoga spittlebug
+dynamometer
+lodge
+smooth darling pea
+Cossack
+wake-up call
+Olmec
+sutler
+molasses kiss
+corner post
+rattlesnake weed
+yardmaster
+adder
+rhinoscope
+referral
+ulster
+pantaloon
+counterspy
+gadgeteer
+heart cherry
+hospital chaplain
+Clydesdale terrier
+plank-bed
+Russian thistle
+actinometer
+dyspeptic
+common wolffia
+firewall
+seidel
+potato moth
+soapweed
+seif dune
+thill
+cosmographer
+absolver
+halberdier
+fire control system
+kai apple
+bastard pennyroyal
+Big Brother
+broadcast journalist
+Albatrellus dispansus
+citrophilous mealybug
+split end
+nickel-iron battery
+Newtonian
+gas maser
+thumbstall
+anaspid
+dusky-footed wood rat
+latitudinarian
+flatbrod
+schizocarp
+niqaabi
+flight surgeon
+gyrocompass
+Polyporus tenuiculus
+Utopian
+mailboat
+spellbinder
+undercoat
+cassareep
+typical jerboa
+photocathode
+katharometer
+bight
+fur-piece
+penetration bomb
+malik
+Siberian millet
+nanomia
+Wykehamist
+tosser
+gyrostabilizer
+microwave diathermy machine
+crystal set
+wall
+legatee
+alfalfa
+angwantibo
+charioteer
+piano maker
+African mahogany
+Morlett's crocodile
+taro
+parallel circuit
+cush-cush
+etymologist
+matriculate
+neem seed
+cornerback
+kingfisher daisy
+redoubt
+blastomycete
+peplos
+costumier
+publican
+tobogganist
+semolina
+myrmidon
+parricide
+gymslip
+whoremaster
+cryptocoryne
+header
+platitudinarian
+barleycorn
+spiral bandage
+reciter
+abecedarian
+dance
+wrymouth
+bilberry
+Liopelma hamiltoni
+streamliner
+Fordhooks
+fixed phagocyte
+radiobiologist
+neurologist
+Selkup
+dollarfish
+cascade everlasting
+acrodont
+boarhound
+midstream
+theatrical producer
+abhorrer
+goldsmith
+photometrist
+Anglo-Saxon
+rugel's plantain
+sable
+workmate
+ferule
+ankus
+earleaved umbrella tree
+Passamaquody
+timucu
+Mexican pocket mouse
+yerba santa
+Rochon prism
+apomict
+monocarp
+sweet unicorn plant
+common winterberry holly
+archivist
+drypis
+paretic
+fly-by-night
+white-berry yew
+Schoolman
+blue cheese dressing
+vintager
+squatter
+Euphausia pacifica
+corrugated fastener
+yellow henbane
+Croesus
+almoner
+analphabet
+acoustic delay line
+sheep frog
+workhouse
+horseleech
+venturer
+pond-scum parasite
+Pyrenees daisy
+plagiarist
+Truncocolumella citrina
+rerebrace
+group captain
+caddis fly
+hot-rock penstemon
+kanzu
+stylopodium
+slopseller
+rauli beech
+starter
+ootid
+statesman
+distributor cam
+ascot
+falcon-gentle
+Duplicidentata
+spotted antbird
+heliometer
+false buckthorn
+Allegheny spurge
+Cavalier
+dart
+photocoagulator
+master-at-arms
+kei apple
+baldachin
+crapshooter
+gametangium
+white hope
+chipotle
+spike heath
+Scotch woodcock
+Florentine
+differential analyzer
+Mitrula elegans
+wet cell
+basil balm
+Circassian
+corn cake
+bouncing betty
+vice-regent
+lagerphone
+ketembilla
+whoremaster
+fork
+tetrasporangium
+trifler
+pill head
+life-support system
+quartermaster general
+tobacco thrips
+officeholder
+teredo
+toyon
+Sundacarpus amara
+Phytophthora citrophthora
+naif
+lobbyist
+alligator wrench
+bully
+heavy
+toxicologist
+radio chassis
+waterdog
+drive line
+kaffir cat
+foster-brother
+breakax
+curette
+traditionalist
+pipe vise
+striped button quail
+gawker
+homeotherm
+schoolyard
+battue
+kalansuwa
+deviationist
+Bolshevik
+transponder
+pungapung
+iron
+Eyeish
+roccella
+manglietia
+Tory
+print seller
+Texas Ranger
+otter shrew
+seconder
+shellflower
+outlier
+party man
+wold
+hayfork
+oncologist
+framer
+co-beneficiary
+ocean pout
+Chinese angelica
+scrimshaw
+air attache
+false gromwell
+standing press
+fringepod
+specifier
+automatic choke
+durum
+yenta
+wassailer
+reeler
+signora
+beach pancake
+common booklouse
+pellicle
+backroom boy
+den mother
+associate
+Unitarian
+gambist
+brookweed
+clubroom
+cat's-tail
+playboy
+self-registering thermometer
+doorstop
+bennet
+yak's milk
+escapee
+quail bush
+sparge pipe
+coast boykinia
+screw key
+half gainer
+aggravator
+cotton mill
+tailor's chalk
+free agent
+cotton mouse
+deadhead
+bunny
+turpentine camphor weed
+amaranth
+ceratodus
+red lauan
+beam-ends
+thermograph
+wally
+Toda
+handrest
+commissary
+oak-leaved goosefoot
+manufacturer
+voicer
+Jafnea semitosta
+bench hook
+finder
+abyssal zone
+rabbitwood
+Hercules'-club
+epicarp
+declinometer
+camp follower
+signaler
+Australian pea
+putz
+qadi
+banded palm civet
+egg timer
+regnellidium
+calisaya
+harvestfish
+sound spectrograph
+side-wheeler
+glomerule
+woolly rhinoceros
+Black Muslim
+horticulturist
+ornithomimid
+cryometer
+battlefront
+gametophyte
+airmailer
+cuisse
+nakedwood
+baseball club
+slasher
+anise
+leatherleaf
+leatherjacket
+horned pondweed
+gofer
+Saigon cinnamon
+barong
+blazer
+twinkler
+skeleton shrimp
+dial
+floorwalker
+case shot
+flannelbush
+cultivated parsnip
+Jane Doe
+few-flowered leek
+nogging
+placer miner
+muzzler
+serge
+lion-hunter
+capulin
+Wandering Jew
+ascidian tadpole
+hispid pocket mouse
+southern spatterdock
+milk wagon
+junior middleweight
+duck sauce
+promycelium
+protozoologist
+cascade liquefier
+tout
+longheaded thimbleweed
+charcoal burner
+footage
+slop
+bridge agent
+miller's-thumb
+Job's comforter
+marocain
+tanker plane
+lancetfish
+knocker
+toque
+ordinand
+umbrella bird
+favorite son
+hare's-foot bristle fern
+business traveler
+plotter
+Asiatic shrew mole
+tallyman
+stump
+Paleacrita vernata
+index register
+mortgagee
+accuser
+codger
+sand rat
+seaside centaury
+chiropractor
+Florida smoothhound
+dwarf sperm whale
+T-man
+sannup
+dragonhead
+numdah
+alkali grass
+gynobase
+kymograph
+ascolichen
+steward
+waterline
+Nazarene
+filer
+lapidary
+muncher
+wincey
+scyphus
+question master
+besieger
+worldling
+docent
+facing
+atmometer
+quern
+puerpera
+three-decker
+calliope
+wild red oat
+bailee
+flame pea
+cattle cake
+theist
+yellowtail flounder
+cosmopolitan
+rocket engineer
+vouchee
+Turkoman
+hard sauce
+Thousand Island dressing
+assayer
+messmate
+mutilator
+oyster bar
+flame tokay
+countess
+prairie mimosa
+microsporangium
+cotter
+townsman
+paring
+fundraiser
+simperer
+Comrade
+orlop deck
+power takeoff
+cattleship
+prime meridian
+Javanthropus
+scriptorium
+curandera
+long-clawed prawn
+maestro
+paster
+potato tuberworm
+chachka
+junkyard
+cape yellowwood
+reentrant polygon
+Liberian coffee
+restaurateur
+Alsophila pometaria
+Jekyll and Hyde
+electrophorus
+Scomberomorus maculatus
+manipulator
+gromwell
+chicken provencale
+ashram
+mangel-wurzel
+shamrock pea
+dossal
+adducer
+erection
+Mysore thorn
+smoothie
+chufa
+brace wrench
+victualer
+litterer
+linstock
+Protium guianense
+palfrey
+banyan
+klieg light
+dangleberry
+trooper
+yaupon holly
+quitter
+tradescant's aster
+nullipara
+melter
+devil's urn
+ghostwriter
+mouth
+analogist
+Creek
+sonic depth finder
+fucker
+locus of infection
+mortician
+esophageal smear
+locum tenens
+conic projection
+aroeira blanca
+bellarmine
+night porter
+automobile mechanic
+codpiece
+Munro
+cottonweed
+scoinson arch
+tinderbox
+frozen food
+waterproofing
+Egyptian henbane
+lash
+transactor
+American smooth dogfish
+existentialist
+grabber
+Sonoran lyre snake
+Rufous rubber cup
+colors
+weekend warrior
+power user
+perennial salt marsh aster
+Puritan
+Apalachicola rosemary
+anecdotist
+tosser
+moth bean
+agnostic
+stretcher-bearer
+browntail
+optimist
+brewer's mole
+astronomy satellite
+flat file
+rust mite
+tuberous plant
+day laborer
+buster
+trapezoid
+bevatron
+nonresident
+Streptomyces griseus
+mangosteen
+customer agent
+hero worshiper
+suicide bomber
+procellariiform seabird
+archiannelid
+reaction turbine
+distortionist
+bulldog wrench
+grainy club
+scalp
+Aztec
+scow
+globigerina
+pedant
+heartleaf manzanita
+kanchil
+low gallberry holly
+containment
+scandalmonger
+rose-colored starling
+Powhatan
+addle-head
+Chilean rimu
+Atlantic sea bream
+arthrospore
+ramrod
+root climber
+Kalapooia
+roach clip
+Schreiber's aster
+horseradish
+albino
+Kshatriya
+trombidiid
+blasting cap
+body pad
+brachium
+shallu
+Wynnea americana
+slender centaury
+munj
+upset
+wind tunnel
+cottonwick
+airing cupboard
+pepper shrub
+ambrosia
+languisher
+chosen
+rose globe lily
+purple apricot
+costia
+sloop of war
+sultana
+frontlet
+booster
+sargassum fish
+broad-leaved montia
+rifleman bird
+stillroom
+amoralist
+enginery
+meter maid
+fitment
+southern bog lemming
+Athenian
+clincher
+cusk-eel
+mackintosh
+diaphone
+corozo
+Australian reed grass
+czar
+spongioblast
+Eurafrican
+airhead
+Shahaptian
+Roman
+pollinium
+tourist class
+halogeton
+stamper
+emperor
+malingerer
+tramp steamer
+Peziza domicilina
+pilot cloth
+stenopterygius
+cost accountant
+Queen's Counsel
+wine-maker's yeast
+poppet
+cage
+rowlock arch
+landgrave
+bearded wheatgrass
+stink bell
+quaker
+undesirable
+algarroba
+resistance pyrometer
+exorcist
+carib wood
+guvnor
+border patrolman
+bathhouse
+licenser
+headman
+rentier
+pine spittlebug
+nut-leaved screw tree
+paraduodenal smear
+apron
+necker
+smilax
+Alpine besseya
+creeper
+castle
+ground bait
+Queensland grass-cloth plant
+sclerotium
+great yellowcress
+fat farm
+Stoker
+hoop snake
+elixir of life
+Trotskyite
+home buyer
+wheat berry
+Tutelo
+semi-climber
+utahraptor
+wet-bulb thermometer
+packrat
+hygrophyte
+darter
+sketcher
+refiner
+camlet
+midgrass
+compound
+tarwood
+Colorado River hemp
+toiler
+abstractor
+override
+dwarf pipefish
+plodder
+briefcase computer
+trunk hose
+brown butter
+valve-in-head engine
+cymbalist
+explosive detection system
+horsewoman
+boutonniere
+chinchilla
+venerator
+scourer
+exarch
+cohune nut
+ayapana
+continental divide
+cosigner
+stalker
+pyxie
+Genet
+Macowanites americanus
+open-hearth furnace
+water chestnut
+American frogbit
+tarwood
+cutter
+scout
+burr
+upsetter
+grist
+tagasaste
+mouthpiece
+palette
+rattan
+letterman
+Exmoor
+Methodist
+eelblenny
+marasca
+slide valve
+ventilation
+saddle hackle
+Yakut
+flux applicator
+air traveler
+murder suspect
+Cynocephalus variegatus
+idolizer
+Surgeon General
+nutlet
+little-head snakeweed
+germ tube
+fellow traveler
+raceabout
+commodore
+czar
+anamorphosis
+treelet
+girlfriend
+groundnut
+sideline
+giant star grass
+goffer
+spark lever
+oubliette
+processor
+tare
+plodder
+extremist
+Kipp's apparatus
+gripsack
+S wrench
+viscountess
+bridgehead
+cascarilla
+Asiatic flying squirrel
+protoceratops
+equerry
+difflugia
+princeling
+moonlighter
+aspergill
+common flat pea
+Utahan
+imperial mammoth
+plantain-leaved pussytoes
+Boott's goldenrod
+bootlegger
+reed pipe
+runcinate leaf
+onion salt
+nitrite bacterium
+introvert
+duck
+New World opah
+goliath frog
+heterostracan
+disrupting explosive
+haggler
+candlenut
+false bugbane
+returning officer
+eudiometer
+ship-breaker
+metazoan
+mandarin
+patka
+gill net
+cavity wall
+armilla
+rainmaker
+dealfish
+orderly
+gleaner
+muffin man
+house sitter
+alto
+sand devil's claw
+vulcanizer
+appendicularia
+boron chamber
+chess
+bitok
+anchovy butter
+dropout
+flour mill
+bishop
+escapist
+scapegrace
+stanhope
+smooth winterberry holly
+upstager
+stalking-horse
+pony
+prairie gourd
+parabolic mirror
+Polaroid
+slasher
+lap
+garlic butter
+sendee
+German millet
+hairy honeysuckle
+Swiss canton
+Scleroderma flavidium
+red goatfish
+telegraph plant
+Jungian
+garment cutter
+mallee hen
+stranger
+driveway
+schooner
+Paiute
+cisco
+trestlework
+sipper
+shanny
+romanticist
+Molly Miller
+mountain rimu
+odd-leg caliper
+bitumastic
+Western Australia coral pea
+labor coach
+latchkey
+harpulla
+solitary pussytoes
+chop-suey greens
+coil
+guimpe
+diapir
+Osage
+gutta-percha tree
+giant eland
+reticulation
+garden huckleberry
+quick study
+Hudson bay collared lemming
+coreligionist
+Lancastrian
+stumblebum
+omnirange
+seersucker
+Potemkin village
+Rhea Silvia
+symphonist
+bolti
+jaw
+jaconet
+page
+visiting fireman
+haulm
+p-n junction
+landlubber
+yellow jack
+triclinium
+souari
+invader
+fire walker
+Luddite
+Plott hound
+hemming-stitch
+winker
+star-duckweed
+craniometer
+Arabidopsis lyrata
+loser
+cypripedia
+trimmer arch
+cookhouse
+pink fivecorner
+transfer
+ringleader
+northern pocket gopher
+moke
+blockade-runner
+cyclostome
+web-spinning mite
+Whig
+transcriber
+malahini
+sawyer
+patent log
+paca
+tragedian
+thermojunction
+soffit
+black buffalo
+foreigner
+applecart
+brit
+pole horse
+white mullet
+argentinosaur
+Homo soloensis
+bounty hunter
+decumary
+hand
+paperboy
+Smitane
+windowpane
+Java man
+Wynnea sparassoides
+prune
+middy
+lilliputian
+sorb
+pyrostat
+guest worker
+hold
+leaseholder
+vegan
+humanist
+salinometer
+piton
+zygospore
+means
+night rider
+tetraspore
+archipelago
+radiomicrometer
+nitpicker
+spot weld
+slicer
+girlfriend
+round-tailed muskrat
+cock's eggs
+Shavian
+bay
+nuclear chemist
+planetarium
+hiccup nut
+Marylander
+milling
+microsporidian
+brown cup
+Strophanthus kombe
+little skate
+emancipator
+paperhanger
+archaeopteryx
+maigre
+Mastotermes electrodominicus
+procurer
+seizure-alert dog
+homeboy
+cotton strain
+mute
+siren
+spearnose bat
+phenacomys
+gayal
+arsenal
+pitchfork
+Port Jackson heath
+cud
+magnetic core memory
+interferometer
+water jacket
+account executive
+hodoscope
+window oyster
+sudatorium
+syncopator
+loment
+hypertensive
+smoothbark
+Geogia holly
+nailhead
+African holly
+musette
+chafeweed
+microflora
+derrick
+strawworm
+shogun
+queen post
+jerboa kangaroo
+columbo
+royal
+sourball
+solenogaster
+cardsharp
+Homo habilis
+intaglio
+calf's-foot jelly
+flotsam
+skirret
+baronduki
+chyme
+shovel hat
+Welsh
+monoplane flying fish
+groundfish
+tablet-armed chair
+swan dive
+Indian club
+colonial
+cassiri
+pyramidal tent
+praya
+silk vine
+time clock
+button snakeroot
+clews
+Korean lespedeza
+diffuser
+ripping bar
+puttyroot
+nipple shield
+headpin
+juneberry holly
+hub-and-spoke
+laver
+weldment
+plain flour
+hoosegow
+dudeen
+grey skate
+line of life
+mung
+arariba
+Newtown Wonder
+rock candy
+side chapel
+castor sugar
+narrow-leaved white-topped aster
+babassu nut
+puka
+rings
+catchall
+heat shield
+caroche
+oxbow
+Australian coral snake
+tapper
+sporangiophore
+fenugreek
+spruce gall aphid
+gouache
+cutoff
+private line
+pod
+cargo hatch
+nailhead
+penile implant
+geophyte
+small-leaved linden
+deepwater pipefish
+paperhanger
+hairy spurge
+Persian lamb
+subtropics
+feed grain
+clarence
+nonparticipant
+scorpioid cyme
+hand brake
+tiller
+Geglossaceae
+albacore
+monochrome
+goa bean
+bur
+tongue worm
+psittacosaur
+frog's lettuce
+pectoral
+terreplein
+light filter
+fishpaste
+dry point
+grison
+feterita
+dolichocephalic
+oenomel
+stretcher
+swag
+cheval-de-frise
+mountain beaver
+scammony
+discus
+leatherleaf saxifrage
+wharf rat
+Dominique
+pelycosaur
+depth gauge
+bishop
+archespore
+true anomaly
+silver jenny
+mercy seat
+kelp
+oviraptorid
+acrylic
+Chinese pea tree
+meat house
+bilge well
+Temperate Zone
+whale louse
+balbriggan
+briefcase bomb
+pump-type pliers
+oil
+sour gourd
+Jewbush
+lunette
+Chinese paddlefish
+pyxidium
+beechnut
+calabar bean
+grugru nut
+gib
+blunt file
+cataphyll
+megasporangium
+blockbuster
+sliding seat
+hogchoker
+calceus
+Connarus guianensis
+honest woman
+survivor
+second balcony
+tempera
+Calvary clover
+murine
+outwork
+bogy
+elephant's-foot
+conning tower
+set square
+blackfly
+stirk
+Streptomyces erythreus
+blade
+goldfield
+snowball
+mortal enemy
+waltzer
+shoal
+galley
+hitchhiker
+lithophyte
+brisling
+scauper
+esophagoscope
+grab
+subtracter
+philosopher
+duplex apartment
+southeastern pocket gopher
+bonduc nut
+reverberatory furnace
+grader
+lamp house
+northern bog lemming
+brotula
+ornithopod
+ptyalith
+obturator
+perpetual motion machine
+range pole
+Africander
+curvet
+daisy print wheel
+floor
+collector
+mutant
+tuck
+fore-and-after
+senega
+buckler mustard
+louvar
+Tarsius glis
+culdoscope
+Spanish fly
+steering gear
+hatchet man
+museum
+saw set
+cambric tea
+comber
+thermohydrometer
+stationer
+chalcis fly
+bryanthus
+whipstitch
+harvest mite
+rock gunnel
+time bomb
+rariora
+pigfish
+apetalous flower
+head shop
+horned whiff
+sandpit
+tachistoscope
+sundries
+taffrail
+caller
+monofocal lens implant
+Dover's powder
+souari nut
+crowbait
+render
+Shakespearian
+hagberry
+megatherian
+magus
+hatchel
+mangabey
+garroter
+piedmont
+cope
+barrio
+psychodid
+rigout
+distributor
+croupier's rake
+sarcenet
+narrow-leaved water plantain
+treenail
+biped
+lanternfish
+overdrive
+barndoor skate
+picket boat
+amber lily
+sawpit
+sand lance
+bucket shop
+common beech
+laundry truck
+surtout
+grogram
+tampion
+escape hatch
+interstice
+shop bell
+snake mackerel
+nakedwood
+tumbrel
+mericarp
+mountain paca
+cab
+big board
+cringle
+eusporangium
+shipping room
+coal chute
+dumbwaiter
+Smiledon californicus
+man-at-arms
+cartridge
+deinonychus
+pigeon pea
+screw bean
+spectacle
+floorboard
+cutting room
+low-warp-loom
+proconsul
+sabicu
+genipap
+clapper
+aquifer
+archaeornis
+belly flop
+Protium heptaphyllum
+interrupter
+high-warp loom
+knight
+wiper
+impression
+poker
+Pithecanthropus
+sable
+guardroom
+tenter
+wellhead
+raja
+strickle
+sodomite
+mountebank
+sand leek
+Barbados gooseberry
+shuffler
+sensory fiber
+crab-eating opossum
+etching
+rare bird
+scup
+fagot
+negro vine
+hutment
+droshky
+nephoscope
+lady chapel
+cutty stool
+release
+vestiture
+buff
+standard
+Tabernacle
+vascular ray
+snakewood
+chlorobenzylidenemalononitrile
+limnologist
+pouched mole
+microwave linear accelerator
+Mastotermes darwiniensis
+wind tee
+orange bat
+open sight
+carpospore
+rampant arch
+sabbatia
+cursor
+post exchange
+bellpull
+center
+cyclostyle
+canonist
+pygmy sperm whale
+moa
+king
+pass-through
+angioscope
+marrow
+hookup
+revetment
+acanthocephalan
+good Samaritan
+apatosaur
+web spinner
+dixie
+ommastrephes
+crossbench
+candlewick
+jack
+light arm
+caisson
+kaki
+quandong nut
+Meuniere butter
+coquilla nut
+mast
+black
+twitterer
+bluethroat pikeblenny
+shielding
+water-shield
+urolith
+elephant bird
+clearway
+dark lantern
+schizopetalon
+press
+Nazi
+sugarberry
+Maltese
+stevedore
+hair shirt
+party wall
+gainer
+blackheart
+nothosaur
+cavetto
+evergreen bittersweet
+chemical bomb
+calpac
+shingle
+turnpike
+animator
+heaver
+isoclinic line
+death knell
+liner
+anathema
+aerie
+razorback
+Ichyostega
+pound net
+French dressing
+mottle
+yard
+string tie
+bell seat
+brattice
+battering ram
+sierra
+pompon
+vertex
+stomach pump
+electrolytic cell
+escolar
+telpher
+roadhouse
+cerecloth
+tartare sauce
+letter case
+whale sucker
+hob
+teg
+canvas
+strickle
+hectograph
+Cartagena bark
+mail car
+acinus
+freedom rider
+bread sauce
+picture window
+Rhizopogon idahoensis
+pinprick
+mass spectrograph
+ringer
+devil's cigar
+salad cream
+marlberry
+airbrake
+Clark cell
+yellow-throated marten
+wire gauge
+dinoceras
+aba
+harpoon log
+plate rail
+mustard plaster
+coelophysis
+journal box
+puce
+ballcock
+quartering
+izar
+clinid
+whirler
+turnspit
+deathbed
+pottle
+shot
+doubler
+Coryphaena equisetis
+English sole
+chicken feed
+borrow pit
+mylodontid
+Chilean nut
+Kundt's tube
+ling
+asthenosphere
+reseau
+death seat
+immovable bandage
+peppermint patty
+lecturer
+electron multiplier
+bear claw
+hyacinth
+beaked salmon
+toehold
+scull
+snowball
+gangsaw
+fiber
+oxeye
+lashing
+Beckman thermometer
+fence
+cantilever
+dinner theater
+Reynard
+jag
+umbrella plant
+camera lucida
+beaver
+slug
+yellowfin croaker
+Sibley tent
+rat-tail file
+anchovy pear
+soldier
+cackler
+chaise
+Pitot-static tube
+minniebush
+Episcopalian
+oleaster
+ejaculator
+wavy-leaved aster
+knight
+rack
+real storage
+magnetic mine
+cocoa plum
+vesiculovirus
+birch leaf miner
+water chevrotain
+rudapithecus
+torpedo tube
+itch mite
+warren
+loft
+washerman
+terrace
+nonstarter
+shit
+platform
+caudex
+ground control
+Ostariophysi
+slopshop
+Peruvian cotton
+crystal oscillator
+plastic bomb
+bar bit
+watering cart
+Asiatic sweetleaf
+artificial joint
+chariot
+casern
+charge-exchange accelerator
+display adapter
+hornpipe
+honey bell
+planula
+Nephthytis afzelii
+hame
+ranter
+trachodon
+synchrocyclotron
+splasher
+heterotroph
+Nicol prism
+Himalayan rhubarb
+headfast
+put-put
+bitter almond
+parr
+scantling
+power breakfast
+madder
+Catalpa bignioides
+rose of Jericho
+spark chamber
+rhizome
+beard worm
+supper club
+negro peach
+keratoscope
+wain
+apple aphid
+planking
+time-delay measuring instrument
+sternpost
+sicklepod
+lake bed
+gatherer
+monotype
+dead-man's float
+poison gas
+dicynodont
+organism
+cell
+person
+animal
+plant
+food
+artifact
+dressage
+contact sport
+outdoor sport
+gymnastics
+track and field
+jumping
+high jump
+skiing
+water sport
+swimming
+dive
+floating
+skin diving
+rowing
+boxing
+sledding
+tobogganing
+wrestling
+skating
+ice skating
+roller skating
+racing
+boat racing
+riding
+equestrian sport
+cycling
+blood sport
+hunt
+fishing
+angling
+casting
+athletic game
+outdoor game
+golf
+field game
+field hockey
+football
+American football
+ball game
+baseball
+court game
+badminton
+basketball
+tennis
+sport
+Seder
+scavenger
+bottom-feeder
+work animal
+beast of burden
+pack animal
+domestic animal
+marine animal
+female
+male
+young
+young mammal
+pup
+cub
+lion cub
+tiger cub
+microorganism
+arbovirus
+herpes
+herpes zoster
+reovirus
+moneran
+cyanobacteria
+enteric bacteria
+actinomycete
+streptomyces
+diplococcus
+parasite
+ectoparasite
+protoctist
+protozoan
+sarcodinian
+ameba
+ciliate
+alga
+brown algae
+green algae
+sporozoan
+cypriniform fish
+cyprinid
+carp
+domestic carp
+shiner
+catostomid
+buffalo fish
+cyprinodont
+killifish
+topminnow
+squirrelfish
+stickleback
+pipefish
+embryo
+fetus
+blastula
+chordate
+cephalochordate
+tunicate
+ascidian
+vertebrate
+aquatic vertebrate
+jawless vertebrate
+lamprey
+hagfish
+cartilaginous fish
+holocephalan
+chimaera
+elasmobranch
+shark
+mackerel shark
+mako
+requiem shark
+dogfish
+smooth dogfish
+spiny dogfish
+smooth hammerhead
+smalleye hammerhead
+shovelhead
+ray
+sawfish
+roughtail stingray
+butterfly ray
+eagle ray
+manta
+skate
+bird
+gamecock
+night bird
+ratite
+passerine
+oscine
+accentor
+lark
+pipit
+finch
+canary
+dark-eyed junco
+New World sparrow
+bunting
+honeycreeper
+sparrow
+grosbeak
+towhee
+weaver
+grassfinch
+tyrannid
+New World flycatcher
+kingbird
+pewee
+cotinga
+antbird
+Old World flycatcher
+thrush
+nightingale
+Old World chat
+warbler
+kinglet
+Old World warbler
+New World warbler
+flycatching warbler
+New World chat
+yellowthroat
+New World oriole
+northern oriole
+meadowlark
+New World blackbird
+grackle
+Old World oriole
+starling
+myna
+corvine bird
+crow
+Old World jay
+common European jay
+New World jay
+blue jay
+Canada jay
+Rocky Mountain jay
+nutcracker
+European magpie
+American magpie
+Australian magpie
+wren
+marsh wren
+thrasher
+New Zealand wren
+creeper
+titmouse
+black-capped chickadee
+Carolina chickadee
+swallow
+martin
+tanager
+shrike
+butcherbird
+bush shrike
+bowerbird
+European water ouzel
+American water ouzel
+vireo
+waxwing
+bird of prey
+hawk
+black kite
+swallow-tailed kite
+white-tailed kite
+harrier
+falcon
+peregrine
+caracara
+eagle
+young bird
+sea eagle
+Aegypiidae
+Old World vulture
+griffon vulture
+bearded vulture
+Egyptian vulture
+black vulture
+New World vulture
+buzzard
+condor
+Andean condor
+California condor
+black vulture
+king vulture
+owl
+horned owl
+scops owl
+amphibian
+salamander
+newt
+Pacific newt
+ambystomid
+climbing salamander
+web-toed salamander
+frog
+true frog
+true toad
+spadefoot
+tree toad
+cricket frog
+tongueless frog
+reptile
+anapsid
+diapsid
+chelonian
+turtle
+sea turtle
+ridley
+snapping turtle
+musk turtle
+diamondback terrapin
+Western box turtle
+tortoise
+soft-shelled turtle
+saurian
+lizard
+gecko
+iguanid
+spiny lizard
+fence lizard
+horned lizard
+skink
+teiid lizard
+racerunner
+plateau striped whiptail
+Chihuahuan spotted whiptail
+western whiptail
+checkered whiptail
+agamid
+moloch
+anguid lizard
+venomous lizard
+lacertid lizard
+chameleon
+monitor
+crocodilian reptile
+crocodile
+alligator
+caiman
+armored dinosaur
+ankylosaur
+bone-headed dinosaur
+ceratopsian
+hadrosaur
+saurischian
+sauropod
+theropod
+ceratosaur
+maniraptor
+synapsid
+pterosaur
+ichthyosaur
+snake
+colubrid snake
+smooth green snake
+rough green snake
+racer
+blacksnake
+whip-snake
+rat snake
+bull snake
+common kingsnake
+milk snake
+common garter snake
+ribbon snake
+Western ribbon snake
+common water snake
+water moccasin
+grass snake
+viperine grass snake
+sand snake
+lyre snake
+blind snake
+indigo snake
+constrictor
+boa
+python
+elapid
+coral snake
+coral snake
+cobra
+mamba
+black mamba
+krait
+viper
+pit viper
+rattlesnake
+timber rattlesnake
+arthropod
+arachnid
+false scorpion
+whip-scorpion
+spider
+European wolf spider
+acarine
+hard tick
+Ixodes dammini
+Ixodes neotomae
+Ixodes pacificus
+Ixodes scapularis
+sheep-tick
+Ixodes persulcatus
+Ixodes dentatus
+Ixodes spinipalpis
+wood tick
+soft tick
+mite
+trombiculid
+spider mite
+house centipede
+gallinaceous bird
+domestic fowl
+jungle fowl
+chicken
+cock
+hen
+turkey
+grouse
+European black grouse
+Asian black grouse
+blackcock
+greyhen
+red grouse
+moorhen
+greater prairie chicken
+lesser prairie chicken
+heath hen
+guan
+chachalaca
+megapode
+mallee fowl
+phasianid
+pheasant
+bobwhite
+northern bobwhite
+Old World quail
+migratory quail
+peafowl
+California quail
+Hungarian partridge
+red-legged partridge
+Greek partridge
+mountain quail
+guinea fowl
+columbiform bird
+pigeon
+dove
+turtledove
+domestic pigeon
+homing pigeon
+sandgrouse
+parrot
+cockatoo
+lory
+varied Lorikeet
+rainbow lorikeet
+parakeet
+cuculiform bird
+cuckoo
+crow pheasant
+coraciiform bird
+roller
+kingfisher
+hoopoe
+apodiform bird
+swift
+Archilochus colubris
+thornbill
+goatsucker
+piciform bird
+woodpecker
+flicker
+sapsucker
+toucanet
+trogon
+quetzal
+aquatic bird
+waterfowl
+anseriform bird
+duck
+teal
+widgeon
+sheldrake
+goldeneye
+scaup
+wood duck
+sea duck
+scoter
+merganser
+gosling
+gander
+Chinese goose
+greylag
+blue goose
+snow goose
+brant
+common brant goose
+honker
+barnacle goose
+swan
+tundra swan
+screamer
+crested screamer
+mammal
+prototherian
+monotreme
+marsupial
+opossum
+bandicoot
+kangaroo
+common wallaby
+hare wallaby
+nail-tailed wallaby
+rock wallaby
+pademelon
+tree wallaby
+rat kangaroo
+phalanger
+dasyurid marsupial
+dasyure
+placental
+calf
+buck
+insectivore
+mole
+shrew mole
+shrew
+water shrew
+tenrec
+invertebrate
+sponge
+glass sponge
+coelenterate
+Chrysaora quinquecirrha
+hydrozoan
+siphonophore
+anthozoan
+actinia
+coral
+gorgonian
+stony coral
+ctenophore
+worm
+planarian
+fluke
+liver fluke
+Fasciolopsis buski
+schistosome
+tapeworm
+echinococcus
+taenia
+common roundworm
+chicken roundworm
+pinworm
+eelworm
+vinegar eel
+trichina
+hookworm
+filaria
+Guinea worm
+annelid
+oligochaete
+polychaete
+leech
+mollusk
+scaphopod
+gastropod
+abalone
+scorpion shell
+giant conch
+edible snail
+garden snail
+brown snail
+Helix hortensis
+seasnail
+neritid
+limpet
+Hermissenda crassicornis
+cowrie
+bivalve
+clam
+quahog
+cockle
+oyster
+mussel
+marine mussel
+freshwater mussel
+scallop
+shipworm
+cephalopod
+octopod
+decapod
+squid
+crustacean
+malacostracan crustacean
+decapod crustacean
+crab
+swimming crab
+spider crab
+lobster
+true lobster
+Old World crayfish
+American crayfish
+shrimp
+prawn
+krill
+stomatopod
+mantis shrimp
+woodlouse
+pill bug
+sow bug
+sea louse
+amphipod
+copepod
+barnacle
+wading bird
+stork
+ibis
+common spoonbill
+roseate spoonbill
+heron
+egret
+night heron
+American bittern
+European bittern
+least bittern
+whooping crane
+rail
+crake
+gallinule
+purple gallinule
+coot
+great bustard
+plain turkey
+button quail
+trumpeter
+seabird
+shorebird
+plover
+turnstone
+sandpiper
+yellowlegs
+ruff
+tattler
+woodcock
+snipe
+greyback
+red-breasted snipe
+curlew
+godwit
+stilt
+stilt
+phalarope
+courser
+coastal diving bird
+larid
+gull
+tern
+jaeger
+skua
+auk
+guillemot
+murre
+puffin
+gaviiform seabird
+podicipitiform seabird
+grebe
+pelecaniform seabird
+white pelican
+Old world white pelican
+gannet
+snakebird
+sphenisciform seabird
+penguin
+pelagic bird
+wandering albatross
+black-footed albatross
+petrel
+shearwater
+storm petrel
+aquatic mammal
+cetacean
+whale
+baleen whale
+rorqual
+toothed whale
+beaked whale
+dolphin
+bottlenose dolphin
+porpoise
+sea cow
+carnivore
+pinniped mammal
+seal
+eared seal
+fur seal
+fur seal
+South American sea lion
+California sea lion
+Australian sea lion
+Steller sea lion
+earless seal
+walrus
+canine
+bitch
+dog
+cur
+toy dog
+toy spaniel
+English toy spaniel
+hunting dog
+hound
+coonhound
+dachshund
+foxhound
+wolfhound
+greyhound
+terrier
+bullterrier
+rat terrier
+Manchester terrier
+fox terrier
+wirehair
+Welsh terrier
+schnauzer
+Skye terrier
+sporting dog
+retriever
+pointer
+setter
+spaniel
+springer spaniel
+water spaniel
+working dog
+watchdog
+shepherd dog
+Belgian sheepdog
+pinscher
+Sennenhunde
+mastiff
+bulldog
+guide dog
+sled dog
+liver-spotted dalmatian
+spitz
+griffon
+corgi
+poodle
+wolf
+coydog
+wild dog
+striped hyena
+brown hyena
+spotted hyena
+aardwolf
+fox
+black fox
+silver fox
+blue fox
+feline
+cat
+domestic cat
+tom
+blue point Siamese
+wildcat
+common lynx
+Canada lynx
+bobcat
+spotted lynx
+caracal
+big cat
+leopardess
+panther
+lioness
+lionet
+Bengal tiger
+tigress
+saber-toothed tiger
+bear
+Syrian bear
+grizzly
+Alaskan brown bear
+cinnamon bear
+viverrine
+civet
+Indian mongoose
+ichneumon
+slender-tailed meerkat
+suricate
+bat
+fruit bat
+carnivorous bat
+leafnose bat
+false vampire
+vespertilian bat
+long-eared bat
+freetail
+vampire bat
+predator
+game
+game bird
+fossorial mammal
+tetrapod
+insect
+beetle
+two-spotted ladybug
+Mexican bean beetle
+Hippodamia convergens
+vedalia
+bombardier beetle
+calosoma
+searcher
+firefly
+sawyer
+pine sawyer
+flea beetle
+Colorado potato beetle
+carpet beetle
+clerid beetle
+lamellicorn beetle
+scarabaeid beetle
+scarab
+tumblebug
+dorbeetle
+June beetle
+melolonthid beetle
+elaterid beetle
+snout beetle
+boll weevil
+blister beetle
+bark beetle
+darkling beetle
+flour beetle
+seed beetle
+pea weevil
+bean weevil
+rice weevil
+louse
+flea
+dipterous insect
+gall midge
+housefly
+tsetse fly
+blowfly
+bluebottle
+greenbottle
+flesh fly
+tachina fly
+gadfly
+botfly
+human botfly
+sheep botfly
+warble fly
+horsefly
+bee fly
+fruit fly
+louse fly
+horn fly
+mosquito
+gnat
+fungus gnat
+hymenopterous insect
+drone
+worker
+honeybee
+Africanized bee
+black bee
+Carniolan bee
+Italian bee
+carpenter bee
+bumblebee
+cuckoo-bumblebee
+andrena
+Nomia melanderi
+leaf-cutting bee
+mason bee
+potter bee
+wasp
+vespid
+paper wasp
+hornet
+sphecoid wasp
+digger wasp
+chalcid fly
+sawfly
+pharaoh ant
+little black ant
+army ant
+carpenter ant
+fire ant
+wood ant
+slave ant
+Formica fusca
+slave-making ant
+sanguinary ant
+bulldog ant
+Amazon ant
+termite
+dry-wood termite
+orthopterous insect
+short-horned grasshopper
+locust
+migratory locust
+migratory grasshopper
+long-horned grasshopper
+katydid
+mormon cricket
+sand cricket
+mole cricket
+European house cricket
+field cricket
+tree cricket
+snowy tree cricket
+phasmid
+diapheromera
+oriental cockroach
+American cockroach
+Australian cockroach
+German cockroach
+giant cockroach
+praying mantis
+hemipterous insect
+leaf bug
+mirid bug
+lygus bug
+lygaeid
+coreid bug
+heteropterous insect
+water bug
+water strider
+assassin bug
+homopterous insect
+whitefly
+sweet-potato whitefly
+coccid insect
+scale insect
+soft scale
+armored scale
+mealybug
+plant louse
+aphid
+greenfly
+woolly aphid
+adelgid
+dog-day cicada
+seventeen-year locust
+spittle insect
+plant hopper
+psocopterous insect
+psocid
+booklouse
+ephemerid
+neuropteron
+green lacewing
+brown lacewing
+odonate
+trichopterous insect
+caseworm
+thysanuran insect
+bristletail
+thysanopter
+thrips
+earwig
+lepidopterous insect
+butterfly
+nymphalid
+fritillary
+emperor butterfly
+danaid
+pierid
+small white
+large white
+southern cabbage butterfly
+blue
+copper
+American copper
+hairstreak
+Strymon melinus
+moth
+tortricid
+lymantriid
+geometrid
+cankerworm
+pyralid
+tineoid
+tineid
+clothes moth
+gelechiid
+grain moth
+noctuid moth
+cutworm
+underwing
+hawkmoth
+bombycid
+saturniid
+giant silkworm moth
+silkworm
+arctiid
+lasiocampid
+tent caterpillar
+webworm
+webworm moth
+caterpillar
+bollworm
+woolly bear
+larva
+grub
+pupa
+queen
+echinoderm
+basket star
+edible sea urchin
+sand dollar
+heart urchin
+crinoid
+trepang
+lagomorph
+leporid
+rabbit
+eastern cottontail
+swamp rabbit
+marsh hare
+leveret
+European hare
+jackrabbit
+white-tailed jackrabbit
+blacktail jackrabbit
+polar hare
+snowshoe hare
+pika
+rodent
+mouse
+rat
+pocket rat
+field mouse
+brown rat
+jerboa rat
+water rat
+New World mouse
+wood mouse
+wood rat
+vole
+packrat
+Eurasian hamster
+golden hamster
+gerbil
+lemming
+pied lemming
+Old World porcupine
+brush-tailed porcupine
+long-tailed porcupine
+New World porcupine
+Canada porcupine
+pocket mouse
+kangaroo rat
+jumping mouse
+jerboa
+dormouse
+gopher
+squirrel
+tree squirrel
+ground squirrel
+prairie dog
+American flying squirrel
+groundhog
+hoary marmot
+yellowbelly marmot
+Old World beaver
+New World beaver
+cavy
+naked mole rat
+ungulate
+hyrax
+odd-toed ungulate
+equine
+horse
+foal
+colt
+male horse
+stallion
+mare
+saddle horse
+warhorse
+pony
+mustang
+bronco
+wild horse
+pony
+racehorse
+racer
+harness horse
+workhorse
+draft horse
+trotting horse
+ass
+domestic ass
+wild ass
+onager
+common zebra
+mountain zebra
+grevy's zebra
+rhinoceros
+tapir
+even-toed ungulate
+swine
+piglet
+porker
+peccary
+ruminant
+bovid
+bovine
+ox
+cattle
+bull
+cow
+beef
+Brahman
+dairy cattle
+Old World buffalo
+Indian buffalo
+carabao
+Asian wild ox
+American bison
+wisent
+sheep
+lamb
+domestic sheep
+wild sheep
+mountain sheep
+goat
+domestic goat
+wild goat
+goat antelope
+antelope
+Thomson's gazelle
+Gazella subgutturosa
+springbok
+kudu
+harnessed antelope
+eland
+waterbuck
+oryx
+deer
+stag
+red deer
+mule deer
+roe deer
+caribou
+chevrotain
+camel
+domestic llama
+guanaco
+alpaca
+giraffe
+musteline mammal
+ermine
+stoat
+New World least weasel
+Old World least weasel
+longtail weasel
+American mink
+ferret
+muishond
+snake muishond
+striped muishond
+river otter
+Eurasian otter
+striped skunk
+hooded skunk
+hog-nosed skunk
+spotted skunk
+American badger
+Eurasian badger
+ferret badger
+hog badger
+marten
+pachyderm
+edentate
+peba
+apar
+tatouay
+peludo
+giant armadillo
+pichiciago
+sloth
+anteater
+primate
+ape
+anthropoid ape
+hominoid
+hominid
+homo
+Homo erectus
+Homo sapiens
+australopithecine
+great ape
+western lowland gorilla
+eastern lowland gorilla
+mountain gorilla
+silverback
+western chimpanzee
+eastern chimpanzee
+central chimpanzee
+pygmy chimpanzee
+lesser ape
+monkey
+Old World monkey
+talapoin
+grivet
+vervet
+green monkey
+chacma
+mandrill
+drill
+rhesus
+bonnet macaque
+Barbary ape
+crab-eating macaque
+entellus
+guereza
+New World monkey
+true marmoset
+pygmy marmoset
+tamarin
+silky tamarin
+pinche
+lemur
+tarsier
+flying lemur
+proboscidean
+elephant
+mammoth
+procyonid
+raccoon
+fish
+food fish
+young fish
+crossopterygian
+lungfish
+catfish
+silurid
+bullhead
+channel catfish
+gadoid
+cod
+hake
+elver
+common eel
+tuna
+moray
+conger
+teleost fish
+clupeid fish
+shad
+herring
+sardine
+pilchard
+anchovy
+salmonid
+salmon
+Atlantic salmon
+trout
+brown trout
+char
+whitefish
+smelt
+tarpon
+ribbonfish
+toadfish
+needlefish
+flying fish
+spiny-finned fish
+percoid fish
+perch
+pike-perch
+walleye
+robalo
+pike
+pickerel
+sunfish
+crappie
+freshwater bream
+black bass
+bass
+serranid fish
+grouper
+hind
+surfperch
+cardinalfish
+remora
+carangid fish
+jack
+moonfish
+pompano
+scad
+dolphinfish
+characin
+cichlid
+snapper
+grunt
+sparid
+sea bream
+porgy
+sciaenid fish
+croaker
+whiting
+sea trout
+mullet
+goatfish
+mullet
+silversides
+barracuda
+sea chub
+butterfly fish
+damselfish
+clown anemone fish
+wrasse
+blenny
+pikeblenny
+gunnel
+goby
+gempylid
+scombroid
+mackerel
+Spanish mackerel
+tuna
+bonito
+sailfish
+billfish
+marlin
+tripletail
+mojarra
+ganoid
+Pacific sturgeon
+beluga
+scorpaenoid
+scorpaenid
+scorpionfish
+rockfish
+lumpfish
+greenling
+gurnard
+sea robin
+plectognath
+triggerfish
+filefish
+boxfish
+spiny puffer
+ocean sunfish
+flatfish
+righteye flounder
+lefteye flounder
+whiff
+sole
+abbey
+abbey
+abrader
+accelerator
+accessory
+accommodation
+acoustic device
+acoustic modem
+acrylic
+action
+actuator
+adhesive bandage
+adjustable wrench
+aeolian harp
+aerosol
+after-shave
+airbus
+aircraft
+airfield
+airfoil
+air gun
+airplane
+air pump
+air-to-air missile
+air-to-ground missile
+alarm
+alb
+alcazar
+Allen screw
+alms dish
+altimeter
+Amati
+ammeter
+ammunition
+amplifier
+analog computer
+analytical balance
+anchor
+anchor chain
+aneroid barometer
+angledozer
+anklet
+antenna
+anteroom
+antiaircraft
+antiballistic missile
+apartment
+apartment building
+aperture
+apparatus
+apparel
+appliance
+appliance
+applicator
+aquarium
+arbor
+arcade
+arch
+arc lamp
+area
+argyle
+arm
+armament
+armature
+armchair
+armoire
+armor
+armored vehicle
+armor plate
+armrest
+array
+arrow
+artificial heart
+artillery
+assembly
+assembly plant
+astrodome
+astronomical telescope
+athletic sock
+atom bomb
+atomic clock
+atomizer
+attachment
+attack submarine
+attire
+audiocassette
+audio system
+audiotape
+auditorium
+autoclave
+autoinjector
+autoloader
+automat
+automat
+automatic firearm
+automatic rifle
+automaton
+auxiliary research submarine
+awl
+ax
+axis
+axle
+axletree
+baby bed
+baby buggy
+baby grand
+back
+background
+backseat
+badminton equipment
+badminton racket
+bag
+bag
+bag
+baggage
+bagpipe
+bait
+balance
+balcony
+balcony
+bale
+ball
+ball gown
+ballistic missile
+ballistic pendulum
+ball-peen hammer
+ballroom
+band
+bandage
+bandanna
+banderilla
+bar
+bar
+barbed wire
+barge
+barge pole
+barn door
+barograph
+barrack
+barrage balloon
+barrel knot
+barrel vault
+barrier
+barroom
+base
+base
+baseball equipment
+basilica
+basin
+basket
+basketball equipment
+bass
+bass drum
+bass horn
+bastion
+bat
+bathhouse
+battery
+battle-ax
+battle dress
+battleship
+bay rum
+bay window
+beading plane
+beam
+beam balance
+bearing
+beater
+beating-reed instrument
+bed
+bed
+bedclothes
+bedroom
+bedroom furniture
+bedspread
+bedspring
+beehive
+beer barrel
+bell
+bell push
+bell tower
+belt
+belt buckle
+bench
+berlin
+berth
+besom
+bevel gear
+bicycle
+bicycle chain
+bier
+billiard ball
+bin
+binding
+bin liner
+binocular microscope
+bioscope
+birchbark canoe
+bird shot
+bistro
+bit
+bit
+black tie
+blade
+blade
+blanket
+blimp
+blind
+block
+block plane
+blouse
+blower
+blowtorch
+bludgeon
+boarding
+boarding house
+boardroom
+boat
+bobbin
+body
+body armor
+body lotion
+boiler
+bolt
+bolt
+bomb
+bomber
+bongo
+boom
+boom
+boomerang
+boot
+booth
+booth
+bore bit
+Boston rocker
+bota
+bottle
+bottle opener
+bow
+bow
+bowed stringed instrument
+bowl
+bowl
+bowline
+bowling equipment
+bowling pin
+bowsprit
+box
+box
+boxcar
+boxing equipment
+brace
+brace
+bracelet
+bracket
+brake
+brake system
+brass
+brasserie
+brazier
+breechcloth
+breeches
+brewpub
+brick
+bricklayer's hammer
+brickwork
+bridal gown
+bridge
+briefcase
+brigandine
+brilliant pebble
+brim
+broad arrow
+broadax
+broad hatchet
+broadsword
+brush
+bubble jet printer
+buffer
+buffet
+building
+building complex
+bulldozer
+bullet
+bullhorn
+bullnose
+bundle
+bunker
+burial chamber
+burner
+bus
+business suit
+butt joint
+button
+buttress
+butt shaft
+buzz bomb
+cabaret
+caber
+cabin
+cabin
+cabinet
+cabinet
+cabin liner
+cable
+cable
+cafe
+cafeteria
+cafeteria tray
+caff
+cage
+calculator
+caliper
+calorimeter
+camera
+camera lens
+camera tripod
+camp
+camp
+camp chair
+camper
+can
+canal
+candelabrum
+candlestick
+cane
+cannikin
+cannon
+cannon
+cannonball
+canopy
+canteen
+canteen
+canvas
+canvas tent
+cap
+cap
+cap
+capacitor
+caparison
+cape
+cap screw
+capsule
+car
+car
+carbine
+carbon arc lamp
+card index
+cardioid microphone
+car door
+cargo liner
+cargo ship
+carillon
+carpenter's hammer
+carpenter's level
+carpenter's mallet
+carpenter's rule
+carpet tack
+carriage
+carriage
+carriage bolt
+carrick bend
+carrier
+car seat
+cart
+cartridge
+cartridge belt
+cartridge holder
+case
+case
+cashbox
+casque
+casserole
+cassock
+catch
+catcher's mask
+cathedra
+cathedral
+cathedral
+catheter
+cathode
+cathode-ray tube
+cat's-paw
+cattle car
+cautery
+cavalry sword
+cedar chest
+cell
+cell
+cellblock
+center
+centrifuge
+ceramic
+ceramic ware
+chain tongs
+chair
+chair of state
+chalk
+chamfer plane
+chandlery
+chapel
+character printer
+chassis
+chasuble
+chatelaine
+checker
+cheeseboard
+chemical reactor
+chessman
+chest of drawers
+child's room
+china
+chip
+chip
+chisel
+choke
+chokey
+chordophone
+chronoscope
+chuck
+church key
+cigar lighter
+circle
+circuit
+circuit board
+circular plane
+circular saw
+cistern
+civilian clothing
+clamp
+clamshell
+clarinet
+classroom
+clavier
+cleaning implement
+cleaning pad
+clean room
+clinic
+clip
+cloak
+clock
+closed circuit
+closed-circuit television
+closet
+cloth covering
+clothes closet
+clothes dryer
+clothes hamper
+clothes tree
+clothing
+clothing store
+clout nail
+clove hitch
+clutch
+coach
+coal car
+coal shovel
+coat
+coat closet
+coating
+coating
+coat of paint
+coaxial cable
+cocked hat
+coffee cup
+coffee maker
+coffer
+coffin
+coil
+colander
+collider
+cologne
+colonnade
+color television
+Colt
+column
+column
+comb
+comb
+combination plane
+combine
+commissary
+commodity
+communication system
+commutator
+compact disk
+compartment
+compass
+compass card
+compound lens
+compound lever
+compressor
+computer
+computer circuit
+computer network
+computer screen
+computer system
+concentration camp
+concert grand
+concertina
+condenser
+condenser
+condenser microphone
+conductor
+connecting rod
+connection
+conservatory
+conservatory
+contact
+container
+contrabassoon
+control
+control panel
+control system
+convent
+converging lens
+converter
+convertible
+conveyance
+cooker
+cooking utensil
+cooler
+cooling system
+cord
+cord
+cordage
+corner
+correctional institution
+corset
+cosmetic
+costume
+costume
+cotter
+cotton
+counter
+counter
+counter
+counter tube
+country house
+coupling
+court
+court
+coverall
+covering
+cowbarn
+craft
+cravat
+crazy quilt
+cream
+cream pitcher
+crematory
+crepe
+crib
+cricket equipment
+croquet equipment
+crossbar
+crossbow
+crosspiece
+crown jewels
+cruiser
+cruiser
+cruise ship
+crystal microphone
+cudgel
+cuff
+cultivator
+cup
+cupboard
+cupola
+curb roof
+curtain
+cutout
+cutter
+cutting implement
+cybercafe
+cyclotron
+cylinder
+cymbal
+dado plane
+dagger
+damper
+dart
+data converter
+data input device
+davenport
+davenport
+davit
+dead axle
+deck
+deck
+deck chair
+deep-freeze
+defensive structure
+delay line
+delicatessen
+dental appliance
+denture
+depilatory
+depressor
+depth finder
+derrick
+destroyer
+detector
+detector
+detonating fuse
+detonator
+developer
+device
+dial
+dialyzer
+diathermy machine
+diesel locomotive
+digital camera
+digital computer
+digital display
+diner
+dinghy
+dining car
+dining-hall
+dining room
+dining-room furniture
+dining-room table
+dinner dress
+dinner pail
+dinner table
+diode
+dip
+diplomatic building
+dipper
+DIP switch
+directional antenna
+directional microphone
+direction finder
+disguise
+dish
+dish
+disk
+dispenser
+display
+display panel
+distillery
+ditch
+ditch spade
+dive bomber
+doll
+dolmen
+domino
+door
+doorbell
+doorlock
+doornail
+dormer window
+dormitory
+dot matrix printer
+double-breasted suit
+double-reed instrument
+douche
+dovecote
+dovetail plane
+downstage
+drafting instrument
+Dragunov
+drawstring bag
+dray
+dredging bucket
+dress
+dress blues
+dressing
+dress uniform
+drill
+electric drill
+drill rig
+drinking fountain
+drinking vessel
+drip mat
+drip pot
+drive
+drive
+drogue
+drogue parachute
+drop-leaf table
+dry battery
+dry dock
+dryer
+dry masonry
+dry wall
+dugout canoe
+dumdum
+dumpcart
+dune buggy
+dungeon
+duplicator
+dustmop
+dwelling
+earphone
+earthenware
+easel
+easy chair
+edge tool
+eiderdown
+elastic bandage
+electrical converter
+electrical device
+electric bell
+electric frying pan
+electric furnace
+electric heater
+electric lamp
+electric motor
+electric refrigerator
+electro-acoustic transducer
+electrode
+electromagnet
+electronic balance
+electronic device
+electronic equipment
+electronic instrument
+electronic voltmeter
+electron microscope
+electrostatic generator
+electrostatic printer
+elevator
+embankment
+embellishment
+enamel
+enamelware
+enclosure
+endoscope
+engine
+engine
+ensemble
+entrenching tool
+epidiascope
+equipment
+eraser
+escutcheon
+espadrille
+espresso shop
+establishment
+estaminet
+exercise device
+exhaust fan
+exhibition hall
+Exocet
+expansion bolt
+explosive device
+external-combustion engine
+extractor
+fabric
+face mask
+face veil
+facing
+factory
+fairlead
+false face
+fan
+farm building
+farm machine
+fastener
+fatigues
+faucet
+feedback circuit
+fence
+fencing sword
+fender
+ferry
+fetoscope
+field-sequential color television
+fife
+fifth wheel
+fighter
+figure eight
+file
+file server
+filling
+film
+film
+filter
+filter
+finery
+finisher
+fipple flute
+fire
+firearm
+fire iron
+fireplace
+firkin
+fisherman's bend
+fisherman's knot
+fisherman's lure
+fishing boat
+fishing rod
+fishnet
+flag
+flageolet
+flambeau
+flannelette
+flap
+flashlight
+flask
+flatcar
+flat tip screwdriver
+fleet ballistic missile submarine
+flight simulator
+flip-flop
+floating dock
+floor
+floor
+floor cover
+fly
+flywheel
+fob
+foghorn
+folder
+food hamper
+footbath
+footbridge
+foothold
+foot rule
+footwear
+footwear
+forceps
+fore-and-aft sail
+foremast
+fore plane
+fore-topmast
+fork
+formalwear
+fortification
+fortress
+foundation garment
+foundry
+fragmentation bomb
+framework
+free-reed instrument
+freight train
+French door
+friary
+friction clutch
+frigate
+frill
+frock coat
+front projector
+fruit machine
+full-dress uniform
+full metal jacket
+funny wagon
+fur hat
+furnace
+furnishing
+furniture
+fuse
+gable
+gable roof
+gaff
+galleon
+gallery
+galley
+galley
+gallows
+galvanometer
+gambling house
+game
+game equipment
+gamp
+garage
+Garand rifle
+garden
+garden spade
+garden tool
+garment
+gas burner
+gas-discharge tube
+gasket
+gasoline engine
+gate
+gatehouse
+gatepost
+gathered skirt
+gauge
+gauze
+gauze
+gavel
+gear
+gear
+gear
+gearing
+general-purpose bomb
+generator
+generator
+Geneva gown
+geodesic dome
+girder
+glass
+glider
+glove
+glyptic art
+goal
+golf club
+golf equipment
+Gordian knot
+Gothic arch
+government building
+government office
+gown
+gramophone
+granary
+granny knot
+grapnel
+grapnel
+grate
+graver
+greasy spoon
+greatcoat
+great hall
+greengrocery
+grenade
+grillroom
+groined vault
+Guarnerius
+guidance system
+guided missile
+guildhall
+guitar
+guitar pick
+gun
+gun carriage
+gunlock
+gunsight
+gun trigger
+gurney
+gymnastic apparatus
+gym shoe
+gypsy cab
+habergeon
+habit
+hairdressing
+hairpiece
+hairpin
+half hatchet
+half hitch
+hall
+hall
+hammer
+hand
+handbell
+handbow
+handcart
+hand glass
+handloom
+hand lotion
+hand mower
+handsaw
+hand shovel
+hand tool
+handwear
+handwheel
+hanger
+hank
+harpsichord
+harrow
+hash house
+hat
+hatch
+hauberk
+hawser bend
+hazard
+head
+head
+head covering
+headdress
+header
+headgear
+headlight
+headsail
+headscarf
+health spa
+heat engine
+heater
+heat lamp
+heat-seeking missile
+heavier-than-air craft
+heckelphone
+hedge
+helicopter
+helm
+helmet
+helmet
+heraldry
+high altar
+high-angle gun
+high gear
+high table
+hinge
+hip boot
+hitch
+hoe
+hogshead
+hoist
+holder
+holding device
+home appliance
+homespun
+hood
+hood
+hood
+hook
+Hoover
+hope chest
+horn
+horn button
+horse
+horsecar
+horse-drawn vehicle
+horsehair wig
+hosiery
+hospital
+hospital room
+hostel
+hot-air balloon
+hotel
+hotel room
+hot tub
+house
+house
+housing
+hovel
+huarache
+humeral veil
+hut
+hutch
+hydraulic brake
+hydraulic system
+hydroelectric turbine
+hydrofoil
+hydrometer
+hygrometer
+hypermarket
+hypodermic syringe
+ice machine
+ice rink
+ice skate
+icetray
+ignition switch
+impact printer
+implant
+implement
+imprint
+improvised explosive device
+inclined plane
+indicator
+induction coil
+ink-jet printer
+inkstand
+institution
+instrument
+instrument of punishment
+instrument of torture
+interceptor
+interchange
+intercommunication system
+intercontinental ballistic missile
+interface
+interior door
+internal-combustion engine
+ionization chamber
+video iPod
+iron
+jack
+jack
+jacket
+jacket
+jack plane
+jail
+jamb
+jar
+jeroboam
+jet
+jet engine
+jewelled headdress
+jib
+jibboom
+jiggermast
+joint
+jointer
+joist
+jolly boat
+jug
+jumper
+jumper cable
+junction
+junction
+jury mast
+kayak
+keel
+keg
+kerchief
+kettle
+key
+key
+keyboard
+keyboard instrument
+khakis
+kiln
+kinescope
+kingbolt
+kirk
+kit
+kit
+kitbag
+kitchen
+kitchen appliance
+kitchen utensil
+kite balloon
+knee-high
+knife
+knife
+knit
+knob
+lace
+lacquer
+ladder truck
+lag screw
+lamasery
+laminate
+lamination
+lamp
+lamp
+landing gear
+land mine
+lantern
+lapel
+lathe
+lattice
+launcher
+lead-acid battery
+leather strip
+Leclanche cell
+leg
+legging
+lens
+lens implant
+level
+lever
+Levi's
+lid
+life buoy
+life jacket
+life preserver
+lifting device
+ligament
+light
+light-emitting diode
+lighter-than-air craft
+lighting
+light microscope
+linear accelerator
+line printer
+lingerie
+lining
+liquid crystal display
+lister
+living quarters
+living room
+local area network
+lock
+locomotive
+lodge
+lodging house
+loft
+loft
+longbow
+lookout
+loom
+loop knot
+lota
+lounge
+loungewear
+love knot
+lunchroom
+luxury liner
+lyre
+machine
+machine
+machine bolt
+machine gun
+machinery
+machine screw
+machine tool
+magic lantern
+magnet
+magnetic disk
+magnetic recorder
+magnetic tape
+magnifier
+magnum
+magnus hitch
+mailer
+mainframe
+mainmast
+main-topmast
+main yard
+makeup
+mallet
+mallet
+mallet
+mandolin
+manger
+man-of-war
+manometer
+MANPAD
+mansard
+mansion
+marina
+marker
+marketplace
+maser
+mask
+masonry
+mass spectrometer
+mast
+mast
+mat
+mat
+match
+match
+match plane
+material
+materiel
+Matthew Walker
+maul
+measure
+measuring instrument
+measuring stick
+mechanical device
+mechanical system
+mechanism
+medical building
+medical instrument
+memorial
+memory
+memory chip
+memory device
+menhir
+man's clothing
+mercantile establishment
+mercury barometer
+mercury thermometer
+mercury-vapor lamp
+mess
+metal screw
+meteorological balloon
+meter
+meterstick
+microbalance
+microfilm
+microscope
+military hospital
+military quarters
+military vehicle
+mill
+milldam
+millinery
+mine
+minibike
+mink
+minster
+Minuteman
+mirror
+mixer
+mizzenmast
+module
+mold
+moldboard plow
+monitor
+monitor
+morgue
+mortise joint
+motion-picture camera
+motion-picture film
+motor
+motorboat
+motorcycle
+motor hotel
+motor vehicle
+mound
+mount
+mouse button
+movie projector
+moving-coil galvanometer
+mug
+multiplex
+multiplexer
+musette pipe
+mushroom anchor
+musical instrument
+musket
+musket ball
+muslin
+muzzle loader
+narrowbody aircraft
+nautilus
+navigational system
+naval equipment
+naval gun
+naval radar
+naval weaponry
+navigational instrument
+nebuchadnezzar
+neckline
+neckpiece
+necktie
+neckwear
+needle
+needlework
+negligee
+net
+net
+net
+net
+network
+network
+night bell
+nightwear
+noisemaker
+nonsmoker
+non-volatile storage
+nose flute
+nuclear reactor
+nuclear weapon
+nursery
+oar
+oblique bandage
+oboe da caccia
+oboe d'amore
+obstacle
+office
+office furniture
+oil lamp
+oil paint
+oil tanker
+olive drab
+omnidirectional antenna
+onion dome
+open-air market
+open-end wrench
+opener
+openside plane
+ophthalmoscope
+optical device
+optical disk
+optical instrument
+optical telescope
+organ pipe
+outbuilding
+outerwear
+outfit
+outrigger canoe
+outside mirror
+oven
+overgarment
+overhand knot
+overhang
+overhead projector
+overnighter
+overshoe
+oxford
+package
+packaging
+packing box
+paddle
+paddle steamer
+page printer
+paint
+pallium
+pan
+pan
+panic button
+panopticon
+panopticon
+pantechnicon
+pantry
+pants suit
+panzer
+paper chain
+paper fastener
+parabolic reflector
+parapet
+parasail
+parka
+parsonage
+particle detector
+partition
+passenger ship
+passenger train
+passenger van
+passive matrix display
+passkey
+patch
+patchouli
+patchwork
+patina
+patisserie
+pavis
+peavey
+pedal
+pedestal table
+pedestrian crossing
+pedicab
+peg
+pen
+penal institution
+pencil
+pendulum
+pendulum clock
+percolator
+percussion instrument
+perfumery
+peripheral
+periwig
+personal computer
+petticoat
+Phillips screw
+Phillips screwdriver
+phonograph record
+photographic equipment
+photographic paper
+photometer
+physical pendulum
+piano
+piccolo
+pick
+pick
+pickle barrel
+piece of cloth
+pile
+pillow lace
+pilothouse
+pin
+pincer
+pinstripe
+pipe
+pipet
+pipe wrench
+pistol
+pivot
+place of business
+place of worship
+planetarium
+planner
+plant
+planter
+plasterboard
+plastic laminate
+plastic wrap
+plastron
+plate
+platform
+platform
+platform rocker
+plating
+pleat
+plethysmograph
+plexor
+pliers
+plug
+plug
+pneumatic drill
+pocket
+pocket-handkerchief
+pocketknife
+pointed arch
+polyester
+polygraph
+pomade
+pontifical
+pool ball
+poorhouse
+porcelain
+porch
+portable computer
+portico
+post
+posthole digger
+pot
+potential divider
+potpourri
+pottery
+pouch
+poultice
+powder
+powder keg
+power brake
+power mower
+power saw
+power shovel
+power tool
+press
+press
+pressure dome
+pressure gauge
+pressure suit
+printed circuit
+printer
+prison camp
+prod
+prolonge knot
+prompter
+prong
+propeller
+propeller plane
+prosthesis
+protective covering
+protective garment
+pruning saw
+pruning shears
+public house
+public toilet
+public transport
+pull
+pull chain
+pulley
+Pullman
+pullover
+pulse counter
+pump
+pump
+pump house
+punch
+punch press
+purifier
+push broom
+push button
+pusher
+puzzle
+pyrometer
+pyx
+QWERTY keyboard
+racing boat
+rack
+rack
+radar
+radiogram
+radio interferometer
+radio link
+radiometer
+radio receiver
+radiotelegraph
+radiotelephone
+radio transmitter
+raft
+rail
+rail fence
+railing
+raincoat
+rake
+ramp
+rampart
+random-access memory
+rayon
+razor
+reaction-propulsion engine
+reactor
+reading lamp
+reading room
+read-only memory
+rearview mirror
+receiver
+receptacle
+reception room
+recess
+reconnaissance plane
+recorder
+recording
+record player
+recreation room
+recycling bin
+reed stop
+reef knot
+refectory table
+refinery
+reflecting telescope
+reflector
+reformatory
+refracting telescope
+refrigerator car
+refuge
+regalia
+regimentals
+regulator
+rein
+religious residence
+removable disk
+repair shop
+repeating firearm
+reproducer
+rescue equipment
+reservoir
+reset button
+residence
+resistor
+resonator
+respirator
+restraint
+retort
+rheostat
+rib
+ribbed vault
+riddle
+ride
+riding boot
+riding mower
+rifle ball
+rig
+rink
+river boat
+road
+roadway
+robe
+rocket
+rocket
+rod
+roller
+roller
+in-line skate
+roller blind
+roller coaster
+rolling hitch
+Rolodex
+Roman building
+roof
+roof
+room
+roost
+rope
+rose water
+rotary engine
+rotating mechanism
+rotating shaft
+rotisserie
+rotor
+round arch
+router plane
+row house
+royal mast
+rubber bullet
+rug
+rushlight
+sable
+sable coat
+sack
+sackbut
+sacking
+saddle
+safe
+safety belt
+safety curtain
+safety fuse
+safety match
+sail
+sailboat
+sailing vessel
+salver
+sandglass
+sash
+satellite
+satellite television
+saucepan
+savings bank
+saw
+sawhorse
+scale
+scarf
+school
+scientific instrument
+scissors
+scoop
+scratcher
+screen
+screen
+screen
+screw eye
+scrub plane
+scuffer
+sculpture
+sea boat
+sea chest
+seam
+seaplane
+seat
+seat
+second hand
+secretary
+security system
+seeker
+selector
+self-propelled vehicle
+semiautomatic firearm
+semiautomatic pistol
+semiconductor device
+serger
+serpent
+serving cart
+serving dish
+set
+setscrew
+setscrew
+sewing needle
+sextant
+shackle
+shade
+shaft
+shag rug
+shaker
+shaper
+shaping tool
+sharpener
+shaving cream
+shaving foam
+shawl
+shawm
+shears
+sheath
+shed
+sheepshank
+sheet bend
+shelf
+shell
+shell
+shell
+shellac
+shelter
+shelter
+shelter
+shield
+ship
+shipboard system
+shirt
+shirtfront
+shock absorber
+shoe
+shooting brake
+shop
+short pants
+shotgun
+shoulder holster
+shrine
+shutter
+shuttle
+sidewinder
+sieve
+sifter
+sights
+signaling device
+signboard
+silk
+simulator
+single bed
+single-breasted suit
+single-reed instrument
+sitz bath
+six-pack
+skate
+skein
+skeleton
+skewer
+skidder
+skid lid
+skiff
+ski pole
+skirt
+ski tow
+skullcap
+slack suit
+slat
+sled
+sleeper
+sleeping car
+sleeve
+sleeve
+slide projector
+slipknot
+slipper
+sloop
+slop pail
+slot machine
+small boat
+smart bomb
+smoker
+smooth plane
+snack bar
+snap-brim hat
+snare drum
+sniper rifle
+Sno-cat
+soapbox
+socle
+sofa
+sonograph
+sorter
+sound recording
+soup ladle
+source of illumination
+soutane
+spacecraft
+spade
+spar
+spatula
+spear
+spear
+spectacles
+spectrograph
+spectroscope
+speedometer
+spider
+spike
+spike
+spinet
+spinning machine
+spiral ratchet screwdriver
+spiral spring
+spit
+spokeshave
+sponge mop
+spoon
+sports equipment
+sports implement
+sportswear
+spot
+spring
+spring balance
+springboard
+sprit
+square
+square knot
+squash racket
+squawk box
+squeezer
+squinch
+stabilizer
+stabilizer
+stable gear
+stadium
+stall
+stamp mill
+stand
+standard cell
+staple
+starter
+state prison
+station
+statue
+stay
+steakhouse
+stealth aircraft
+stealth bomber
+stealth fighter
+steam bath
+steamboat
+steamer
+steam iron
+steam whistle
+steel mill
+steelyard
+steeple
+steering system
+step
+step-up transformer
+stereo
+stick
+stick
+still
+stilt
+Stinger
+stock
+stockcar
+stock car
+stocking
+stonework
+stool
+stopper knot
+storage battery
+storage space
+storeroom
+stove
+stove bolt
+Stradavarius
+straight chair
+strap
+strap
+stringed instrument
+strip
+strongbox
+stronghold
+strongroom
+structural member
+structure
+stylus
+submachine gun
+submersible
+submersible
+subwoofer
+suction pump
+suede cloth
+sunbonnet
+sunhat
+supermarket
+superstructure
+supply chamber
+support
+support
+support column
+supporting structure
+supporting tower
+surface lift
+surface-to-air missile
+surgeon's knot
+surgical instrument
+surgical knife
+surplice
+surveillance system
+surveying instrument
+surveyor's level
+swamp buggy
+sweater
+swimsuit
+sword
+synchrotron
+system
+tabi
+table
+table
+table knife
+tableware
+tabor
+tachometer
+tack
+tack hammer
+talaria
+tambour
+tambourine
+tampon
+tank
+tank car
+tannoy
+tape
+tape deck
+tape recorder
+target
+tavern
+tea chest
+teaching aid
+tea gown
+teashop
+teaspoon
+tea-strainer
+tea tray
+telecommunication system
+telephone
+telephone line
+telephone receiver
+telephone system
+telephone wire
+telescope
+television antenna
+television camera
+television equipment
+television monitor
+temple
+temple
+tender
+tennis racket
+tenor drum
+tenoroon
+tenpenny nail
+tent
+tenterhook
+terminal
+terminal
+test rocket
+tetraskelion
+textile machine
+textile mill
+theater
+theodolite
+thermometer
+thermostat
+three-piece suit
+three-way switch
+thumbscrew
+thumbtack
+tights
+tile
+timber
+timber hitch
+timbrel
+time-fuse
+timepiece
+timer
+time-switch
+tire chain
+tithe barn
+toecap
+toga
+toggle switch
+toilet
+toilet powder
+toiletry
+toilet water
+token
+tomograph
+toner
+tongs
+tool
+toolbox
+tooth
+toothbrush
+top
+top
+topgallant
+topmast
+topsail
+torpedo
+torpedo boat
+touch screen
+towel
+toweling
+tower
+toy box
+track
+tracked vehicle
+trailer
+trailer
+train
+trammel
+transdermal patch
+transformer
+transistor
+transmission
+transmitter
+transporter
+trap
+trapeze
+travel iron
+treasure chest
+trellis
+trench
+trial balloon
+triclinium
+troop carrier
+trough
+trouser
+trowel
+truck
+trunk
+try square
+tube
+tuck shop
+tun
+tunic
+turbine
+Turkish towel
+Turk's head
+turner
+turntable
+turtleneck
+tweed
+tweeter
+twenty-two
+two-piece
+typesetting machine
+typewriter
+ultraviolet lamp
+undercarriage
+undergarment
+underpants
+underwear
+uneven parallel bars
+uniform
+university
+uplift
+urn
+urn
+utensil
+vacuum flask
+valve
+van
+van
+varnish
+vehicle
+veranda
+vertical file
+vessel
+vessel
+vest
+vibrator
+vibrator
+videocassette
+video recording
+vigil light
+viol
+vise
+vivarium
+voltaic cell
+voltmeter
+wagon
+waist pack
+walking stick
+wall
+wall
+wall unit
+ward
+warehouse
+warship
+wash
+washer
+washtub
+watch
+watchtower
+water-base paint
+water butt
+water cart
+watercolor
+water-cooled reactor
+water gauge
+water ski
+waterwheel
+weapon
+weaponry
+weatherglass
+weathervane
+web
+wedge
+wedge
+weighbridge
+weight
+weir
+weld
+well
+whaler
+wheel
+wheelchair
+wheeled vehicle
+wheelwork
+whetstone
+whip
+whisk
+whispering gallery
+white goods
+whorehouse
+wicker basket
+widebody aircraft
+winch
+Winchester
+wind instrument
+window
+window
+window blind
+window envelope
+Windsor knot
+wine bucket
+wine cask
+wineglass
+wire
+wire
+wire matrix printer
+wiring
+woman's clothing
+wood
+woodenware
+woodscrew
+woodwind
+woofer
+workbasket
+workbench
+work-clothing
+worktable
+workwear
+wrapping
+wrench
+writing desk
+writing implement
+X-ray film
+X-ray machine
+yacht chair
+yard
+yard
+yardstick
+yoke
+zither
+zoot suit
+grain
+light
+colorlessness
+chromatic color
+black
+gray
+dark red
+orange
+yellow
+green
+blue
+purple
+reddish purple
+pink
+light brown
+reddish brown
+complexion
+skin
+epidermal cell
+columnar cell
+macule
+specimen
+milk
+embryonic cell
+leukocyte
+neutrophil
+astrocyte
+exoskeleton
+medium
+film
+press
+print media
+storage medium
+journalism
+photojournalism
+newspaper
+telecommunication
+telephone
+call
+long distance
+wireless
+broadcasting
+television
+reception
+chat room
+portal site
+wordbook
+album
+concept album
+magazine
+movie
+sign
+comestible
+course
+dainty
+dish
+fare
+diet
+dietary supplement
+liquid diet
+reducing diet
+vegetarianism
+ration
+field ration
+foodstuff
+starches
+concentrate
+meal
+roughage
+flour
+wheat flour
+nutriment
+commissariat
+canned food
+canned meat
+meal
+breakfast
+lunch
+dinner
+supper
+buffet
+picnic
+cookout
+bite
+entree
+side dish
+casserole
+chicken casserole
+appetizer
+cocktail
+hors d'oeuvre
+relish
+dip
+soup
+madrilene
+broth
+broth
+chowder
+clam chowder
+stew
+goulash
+fish stew
+fricassee
+ragout
+ready-mix
+powdered sugar
+granulated sugar
+brown sugar
+sweet
+confiture
+candy
+hard candy
+patty
+brittle
+chewing gum
+candied fruit
+candied citrus peel
+fudge
+gumdrop
+mint
+kiss
+lozenge
+taffy
+dessert
+dumpling
+frozen dessert
+mousse
+mousse
+whip
+pudding
+pudding
+tipsy cake
+ice
+chocolate ice cream
+Neapolitan ice cream
+peach ice cream
+strawberry ice cream
+tutti-frutti
+vanilla ice cream
+split
+pudding
+custard
+pastry
+turnover
+puff paste
+phyllo
+fish cake
+conserve
+jam
+jelly
+apple jelly
+marmalade
+gelatin
+gelatin dessert
+patty
+stuffing
+bread
+breadstick
+bun
+cracker
+dark bread
+flatbread
+loaf of bread
+quick bread
+rye bread
+toast
+white bread
+French bread
+cornbread
+johnnycake
+muffin
+scone
+onion roll
+sweet roll
+onion bagel
+biscuit
+baking-powder biscuit
+soft pretzel
+sandwich
+hamburger
+gruel
+edible fruit
+vegetable
+crudites
+legume
+greens
+solanaceous vegetable
+root vegetable
+potato
+baked potato
+sweet potato
+snack food
+corn chip
+tortilla chip
+cruciferous vegetable
+cabbage
+kale
+red cabbage
+savoy cabbage
+squash
+summer squash
+yellow squash
+winter squash
+turban squash
+gherkin
+sprout
+beet
+pepper
+sweet pepper
+hot pepper
+chili
+jalapeno
+onion
+Spanish onion
+salad green
+lettuce
+butterhead lettuce
+bean
+pea
+green pea
+common bean
+fresh bean
+green bean
+shell bean
+lima bean
+soy
+celery
+chicory
+coffee substitute
+chicory escarole
+corn
+hominy
+cress
+tomato
+cherry tomato
+salsify
+turnip
+edible nut
+apple
+eating apple
+Delicious
+McIntosh
+Pippin
+cooking apple
+berry
+currant
+citrus
+temple orange
+mandarin
+bitter orange
+sweet orange
+Jaffa orange
+navel orange
+Valencia orange
+lime
+almond
+plum
+dried fruit
+raisin
+passion fruit
+cocoa
+melon
+muskmelon
+winter melon
+cherry
+sweet cherry
+heart cherry
+sour cherry
+grape
+fox grape
+muscadine
+slipskin grape
+vinifera grape
+Tokay
+cherimoya
+soursop
+sweetsop
+ilama
+pond apple
+olive
+pear
+edible seed
+walnut
+feed
+fodder
+oil cake
+timothy
+grain
+barley
+wheat
+rice
+mash
+bird feed
+petfood
+salad
+tossed salad
+combination salad
+pasta salad
+fruit salad
+ingredient
+flavorer
+condiment
+herb
+spice
+cinnamon
+pepper
+garlic
+mustard
+sage
+savory
+curry
+paprika
+pickle
+sweet pickle
+vinegar
+sauce
+hot sauce
+dressing
+mayonnaise
+cheese sauce
+hot-fudge sauce
+white sauce
+spaghetti sauce
+boiled egg
+hard-boiled egg
+Easter egg
+omelet
+firm omelet
+souffle
+dairy product
+milk
+milk
+powdered milk
+cream
+butter
+clarified butter
+yogurt
+curd
+cheese
+cream cheese
+bleu
+cheddar
+Swiss cheese
+spread
+pate
+sweetening
+sugar
+syrup
+batter
+bread dough
+chicken and rice
+pasta
+Tetrazzini
+chili dog
+fondue
+fondue
+hash
+kabob
+seafood Newburg
+meatball
+pilaf
+sausage pizza
+pepperoni pizza
+cheese pizza
+anchovy pizza
+Sicilian pizza
+porridge
+fish loaf
+salmon loaf
+scallopine
+taco
+beef burrito
+quesadilla
+tostada
+beverage
+concoction
+mix
+filling
+potion
+elixir
+alcohol
+brew
+beer
+lager
+Weissbier
+malt
+ale
+stout
+mead
+wine
+white wine
+sparkling wine
+Burgundy
+Beaujolais
+Medoc
+Pinot noir
+Bordeaux
+claret
+Chianti
+Cabernet
+Merlot
+dessert wine
+Rhine wine
+Rioja
+Saint Emilion
+zinfandel
+table wine
+vermouth
+fortified wine
+Madeira
+liquor
+brandy
+gin
+rum
+whiskey
+corn whiskey
+Irish
+Scotch
+liqueur
+coffee liqueur
+orange liqueur
+mixed drink
+cocktail
+highball
+Bloody Mary
+daiquiri
+manhattan
+martini
+sling
+sour
+caffe latte
+cider
+sweet cider
+juice
+fruit juice
+grape juice
+orange juice
+fruit drink
+mulled wine
+soft drink
+cola
+coffee
+punch
+champagne cup
+claret cup
+rickey
+tea
+tea
+herb tea
+tisane
+black tea
+green tea
+water
+drinking water
+mineral water
+vitamin pill
+collection
+suburb
+residence
+littoral
+grassland
+pasture
+resort
+field
+air bubble
+arroyo
+ascent
+atoll
+bank
+bank
+bar
+barrier reef
+basin
+beach
+burrow
+canyon
+cave
+continental glacier
+crag
+crater
+dale
+descent
+draw
+dune
+geological formation
+glacier
+glen
+gorge
+gulch
+gully
+highland
+hill
+hillside
+hole
+hollow
+iceberg
+ice mass
+ion
+knoll
+landfall
+landfill
+lather
+ledge
+lowland
+meteorite
+mountain
+mull
+natural depression
+natural elevation
+nullah
+ocean floor
+outcrop
+plain
+point
+precipice
+ravine
+reef
+ridge
+ridge
+rift valley
+rock
+sandbank
+seaside
+shiner
+shore
+slope
+soapsuds
+spume
+tableland
+tideland
+volcanic crater
+wadi
+spiritual leader
+adventurer
+anomaly
+benefactor
+commoner
+contestant
+discussant
+entertainer
+female
+finisher
+inhabitant
+native
+juvenile
+lover
+male
+mediator
+national
+peer
+recipient
+sensualist
+traveler
+unwelcome person
+unskilled person
+worker
+wrongdoer
+Black
+White
+Semite
+white man
+Mongol
+Nahuatl
+Caddo
+Penutian
+Teton
+Taracahitian
+Slav
+Catholic
+Altaic
+Bornean
+Canadian
+Central American
+Britisher
+English person
+Englishwoman
+Ethiopian
+Parisian
+Greek
+Italian
+Japanese
+Mexican
+Nigerian
+North American
+Pakistani
+South American Indian
+Filipino
+Polynesian
+Scandinavian
+South African
+South American
+Turki
+American
+New Yorker
+abbess
+abstainer
+academic administrator
+accomplice
+acquaintance
+acquirer
+aerialist
+actor
+actor
+addict
+adjutant
+admirer
+adulterer
+advertiser
+advocate
+analyst
+ancestor
+announcer
+announcer
+appointee
+appreciator
+appropriator
+archbishop
+architect
+army engineer
+army officer
+arrival
+articulator
+asserter
+assistant
+associate
+astronaut
+athlete
+attendant
+aunt
+authoritarian
+authority
+aviator
+back
+bad person
+ballet dancer
+bullfighter
+baron
+bartender
+baseball coach
+base runner
+basketball player
+believer
+betrothed
+bigot
+big shot
+biochemist
+bisexual
+boatman
+bond servant
+botanist
+Boy Scout
+buddy
+campaigner
+captain
+card player
+careerist
+caretaker
+cavalryman
+celebrity
+charmer
+child
+child
+cipher
+citizen
+civil rights leader
+cleaner
+clergyman
+cleric
+clerk
+climber
+closer
+clown
+coach
+cobbler
+collaborator
+college student
+collegian
+commanding officer
+commissioned officer
+commissioned military officer
+commissioner
+committee member
+communist
+compulsive
+computer scientist
+computer user
+contractor
+convict
+copycat
+counselor
+craftsman
+creditor
+critic
+curate
+dancer
+dancer
+darling
+date
+daughter
+dawdler
+deacon
+deaf person
+debtor
+deliveryman
+descender
+designated hitter
+detective
+detractor
+director
+disbeliever
+dispatcher
+distributor
+doctor
+domestic partner
+draftsman
+drinker
+drinker
+drug addict
+drug user
+drummer
+drunkard
+eager beaver
+earner
+eavesdropper
+economist
+editor
+egotist
+elder
+elected official
+emissary
+employee
+employer
+endomorph
+enemy
+entrant
+examiner
+exhibitionist
+fan
+fancier
+farmer
+farmhand
+fascist
+father
+female aristocrat
+female offspring
+female child
+fielder
+fireman
+first baseman
+first sergeant
+flag officer
+flatterer
+foe
+folk dancer
+follower
+football player
+forefather
+forger
+founder
+free agent
+friar
+monk
+gambler
+generator
+geneticist
+genitor
+geologist
+girl
+godchild
+godparent
+golfer
+grandma
+grandmaster
+grandparent
+granter
+great grandchild
+great grandparent
+grouch
+guard
+guest
+guide
+gymnast
+Gypsy
+hack
+hairdresser
+hater
+headmaster
+hearer
+hedonist
+heir
+herder
+homeless
+horseman
+host
+host
+hypocrite
+important person
+incumbent
+infielder
+informer
+in-law
+insurgent
+investigator
+investor
+journalist
+judge
+juror
+Counsel to the Crown
+kinswoman
+laborer
+lama
+landowner
+lawgiver
+lawman
+lawyer
+liberator
+lieutenant
+lineman
+literate
+litigant
+Lord
+failure
+lowerclassman
+lumberman
+maid
+maker
+malcontent
+martinet
+master of ceremonies
+masturbator
+medical officer
+medical practitioner
+medical scientist
+mender
+meteorologist
+middle-aged man
+miler
+military attache
+military officer
+military policeman
+minister
+minor leaguer
+misfit
+mixed-blood
+model
+moneymaker
+mother
+mourner
+mover
+musician
+Muslimah
+mystic
+nanny
+neonate
+nephew
+neutral
+newcomer
+newcomer
+newspaper editor
+niece
+noncommissioned officer
+nurse
+observer
+occultist
+oldster
+old woman
+opportunist
+orator
+originator
+outfielder
+right fielder
+right-handed pitcher
+painter
+panelist
+pardoner
+parodist
+party
+passenger
+patient
+patron
+payer
+peddler
+percussionist
+personal representative
+personification
+pervert
+petitioner
+Pharaoh
+phonetician
+physical therapist
+physicist
+pimp
+pisser
+pitcher
+planner
+player
+poet
+politician
+practitioner
+prayer
+preserver
+president
+priest
+princess
+principal
+proctor
+programmer
+promiser
+propagandist
+prosecutor
+psychic
+pusher
+queen
+queen
+ranch hand
+reader
+recruit
+recruiter
+religious leader
+repairman
+reporter
+representative
+reprobate
+rescuer
+reservist
+restrainer
+retailer
+retiree
+revolutionist
+rich person
+civil authority
+runner
+running back
+rustic
+saboteur
+sailor
+salesman
+salesperson
+scalper
+schemer
+scholar
+schoolchild
+scientist
+second baseman
+secretary
+seeker
+selfish person
+seller
+serf
+serviceman
+settler
+shrew
+sibling
+sick person
+singer
+sister
+skeptic
+skier
+sleeper
+slob
+smith
+snoop
+social climber
+socialist
+social scientist
+sociologist
+soldier
+son
+songster
+sorcerer
+sovereign
+speaker
+specialist
+spectator
+stand-in
+star
+stepparent
+stock trader
+stranger
+strategist
+student
+subordinate
+suitor
+superior
+surgeon
+sweetheart
+sympathizer
+tax assessor
+taxonomist
+teacher
+television reporter
+tenant
+tenant
+tennis player
+testator
+testee
+theologian
+therapist
+thinker
+thrower
+toastmaster
+trader
+traffic cop
+trainer
+traitor
+traveling salesman
+tyrant
+upstart
+upstart
+utility man
+vacationer
+vegetarian
+vice president
+victim
+volunteer
+votary
+waiter
+waitress
+wanderer
+wanton
+washer
+white supremacist
+wife
+winner
+winner
+woman
+workman
+worshiper
+wright
+writer
+wilding
+bryophyte
+liverwort
+pteridophyte
+fern
+fern ally
+spore
+spermatophyte
+perennial
+gymnosperm
+ephedra
+cycad
+sago palm
+zamia
+pine
+pinon
+nut pine
+white pine
+yellow pine
+larch
+fir
+silver fir
+cedar
+spruce
+hemlock
+douglas fir
+cedar
+cypress
+arborvitae
+araucaria
+kauri pine
+celery pine
+yellowwood
+gymnospermous yellowwood
+yew
+angiosperm
+dicot
+flower
+wildflower
+inflorescence
+pistil
+pericarp
+oilseed
+custard apple
+barberry
+allspice
+laurel
+anise tree
+magnolia
+moonseed
+buttercup
+aconite
+baneberry
+anemone
+thimbleweed
+columbine
+clematis
+delphinium
+nigella
+wax myrtle
+zebrawood
+legume
+legume
+darling pea
+clover
+acacia
+wattle
+albizzia
+nitta tree
+dogbane
+allamanda
+carissa
+frangipani
+rauwolfia
+arum
+alocasia
+anthurium
+caladium
+monstera
+nephthytis
+arrow arum
+calla lily
+duckweed
+watermeal
+birthwort
+sandwort
+mouse-ear chickweed
+pink
+china pink
+lychnis
+silene
+chickweed
+fig marigold
+amaranth
+orach
+saltbush
+beet
+sand verbena
+four o'clock
+echinocactus
+prickly pear
+pokeweed
+portulaca
+flame flower
+caper
+spiderflower
+crucifer
+cress
+watercress
+rock cress
+cabbage
+head cabbage
+turnip plant
+mustard
+wallflower
+woad
+stock
+radish plant
+pennycress
+poppy
+prickly poppy
+composite
+compass plant
+everlasting
+achillea
+ageratum
+ragweed
+ammobium
+burdock
+artemisia
+mugwort
+aster
+wood aster
+common daisy
+bur marigold
+calendula
+thistle
+carline thistle
+catananche
+centaury
+knapweed
+chrysanthemum
+golden aster
+goldenbush
+plume thistle
+woolly thistle
+coreopsis
+fleabane
+woolly sunflower
+cotton rose
+gazania
+African daisy
+cudweed
+gumweed
+goldenbush
+sneezeweed
+sunflower
+hawkweed
+marsh elder
+krigia
+hawkbit
+blazing star
+rattlesnake root
+daisybush
+coneflower
+coneflower
+cutleaved coneflower
+golden thistle
+white-topped aster
+goldenrod
+sow thistle
+marigold
+dandelion
+crownbeard
+zinnia
+achene
+campanula
+orchid
+orchis
+arethusa
+helleborine
+coral root
+lady's slipper
+large yellow lady's slipper
+helleborine
+fringed orchis
+rein orchid
+spider orchid
+moth orchid
+butterfly orchid
+ladies' tresses
+vanda
+vanilla
+yam
+primrose
+pimpernel
+featherfoil
+loosestrife
+water pimpernel
+gramineous plant
+grass
+wheatgrass
+foxtail
+broom grass
+oat
+brome
+grama
+reed grass
+burgrass
+crabgrass
+lyme grass
+wild rye
+plume grass
+rye grass
+ricegrass
+meadowgrass
+millet
+reed
+sorghum
+grain sorghum
+cordgrass
+cereal
+wheat
+corn
+mealie
+zoysia
+bamboo
+cotton grass
+spike rush
+pandanus
+cattail
+grain
+kernel
+gourd
+gourd
+squash
+summer squash
+marrow
+winter squash
+turban squash
+bryony
+sweet melon
+luffa
+lobelia
+mallow
+hollyhock
+althea
+poppy mallow
+seashore mallow
+globe mallow
+tulipwood tree
+sterculia
+bottle-tree
+screw tree
+cacao
+linden
+herb
+protea
+banksia
+grevillea
+macadamia
+casuarina
+beefwood
+heath
+bearberry
+huckleberry
+kalmia
+rhododendron
+cranberry
+blueberry
+shortia
+Australian heath
+epacris
+wintergreen
+pipsissewa
+beech
+chestnut
+tanbark oak
+southern beech
+New Zealand beech
+oak
+live oak
+white oak
+red oak
+scrub oak
+chestnut oak
+birch
+alder
+hornbeam
+hop hornbeam
+hazelnut
+centaury
+gentian
+fringed gentian
+olive tree
+fringe tree
+ash
+red ash
+jasmine
+privet
+lilac
+liquidambar
+walnut
+hickory
+wing nut
+loosestrife
+myrtle
+gum tree
+eucalyptus
+flooded gum
+mallee
+stringybark
+tupelo
+enchanter's nightshade
+willowherb
+fuchsia
+evening primrose
+daphne
+canna
+banana
+ginger
+begonia
+tuberous begonia
+poon
+St John's wort
+rockrose
+dipterocarp
+candlewood
+reseda
+viola
+violet
+nettle
+cannabis
+mulberry
+fig tree
+fig
+elm
+hackberry
+iridaceous plant
+bearded iris
+beardless iris
+crocus
+amaryllis
+blood lily
+narcissus
+daffodil
+liliaceous plant
+colicroot
+alliaceous plant
+kniphofia
+poker plant
+asphodel
+mariposa
+globe lily
+camas
+dogtooth violet
+fritillary
+tulip
+star-of-Bethlehem
+grape hyacinth
+scilla
+false asphodel
+bog asphodel
+hellebore
+death camas
+sarsaparilla
+Solomon's-seal
+bellwort
+agave
+sansevieria
+cassia
+locust tree
+senna
+angelim
+milk vetch
+wild indigo
+pea tree
+glory pea
+rosewood
+blackwood
+tick trefoil
+coral tree
+vetchling
+wild pea
+lupine
+medic
+mucuna
+locoweed
+pole bean
+pea
+edible-pod pea
+quira
+hoary pea
+bush pea
+vetch
+palm
+sago palm
+feather palm
+fan palm
+palmetto
+areca
+calamus
+oil palm
+raffia palm
+lady palm
+eriogonum
+rhubarb
+water plantain
+waterweed
+pondweed
+rose
+agrimonia
+flowering quince
+cotoneaster
+avens
+apple tree
+wild apple
+crab apple
+Iowa crab
+cinquefoil
+plum
+wild plum
+bullace
+apricot
+cherry
+wild cherry
+sweet cherry
+sour cherry
+almond tree
+almond
+bird cherry
+flowering cherry
+chokecherry
+fruit tree
+bramble bush
+raspberry
+mountain ash
+service tree
+spirea
+madderwort
+coffee
+cinchona
+bedstraw
+genipa
+hamelia
+honeysuckle
+American fly honeysuckle
+teasel
+scabious
+geranium
+cranesbill
+storksbill
+incense tree
+mahogany
+silver ash
+milkwort
+citrus
+orange
+mandarin
+lemon
+kumquat
+prickly ash
+bitterwood tree
+ailanthus
+nasturtium
+willow
+osier
+sallow
+poplar
+black poplar
+cottonwood
+aspen
+soapberry
+soapberry vine
+harpullia
+pachysandra
+spindle tree
+maple
+box elder
+holly
+sumac
+horse chestnut
+persimmon
+buckthorn
+styrax
+carnivorous plant
+pitcher plant
+sedum
+philadelphus
+saxifrage
+astilbe
+alumroot
+miterwort
+parnassia
+currant
+plane tree
+phlox
+acanthus
+catalpa
+anchusa
+comfrey
+convolvulus
+bindweed
+gloxinia
+streptocarpus
+waterleaf
+nemophila
+scorpionweed
+giant hyssop
+bugle
+wood mint
+calamint
+coleus
+dead nettle
+origanum
+horehound
+monarda
+savory
+germander
+thyme
+blue curls
+snapdragon
+kitten-tails
+Indian paintbrush
+foxglove
+toadflax
+veronica
+nightshade
+thorn apple
+matrimony vine
+cupflower
+petunia
+salpiglossis
+spurge
+croton
+cassava
+slipper spurge
+camellia
+umbellifer
+angelica
+astrantia
+caraway
+fennel
+parsnip
+parsley
+sanicle
+dogwood
+valerian
+bristle fern
+flowering fern
+climbing fern
+clover fern
+adder's tongue
+grape fern
+ergot
+sclerotinia
+earthball
+Podaxaceae
+false truffle
+rhizopus
+slime mold
+cellular slime mold
+downy mildew
+pythium
+Sarcosomataceae
+club fungus
+lichen
+lecanora
+fungus
+basidiomycete
+mushroom
+mushroom
+mushroom
+toadstool
+horse mushroom
+meadow mushroom
+royal agaric
+false deathcap
+fly agaric
+death cap
+blushing mushroom
+destroying angel
+chanterelle
+floccose chanterelle
+pig's ears
+cinnabar chanterelle
+jack-o-lantern fungus
+inky cap
+shaggymane
+milkcap
+fairy-ring mushroom
+oyster mushroom
+olive-tree agaric
+Pholiota astragalina
+Pholiota aurea
+Pholiota destruens
+Pholiota flammans
+Pholiota flavida
+nameko
+Pholiota squarrosa-adiposa
+Pholiota squarrosa
+Pholiota squarrosoides
+Stropharia ambigua
+Stropharia hornemannii
+Stropharia rugoso-annulata
+Entoloma lividum
+Entoloma aprile
+Chlorophyllum molybdites
+lepiota
+parasol mushroom
+poisonous parasol
+Lepiota naucina
+Lepiota rhacodes
+American parasol
+Lepiota rubrotincta
+Lepiota clypeolaria
+onion stem
+blewits
+sandy mushroom
+Tricholoma pessundatum
+Tricholoma sejunctum
+man-on-a-horse
+Tricholoma venenata
+Tricholoma pardinum
+Tricholoma vaccinum
+Tricholoma aurantium
+Pluteus aurantiorugosus
+Pluteus magnus
+deer mushroom
+straw mushroom
+Volvariella bombycina
+Clitocybe clavipes
+Clitocybe dealbata
+Clitocybe inornata
+Clitocybe robusta
+Clitocybe irina
+Clitocybe subconnexa
+winter mushroom
+mycelium
+ascomycete
+Clavicipitaceae
+yeast
+discomycete
+morel
+Verpa
+false morel
+lorchel
+helvella
+Gyromitra californica
+Gyromitra sphaerospora
+Gyromitra esculenta
+Gyromitra infula
+Gyromitra gigas
+gasteromycete
+common stinkhorn
+Phallus ravenelii
+dog stinkhorn
+stinky squid
+puffball
+Geastrum coronatum
+Astreus pteridis
+Astreus hygrometricus
+polypore
+Boletus chrysenteron
+Boletus edulis
+Frost's bolete
+Boletus luridus
+Boletus mirabilis
+Boletus pallidus
+Boletus pulcherrimus
+Boletus pulverulentus
+Boletus roxanae
+Boletus subvelutipes
+Boletus variipes
+Boletus zelleri
+Fuscoboletinus paluster
+Fuscoboletinus serotinus
+Leccinum fibrillosum
+Suillus albivelatus
+old-man-of-the-woods
+Boletellus russellii
+jelly fungus
+rust
+smut
+cornsmut
+flag smut fungus
+waxycap
+Hygrocybe acutoconica
+Hygrophorus borealis
+Hygrophorus caeruleus
+Hygrophorus inocybiformis
+Hygrophorus kauffmanii
+Hygrophorus marzuolus
+Hygrophorus purpurascens
+Hygrophorus russula
+Hygrophorus sordidus
+Hygrophorus tennesseensis
+Hygrophorus turundus
+Neohygrophorus angelesianus
+Cortinarius armillatus
+Cortinarius atkinsonianus
+Cortinarius corrugatus
+Cortinarius gentilis
+Cortinarius mutabilis
+Cortinarius semisanguineus
+Cortinarius subfoetidus
+Cortinarius violaceus
+Gymnopilus spectabilis
+Gymnopilus validipes
+Gymnopilus ventricosus
+mold
+mildew
+candida
+houseplant
+succulent
+weed
+sporophyll
+sporangium
+poisonous plant
+vine
+tree
+bean tree
+gymnospermous tree
+conifer
+angiospermous tree
+nut tree
+spice tree
+bonsai
+subshrub
+bramble
+liana
+desert plant
+marsh plant
+strangler
+root
+receptacle
+scape
+peduncle
+flower cluster
+raceme
+cyme
+bulbous plant
+fruit
+seed
+bean
+nut
+berry
+aggregate fruit
+drupe
+drupelet
+pome
+pod
+husk
+buckthorn
+vinifera
+true pepper
+peperomia
+bract
+palmate leaf
+pinnate leaf
+dentate leaf
+branchlet
+polypody
+strap fern
+staghorn fern
+spleenwort
+chain fern
+davallia
+hare's-foot fern
+shield fern
+wood fern
+lady fern
+bladder fern
+holly fern
+woodsia
+maidenhair
+brittle maidenhair
+lip fern
+cliff brake
+horsetail
+club moss
+spikemoss
+beech fern
+shoestring fungus
+Armillaria caligata
+Armillaria ponderosa
+Armillaria zelleri
+honey mushroom
+milkweed
+stapelia
+stephanotis
+orangery
+figure
+plane figure
+solid figure
+line
+convex shape
+concave shape
+cylinder
+round shape
+polygon
+concave polygon
+amorphous shape
+closed curve
+simple closed curve
+cone
+circle
+ring
+loop
+ellipse
+triangle
+spherical polygon
+angular distance
+groove
+bulge
+bow
+balance
+toroid
+boundary
+incisure
+notch
+wrinkle
+tree
+regular polyhedron
+carbon
+rock
+soil
+high explosive
+culture medium
+agar
+paper
+paving
+plaster
+stucco
+tear gas
+vitamin
+fat-soluble vitamin
+water-soluble vitamin
+vitamin A
+B-complex vitamin
+vitamin E
+vitamin K
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/inet9k.map" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/inet9k.map"
new file mode 100644
index 00000000..c91b3c15
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/inet9k.map"
@@ -0,0 +1,200 @@
+2687
+4107
+8407
+7254
+42
+6797
+127
+2268
+2442
+3704
+260
+1970
+58
+4443
+2661
+2043
+2039
+4858
+4007
+6858
+8408
+166
+2523
+3768
+4347
+6527
+2446
+5005
+3274
+3678
+4918
+709
+4072
+8428
+7223
+2251
+3802
+3848
+7271
+2677
+8267
+2849
+2518
+2738
+3746
+5105
+3430
+3503
+2249
+1841
+2032
+2358
+122
+3984
+4865
+3246
+5095
+6912
+6878
+8467
+2741
+1973
+3057
+7217
+1872
+44
+2452
+3637
+2704
+6917
+2715
+6734
+2325
+6864
+6677
+2035
+1949
+338
+2664
+5122
+1844
+784
+2223
+7188
+2719
+2670
+4830
+158
+4818
+7228
+1965
+7342
+786
+2095
+8281
+8258
+7406
+3915
+8382
+2437
+2837
+82
+6871
+1876
+7447
+8285
+5007
+2740
+3463
+5103
+3755
+4910
+6809
+3800
+118
+3396
+3092
+2709
+81
+7105
+4036
+2366
+1846
+5177
+2684
+64
+2041
+3919
+700
+3724
+1742
+39
+807
+7184
+2256
+235
+2778
+2996
+2030
+3714
+7167
+2369
+6705
+6861
+5096
+2597
+2166
+2036
+3228
+3747
+2711
+8300
+2226
+7153
+7255
+2631
+7109
+8242
+7445
+3776
+3803
+3690
+2025
+2521
+2316
+7190
+8249
+3352
+2639
+2887
+100
+4219
+3344
+5008
+7224
+3351
+2434
+2074
+2034
+8304
+5004
+6868
+5102
+2645
+4071
+2716
+2717
+7420
+3499
+3763
+5084
+2676
+2046
+5107
+5097
+3944
+4097
+7132
+3956
+7343
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/kite.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/kite.jpg"
new file mode 100644
index 00000000..9eb325ac
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/kite.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_0.png"
new file mode 100644
index 00000000..77878ecc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_1.png"
new file mode 100644
index 00000000..86181c0b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_2.png"
new file mode 100644
index 00000000..5d430467
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_3.png"
new file mode 100644
index 00000000..353401fd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_4.png"
new file mode 100644
index 00000000..d22f891c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_5.png"
new file mode 100644
index 00000000..7f65183f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_6.png"
new file mode 100644
index 00000000..18eb1730
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_7.png"
new file mode 100644
index 00000000..b45964b1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/100_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_0.png"
new file mode 100644
index 00000000..8739bc7c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_1.png"
new file mode 100644
index 00000000..5a39331d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_2.png"
new file mode 100644
index 00000000..c2234777
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_3.png"
new file mode 100644
index 00000000..09f50e38
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_4.png"
new file mode 100644
index 00000000..7d7960bf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_5.png"
new file mode 100644
index 00000000..08d80033
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_6.png"
new file mode 100644
index 00000000..9d554db3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_7.png"
new file mode 100644
index 00000000..37855f0d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/101_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_0.png"
new file mode 100644
index 00000000..7b8b0fb1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_1.png"
new file mode 100644
index 00000000..ade5aa52
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_2.png"
new file mode 100644
index 00000000..2068f0be
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_3.png"
new file mode 100644
index 00000000..00e494e5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_4.png"
new file mode 100644
index 00000000..37637d36
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_5.png"
new file mode 100644
index 00000000..a86b69bf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_6.png"
new file mode 100644
index 00000000..7d6889ef
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_7.png"
new file mode 100644
index 00000000..a9a73815
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/102_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_0.png"
new file mode 100644
index 00000000..17cc959e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_1.png"
new file mode 100644
index 00000000..175794c4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_2.png"
new file mode 100644
index 00000000..415038d4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_3.png"
new file mode 100644
index 00000000..1101880f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_4.png"
new file mode 100644
index 00000000..b8bf32e0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_5.png"
new file mode 100644
index 00000000..6c81a57e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_6.png"
new file mode 100644
index 00000000..ce580c0b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_7.png"
new file mode 100644
index 00000000..1919f01f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/103_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_0.png"
new file mode 100644
index 00000000..4ce801bc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_1.png"
new file mode 100644
index 00000000..cdc2ba69
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_2.png"
new file mode 100644
index 00000000..aa88c847
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_3.png"
new file mode 100644
index 00000000..d5742675
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_4.png"
new file mode 100644
index 00000000..71f96623
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_5.png"
new file mode 100644
index 00000000..3159b0e9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_6.png"
new file mode 100644
index 00000000..018e0e1b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_7.png"
new file mode 100644
index 00000000..39fbe166
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/104_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_0.png"
new file mode 100644
index 00000000..388be1ae
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_1.png"
new file mode 100644
index 00000000..284a1305
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_2.png"
new file mode 100644
index 00000000..d378969f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_3.png"
new file mode 100644
index 00000000..f9ebb66f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_4.png"
new file mode 100644
index 00000000..afb260bd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_5.png"
new file mode 100644
index 00000000..53274dd7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_6.png"
new file mode 100644
index 00000000..6b952eaf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_7.png"
new file mode 100644
index 00000000..02b1b7d7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/105_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_0.png"
new file mode 100644
index 00000000..70752591
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_1.png"
new file mode 100644
index 00000000..66e73abc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_2.png"
new file mode 100644
index 00000000..aaf88c68
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_3.png"
new file mode 100644
index 00000000..bc6b981c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_4.png"
new file mode 100644
index 00000000..b662b7e2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_5.png"
new file mode 100644
index 00000000..43b45616
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_6.png"
new file mode 100644
index 00000000..e6676643
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_7.png"
new file mode 100644
index 00000000..727f3f6b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/106_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_0.png"
new file mode 100644
index 00000000..9c8d8361
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_1.png"
new file mode 100644
index 00000000..7dc3d2bc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_2.png"
new file mode 100644
index 00000000..d27cf783
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_3.png"
new file mode 100644
index 00000000..04b6c22b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_4.png"
new file mode 100644
index 00000000..cbc45156
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_5.png"
new file mode 100644
index 00000000..bc9730c7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_6.png"
new file mode 100644
index 00000000..ffbe415f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_7.png"
new file mode 100644
index 00000000..95f81a59
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/107_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_0.png"
new file mode 100644
index 00000000..ce05b224
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_1.png"
new file mode 100644
index 00000000..70d38953
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_2.png"
new file mode 100644
index 00000000..7a95038e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_3.png"
new file mode 100644
index 00000000..81637b38
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_4.png"
new file mode 100644
index 00000000..0ea83f24
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_5.png"
new file mode 100644
index 00000000..98d79d89
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_6.png"
new file mode 100644
index 00000000..25303aa8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_7.png"
new file mode 100644
index 00000000..6fb03a5d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/108_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_0.png"
new file mode 100644
index 00000000..8169faf8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_1.png"
new file mode 100644
index 00000000..16bc989d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_2.png"
new file mode 100644
index 00000000..cf8cf63d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_3.png"
new file mode 100644
index 00000000..5f6757b9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_4.png"
new file mode 100644
index 00000000..5d9fdab7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_5.png"
new file mode 100644
index 00000000..be6b733e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_6.png"
new file mode 100644
index 00000000..a02a1175
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_7.png"
new file mode 100644
index 00000000..1349d93a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/109_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_0.png"
new file mode 100644
index 00000000..49a25823
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_1.png"
new file mode 100644
index 00000000..10630cce
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_2.png"
new file mode 100644
index 00000000..f9004da4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_3.png"
new file mode 100644
index 00000000..b0d6ae1b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_4.png"
new file mode 100644
index 00000000..8f57528a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_5.png"
new file mode 100644
index 00000000..b335e497
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_6.png"
new file mode 100644
index 00000000..450fbb63
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_7.png"
new file mode 100644
index 00000000..c7b4754a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/110_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_0.png"
new file mode 100644
index 00000000..a0e58834
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_1.png"
new file mode 100644
index 00000000..9c17d574
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_2.png"
new file mode 100644
index 00000000..47710869
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_3.png"
new file mode 100644
index 00000000..bfba021e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_4.png"
new file mode 100644
index 00000000..7a4aeda2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_5.png"
new file mode 100644
index 00000000..180a9c58
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_6.png"
new file mode 100644
index 00000000..e1482cd3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_7.png"
new file mode 100644
index 00000000..c9355d06
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/111_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_0.png"
new file mode 100644
index 00000000..d732efeb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_1.png"
new file mode 100644
index 00000000..11243af7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_2.png"
new file mode 100644
index 00000000..c3c42209
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_3.png"
new file mode 100644
index 00000000..f830185e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_4.png"
new file mode 100644
index 00000000..a4b184a4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_5.png"
new file mode 100644
index 00000000..02f97a20
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_6.png"
new file mode 100644
index 00000000..2001b39e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_7.png"
new file mode 100644
index 00000000..9a14a71e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/112_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_0.png"
new file mode 100644
index 00000000..e36c84ea
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_1.png"
new file mode 100644
index 00000000..4c81c210
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_2.png"
new file mode 100644
index 00000000..b29b8d01
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_3.png"
new file mode 100644
index 00000000..62335849
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_4.png"
new file mode 100644
index 00000000..d1373f93
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_5.png"
new file mode 100644
index 00000000..ecfa110b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_6.png"
new file mode 100644
index 00000000..c4e0d989
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_7.png"
new file mode 100644
index 00000000..55ac8cfe
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/113_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_0.png"
new file mode 100644
index 00000000..9d42671d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_1.png"
new file mode 100644
index 00000000..277eed4f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_2.png"
new file mode 100644
index 00000000..9c18af38
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_3.png"
new file mode 100644
index 00000000..412f3204
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_4.png"
new file mode 100644
index 00000000..65912f08
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_5.png"
new file mode 100644
index 00000000..fdf7bd2f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_6.png"
new file mode 100644
index 00000000..8f6b639e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_7.png"
new file mode 100644
index 00000000..acf9180c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/114_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_0.png"
new file mode 100644
index 00000000..4767c453
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_1.png"
new file mode 100644
index 00000000..79f5d39c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_2.png"
new file mode 100644
index 00000000..963c0684
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_3.png"
new file mode 100644
index 00000000..bc0d24f5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_4.png"
new file mode 100644
index 00000000..a39b0f0c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_5.png"
new file mode 100644
index 00000000..63e00783
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_6.png"
new file mode 100644
index 00000000..344ef849
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_7.png"
new file mode 100644
index 00000000..c6e743c0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/115_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_0.png"
new file mode 100644
index 00000000..bf9b263d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_1.png"
new file mode 100644
index 00000000..2fb12a9d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_2.png"
new file mode 100644
index 00000000..dd044917
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_3.png"
new file mode 100644
index 00000000..0314e85e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_4.png"
new file mode 100644
index 00000000..cf919a6b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_5.png"
new file mode 100644
index 00000000..c9e04ed2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_6.png"
new file mode 100644
index 00000000..1d0ab79a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_7.png"
new file mode 100644
index 00000000..1fcdaa6e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/116_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_0.png"
new file mode 100644
index 00000000..917b4a21
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_1.png"
new file mode 100644
index 00000000..59cae8a9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_2.png"
new file mode 100644
index 00000000..d7c7f33c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_3.png"
new file mode 100644
index 00000000..18679c39
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_4.png"
new file mode 100644
index 00000000..bceedf94
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_5.png"
new file mode 100644
index 00000000..c0bddab6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_6.png"
new file mode 100644
index 00000000..731fd144
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_7.png"
new file mode 100644
index 00000000..c04ed0b1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/117_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_0.png"
new file mode 100644
index 00000000..4b8dfc64
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_1.png"
new file mode 100644
index 00000000..fa886ac2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_2.png"
new file mode 100644
index 00000000..958ff5e7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_3.png"
new file mode 100644
index 00000000..241b7880
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_4.png"
new file mode 100644
index 00000000..93991521
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_5.png"
new file mode 100644
index 00000000..279c9543
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_6.png"
new file mode 100644
index 00000000..9379cb99
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_7.png"
new file mode 100644
index 00000000..b34ca8a4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/118_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_0.png"
new file mode 100644
index 00000000..ae03b912
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_1.png"
new file mode 100644
index 00000000..7794fb67
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_2.png"
new file mode 100644
index 00000000..976c49b9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_3.png"
new file mode 100644
index 00000000..2e0160ed
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_4.png"
new file mode 100644
index 00000000..05409276
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_5.png"
new file mode 100644
index 00000000..4649a590
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_6.png"
new file mode 100644
index 00000000..eb5e0fbf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_7.png"
new file mode 100644
index 00000000..5615e770
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/119_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_0.png"
new file mode 100644
index 00000000..64fd621a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_1.png"
new file mode 100644
index 00000000..e13ecef8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_2.png"
new file mode 100644
index 00000000..b6ae6049
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_3.png"
new file mode 100644
index 00000000..13a4c3c8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_4.png"
new file mode 100644
index 00000000..af550a87
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_5.png"
new file mode 100644
index 00000000..38474e43
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_6.png"
new file mode 100644
index 00000000..e356cded
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_7.png"
new file mode 100644
index 00000000..5a585b4e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/120_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_0.png"
new file mode 100644
index 00000000..2c203810
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_1.png"
new file mode 100644
index 00000000..820c17d3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_2.png"
new file mode 100644
index 00000000..fabda007
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_3.png"
new file mode 100644
index 00000000..79ac0b1d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_4.png"
new file mode 100644
index 00000000..7ded7297
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_5.png"
new file mode 100644
index 00000000..5d59b5aa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_6.png"
new file mode 100644
index 00000000..49a63f3c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_7.png"
new file mode 100644
index 00000000..fea7b9e2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/121_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_0.png"
new file mode 100644
index 00000000..76ed2702
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_1.png"
new file mode 100644
index 00000000..57f2857c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_2.png"
new file mode 100644
index 00000000..d9f27cdd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_3.png"
new file mode 100644
index 00000000..c0657902
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_4.png"
new file mode 100644
index 00000000..62b891e2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_5.png"
new file mode 100644
index 00000000..276222eb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_6.png"
new file mode 100644
index 00000000..0b2924e3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_7.png"
new file mode 100644
index 00000000..87087784
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/122_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_0.png"
new file mode 100644
index 00000000..95f92aaa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_1.png"
new file mode 100644
index 00000000..e0e4fdd7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_2.png"
new file mode 100644
index 00000000..6a9c0b0e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_3.png"
new file mode 100644
index 00000000..8783377b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_4.png"
new file mode 100644
index 00000000..c9de4f73
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_5.png"
new file mode 100644
index 00000000..8deaa3c6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_6.png"
new file mode 100644
index 00000000..47ca880b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_7.png"
new file mode 100644
index 00000000..bf3a5d72
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/123_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_0.png"
new file mode 100644
index 00000000..a54db7c0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_1.png"
new file mode 100644
index 00000000..c5453610
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_2.png"
new file mode 100644
index 00000000..c5a6a76b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_3.png"
new file mode 100644
index 00000000..37b9e822
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_4.png"
new file mode 100644
index 00000000..0521fe20
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_5.png"
new file mode 100644
index 00000000..a5ad765f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_6.png"
new file mode 100644
index 00000000..2dbf0f13
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_7.png"
new file mode 100644
index 00000000..0730ca0c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/124_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_0.png"
new file mode 100644
index 00000000..67e37b29
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_1.png"
new file mode 100644
index 00000000..4dc1ea52
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_2.png"
new file mode 100644
index 00000000..6f3babed
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_3.png"
new file mode 100644
index 00000000..4c7a26c7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_4.png"
new file mode 100644
index 00000000..149eaa9b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_5.png"
new file mode 100644
index 00000000..8ae40f7a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_6.png"
new file mode 100644
index 00000000..58930431
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_7.png"
new file mode 100644
index 00000000..47bd85b9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/125_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_0.png"
new file mode 100644
index 00000000..f602708c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_1.png"
new file mode 100644
index 00000000..cb8b76ea
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_2.png"
new file mode 100644
index 00000000..ccef7a2c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_3.png"
new file mode 100644
index 00000000..9fcf7ab9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_4.png"
new file mode 100644
index 00000000..d3f01bfe
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_5.png"
new file mode 100644
index 00000000..00c57f14
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_6.png"
new file mode 100644
index 00000000..2c2dbb19
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_7.png"
new file mode 100644
index 00000000..55ee5a79
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/126_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_0.png"
new file mode 100644
index 00000000..22be2ded
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_1.png"
new file mode 100644
index 00000000..21abfa47
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_2.png"
new file mode 100644
index 00000000..eae41b9c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_3.png"
new file mode 100644
index 00000000..fcc007e1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_4.png"
new file mode 100644
index 00000000..f4c498cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_5.png"
new file mode 100644
index 00000000..16248c94
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_6.png"
new file mode 100644
index 00000000..1e50183f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_7.png"
new file mode 100644
index 00000000..81bd1d5e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/32_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_0.png"
new file mode 100644
index 00000000..d1a11418
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_1.png"
new file mode 100644
index 00000000..a13dd33a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_2.png"
new file mode 100644
index 00000000..57201b2e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_3.png"
new file mode 100644
index 00000000..02101603
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_4.png"
new file mode 100644
index 00000000..fd181d17
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_5.png"
new file mode 100644
index 00000000..ed4387a6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_6.png"
new file mode 100644
index 00000000..11262923
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_7.png"
new file mode 100644
index 00000000..1d67d55a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/33_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_0.png"
new file mode 100644
index 00000000..7b24cfa0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_1.png"
new file mode 100644
index 00000000..39f7edc7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_2.png"
new file mode 100644
index 00000000..00c4e87e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_3.png"
new file mode 100644
index 00000000..79d51762
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_4.png"
new file mode 100644
index 00000000..d5248308
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_5.png"
new file mode 100644
index 00000000..25a7e43f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_6.png"
new file mode 100644
index 00000000..bf3b6135
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_7.png"
new file mode 100644
index 00000000..1148f2d7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/34_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_0.png"
new file mode 100644
index 00000000..ff572a8d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_1.png"
new file mode 100644
index 00000000..1bba4945
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_2.png"
new file mode 100644
index 00000000..b7d708ec
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_3.png"
new file mode 100644
index 00000000..302cc73f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_4.png"
new file mode 100644
index 00000000..9e11a20b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_5.png"
new file mode 100644
index 00000000..9ab56b3a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_6.png"
new file mode 100644
index 00000000..d75876c6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_7.png"
new file mode 100644
index 00000000..1bbdc9fe
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/35_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_0.png"
new file mode 100644
index 00000000..929660af
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_1.png"
new file mode 100644
index 00000000..646e7705
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_2.png"
new file mode 100644
index 00000000..ba6603cb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_3.png"
new file mode 100644
index 00000000..56e5ba3f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_4.png"
new file mode 100644
index 00000000..e87046c9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_5.png"
new file mode 100644
index 00000000..5a7672d2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_6.png"
new file mode 100644
index 00000000..b16b2a26
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_7.png"
new file mode 100644
index 00000000..1f943127
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/36_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_0.png"
new file mode 100644
index 00000000..44b7f4e5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_1.png"
new file mode 100644
index 00000000..36712dca
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_2.png"
new file mode 100644
index 00000000..759aed9c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_3.png"
new file mode 100644
index 00000000..03253dd3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_4.png"
new file mode 100644
index 00000000..ed5e4bd3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_5.png"
new file mode 100644
index 00000000..fe205908
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_6.png"
new file mode 100644
index 00000000..11f34eb1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_7.png"
new file mode 100644
index 00000000..dee9ba35
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/37_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_0.png"
new file mode 100644
index 00000000..47c51e18
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_1.png"
new file mode 100644
index 00000000..3abcc8bb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_2.png"
new file mode 100644
index 00000000..47a85e91
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_3.png"
new file mode 100644
index 00000000..1af926ef
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_4.png"
new file mode 100644
index 00000000..783342a5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_5.png"
new file mode 100644
index 00000000..20b92228
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_6.png"
new file mode 100644
index 00000000..f68e4d96
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_7.png"
new file mode 100644
index 00000000..c6ffc54b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/38_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_0.png"
new file mode 100644
index 00000000..860f831b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_1.png"
new file mode 100644
index 00000000..021b2327
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_2.png"
new file mode 100644
index 00000000..7ac7b155
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_3.png"
new file mode 100644
index 00000000..82baf947
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_4.png"
new file mode 100644
index 00000000..4fb41865
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_5.png"
new file mode 100644
index 00000000..1c613c5d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_6.png"
new file mode 100644
index 00000000..e570bcd3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_7.png"
new file mode 100644
index 00000000..5cb309f8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/39_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_0.png"
new file mode 100644
index 00000000..346c6339
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_1.png"
new file mode 100644
index 00000000..7dfa7b5e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_2.png"
new file mode 100644
index 00000000..a2b0e0f0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_3.png"
new file mode 100644
index 00000000..f7274257
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_4.png"
new file mode 100644
index 00000000..4c89b55e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_5.png"
new file mode 100644
index 00000000..35b4fcd2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_6.png"
new file mode 100644
index 00000000..215972b7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_7.png"
new file mode 100644
index 00000000..0d8eb552
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/40_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_0.png"
new file mode 100644
index 00000000..42dd3870
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_1.png"
new file mode 100644
index 00000000..0e1da960
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_2.png"
new file mode 100644
index 00000000..31cf47da
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_3.png"
new file mode 100644
index 00000000..e5121869
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_4.png"
new file mode 100644
index 00000000..150cb579
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_5.png"
new file mode 100644
index 00000000..7ac1a183
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_6.png"
new file mode 100644
index 00000000..4bdd2f05
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_7.png"
new file mode 100644
index 00000000..50568ba2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/41_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_0.png"
new file mode 100644
index 00000000..f41cd845
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_1.png"
new file mode 100644
index 00000000..4aee8e67
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_2.png"
new file mode 100644
index 00000000..e045f1db
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_3.png"
new file mode 100644
index 00000000..edc194ba
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_4.png"
new file mode 100644
index 00000000..e417c3e5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_5.png"
new file mode 100644
index 00000000..d6593c6a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_6.png"
new file mode 100644
index 00000000..ffcaaed3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_7.png"
new file mode 100644
index 00000000..4895af70
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/42_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_0.png"
new file mode 100644
index 00000000..af5295e5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_1.png"
new file mode 100644
index 00000000..0e20f345
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_2.png"
new file mode 100644
index 00000000..be2fbb30
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_3.png"
new file mode 100644
index 00000000..5183eb1f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_4.png"
new file mode 100644
index 00000000..526b5002
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_5.png"
new file mode 100644
index 00000000..03d62ff7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_6.png"
new file mode 100644
index 00000000..b245a4cb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_7.png"
new file mode 100644
index 00000000..e21688a9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/43_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_0.png"
new file mode 100644
index 00000000..63e66ffa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_1.png"
new file mode 100644
index 00000000..49f2fe2c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_2.png"
new file mode 100644
index 00000000..32fd2ded
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_3.png"
new file mode 100644
index 00000000..bb1118fa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_4.png"
new file mode 100644
index 00000000..cd80bbdc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_5.png"
new file mode 100644
index 00000000..f83e1151
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_6.png"
new file mode 100644
index 00000000..1f8ad892
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_7.png"
new file mode 100644
index 00000000..8c5d6328
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/44_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_0.png"
new file mode 100644
index 00000000..701bdc8d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_1.png"
new file mode 100644
index 00000000..976103fc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_2.png"
new file mode 100644
index 00000000..4bc50cf4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_3.png"
new file mode 100644
index 00000000..335c2c75
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_4.png"
new file mode 100644
index 00000000..8fc2738d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_5.png"
new file mode 100644
index 00000000..acc4c09c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_6.png"
new file mode 100644
index 00000000..00771044
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_7.png"
new file mode 100644
index 00000000..d486ccd9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/45_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_0.png"
new file mode 100644
index 00000000..44fa798b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_1.png"
new file mode 100644
index 00000000..0f35bbb9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_2.png"
new file mode 100644
index 00000000..e3355f5f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_3.png"
new file mode 100644
index 00000000..9226458b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_4.png"
new file mode 100644
index 00000000..77a841c3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_5.png"
new file mode 100644
index 00000000..e86cbaf9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_6.png"
new file mode 100644
index 00000000..5011dedc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_7.png"
new file mode 100644
index 00000000..53c8871d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/46_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_0.png"
new file mode 100644
index 00000000..9b7c0500
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_1.png"
new file mode 100644
index 00000000..75ba1120
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_2.png"
new file mode 100644
index 00000000..2f07656c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_3.png"
new file mode 100644
index 00000000..3fd07280
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_4.png"
new file mode 100644
index 00000000..9e503ebc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_5.png"
new file mode 100644
index 00000000..fddef157
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_6.png"
new file mode 100644
index 00000000..0117b55a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_7.png"
new file mode 100644
index 00000000..fff13237
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/47_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_0.png"
new file mode 100644
index 00000000..4775310f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_1.png"
new file mode 100644
index 00000000..231cd3f6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_2.png"
new file mode 100644
index 00000000..b653e9cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_3.png"
new file mode 100644
index 00000000..d148a75f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_4.png"
new file mode 100644
index 00000000..9e1b0d5d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_5.png"
new file mode 100644
index 00000000..f554133a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_6.png"
new file mode 100644
index 00000000..d8419285
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_7.png"
new file mode 100644
index 00000000..145ed36c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/48_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_0.png"
new file mode 100644
index 00000000..f979710b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_1.png"
new file mode 100644
index 00000000..0cb26d4b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_2.png"
new file mode 100644
index 00000000..0684a715
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_3.png"
new file mode 100644
index 00000000..ce89eb78
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_4.png"
new file mode 100644
index 00000000..a8f6b14b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_5.png"
new file mode 100644
index 00000000..c7e80337
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_6.png"
new file mode 100644
index 00000000..a091704d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_7.png"
new file mode 100644
index 00000000..f385b75a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/49_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_0.png"
new file mode 100644
index 00000000..6af169d1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_1.png"
new file mode 100644
index 00000000..a3c03009
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_2.png"
new file mode 100644
index 00000000..1ea6ff65
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_3.png"
new file mode 100644
index 00000000..3c0bf1d8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_4.png"
new file mode 100644
index 00000000..eb6a9d91
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_5.png"
new file mode 100644
index 00000000..acdb5ed7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_6.png"
new file mode 100644
index 00000000..c74ac5a2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_7.png"
new file mode 100644
index 00000000..6d3f530a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/50_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_0.png"
new file mode 100644
index 00000000..48bad97f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_1.png"
new file mode 100644
index 00000000..7703a747
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_2.png"
new file mode 100644
index 00000000..804e21b3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_3.png"
new file mode 100644
index 00000000..5b087578
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_4.png"
new file mode 100644
index 00000000..30727fb1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_5.png"
new file mode 100644
index 00000000..de240eae
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_6.png"
new file mode 100644
index 00000000..c252b01e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_7.png"
new file mode 100644
index 00000000..806f99b2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/51_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_0.png"
new file mode 100644
index 00000000..a554b313
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_1.png"
new file mode 100644
index 00000000..936c84fd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_2.png"
new file mode 100644
index 00000000..57e3f05c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_3.png"
new file mode 100644
index 00000000..6a8f99ef
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_4.png"
new file mode 100644
index 00000000..91f97f0b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_5.png"
new file mode 100644
index 00000000..a78504fe
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_6.png"
new file mode 100644
index 00000000..f52bd2c5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_7.png"
new file mode 100644
index 00000000..621b8e04
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/52_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_0.png"
new file mode 100644
index 00000000..a750615c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_1.png"
new file mode 100644
index 00000000..1c4e097d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_2.png"
new file mode 100644
index 00000000..f5238560
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_3.png"
new file mode 100644
index 00000000..85505f80
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_4.png"
new file mode 100644
index 00000000..14e8da11
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_5.png"
new file mode 100644
index 00000000..79781fc6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_6.png"
new file mode 100644
index 00000000..a6e18638
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_7.png"
new file mode 100644
index 00000000..bff5eb68
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/53_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_0.png"
new file mode 100644
index 00000000..98ce4239
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_1.png"
new file mode 100644
index 00000000..643ef36b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_2.png"
new file mode 100644
index 00000000..2c3894ea
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_3.png"
new file mode 100644
index 00000000..6190fdc2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_4.png"
new file mode 100644
index 00000000..92afc20c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_5.png"
new file mode 100644
index 00000000..feab352e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_6.png"
new file mode 100644
index 00000000..c46698f3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_7.png"
new file mode 100644
index 00000000..175dbeb4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/54_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_0.png"
new file mode 100644
index 00000000..644838b0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_1.png"
new file mode 100644
index 00000000..b84e0eb5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_2.png"
new file mode 100644
index 00000000..3896d08a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_3.png"
new file mode 100644
index 00000000..21e92663
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_4.png"
new file mode 100644
index 00000000..d6aed1b8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_5.png"
new file mode 100644
index 00000000..1f60c36e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_6.png"
new file mode 100644
index 00000000..2a7f1fbc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_7.png"
new file mode 100644
index 00000000..80c527b2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/55_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_0.png"
new file mode 100644
index 00000000..8a1e0c76
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_1.png"
new file mode 100644
index 00000000..a0a81a07
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_2.png"
new file mode 100644
index 00000000..367f20ed
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_3.png"
new file mode 100644
index 00000000..cf56f8f9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_4.png"
new file mode 100644
index 00000000..e57cce75
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_5.png"
new file mode 100644
index 00000000..c206547d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_6.png"
new file mode 100644
index 00000000..040692af
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_7.png"
new file mode 100644
index 00000000..4c27c106
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/56_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_0.png"
new file mode 100644
index 00000000..e20a46f8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_1.png"
new file mode 100644
index 00000000..17cd2621
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_2.png"
new file mode 100644
index 00000000..98fad29b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_3.png"
new file mode 100644
index 00000000..ba80aa01
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_4.png"
new file mode 100644
index 00000000..e9822435
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_5.png"
new file mode 100644
index 00000000..e947ff89
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_6.png"
new file mode 100644
index 00000000..c4ae076f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_7.png"
new file mode 100644
index 00000000..bd4ca161
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/57_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_0.png"
new file mode 100644
index 00000000..d9e35f7c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_1.png"
new file mode 100644
index 00000000..0dd6dd09
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_2.png"
new file mode 100644
index 00000000..b9f13194
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_3.png"
new file mode 100644
index 00000000..06043377
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_4.png"
new file mode 100644
index 00000000..7283e030
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_5.png"
new file mode 100644
index 00000000..2df3db93
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_6.png"
new file mode 100644
index 00000000..e1209092
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_7.png"
new file mode 100644
index 00000000..e85fc0a5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/58_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_0.png"
new file mode 100644
index 00000000..09b21205
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_1.png"
new file mode 100644
index 00000000..4b918148
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_2.png"
new file mode 100644
index 00000000..cc302c20
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_3.png"
new file mode 100644
index 00000000..6921796c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_4.png"
new file mode 100644
index 00000000..4b77147b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_5.png"
new file mode 100644
index 00000000..4325e62c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_6.png"
new file mode 100644
index 00000000..135da331
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_7.png"
new file mode 100644
index 00000000..353ae334
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/59_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_0.png"
new file mode 100644
index 00000000..210e77df
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_1.png"
new file mode 100644
index 00000000..507c736d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_2.png"
new file mode 100644
index 00000000..42273228
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_3.png"
new file mode 100644
index 00000000..ac4d0263
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_4.png"
new file mode 100644
index 00000000..5cf89ed3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_5.png"
new file mode 100644
index 00000000..5ceb7fe1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_6.png"
new file mode 100644
index 00000000..45121a7e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_7.png"
new file mode 100644
index 00000000..33eb9e30
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/60_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_0.png"
new file mode 100644
index 00000000..72bc6bfa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_1.png"
new file mode 100644
index 00000000..50def570
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_2.png"
new file mode 100644
index 00000000..a0e9a670
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_3.png"
new file mode 100644
index 00000000..0b7d1492
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_4.png"
new file mode 100644
index 00000000..c0b71d85
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_5.png"
new file mode 100644
index 00000000..cf39e63d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_6.png"
new file mode 100644
index 00000000..95282d4a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_7.png"
new file mode 100644
index 00000000..6da5c024
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/61_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_0.png"
new file mode 100644
index 00000000..bb121097
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_1.png"
new file mode 100644
index 00000000..5b82445c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_2.png"
new file mode 100644
index 00000000..d4ca5a6d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_3.png"
new file mode 100644
index 00000000..24ddea86
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_4.png"
new file mode 100644
index 00000000..34130a26
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_5.png"
new file mode 100644
index 00000000..823d9969
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_6.png"
new file mode 100644
index 00000000..63dd85d3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_7.png"
new file mode 100644
index 00000000..7c6158f2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/62_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_0.png"
new file mode 100644
index 00000000..2d9571ea
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_1.png"
new file mode 100644
index 00000000..5376e070
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_2.png"
new file mode 100644
index 00000000..746ffa03
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_3.png"
new file mode 100644
index 00000000..58bb35ac
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_4.png"
new file mode 100644
index 00000000..ff1dc1a3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_5.png"
new file mode 100644
index 00000000..13e34ce4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_6.png"
new file mode 100644
index 00000000..9407c833
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_7.png"
new file mode 100644
index 00000000..e9c3edf3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/63_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_0.png"
new file mode 100644
index 00000000..0a3a1013
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_1.png"
new file mode 100644
index 00000000..63139606
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_2.png"
new file mode 100644
index 00000000..c49565c7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_3.png"
new file mode 100644
index 00000000..c697f9bd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_4.png"
new file mode 100644
index 00000000..de194c73
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_5.png"
new file mode 100644
index 00000000..99050043
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_6.png"
new file mode 100644
index 00000000..7b915693
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_7.png"
new file mode 100644
index 00000000..b9ebcee2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/64_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_0.png"
new file mode 100644
index 00000000..c3880661
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_1.png"
new file mode 100644
index 00000000..9f7d7f7e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_2.png"
new file mode 100644
index 00000000..6f766948
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_3.png"
new file mode 100644
index 00000000..35931288
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_4.png"
new file mode 100644
index 00000000..23f4814b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_5.png"
new file mode 100644
index 00000000..8eae6d7e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_6.png"
new file mode 100644
index 00000000..02fec761
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_7.png"
new file mode 100644
index 00000000..c80822e1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/65_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_0.png"
new file mode 100644
index 00000000..278a401d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_1.png"
new file mode 100644
index 00000000..47c3735f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_2.png"
new file mode 100644
index 00000000..dfcf8c4c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_3.png"
new file mode 100644
index 00000000..d8d69a74
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_4.png"
new file mode 100644
index 00000000..842976ae
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_5.png"
new file mode 100644
index 00000000..991caf87
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_6.png"
new file mode 100644
index 00000000..32c52841
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_7.png"
new file mode 100644
index 00000000..14e8609e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/66_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_0.png"
new file mode 100644
index 00000000..7f2786a9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_1.png"
new file mode 100644
index 00000000..798b421c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_2.png"
new file mode 100644
index 00000000..802aaab4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_3.png"
new file mode 100644
index 00000000..9d975ca1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_4.png"
new file mode 100644
index 00000000..94ee5775
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_5.png"
new file mode 100644
index 00000000..021a877f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_6.png"
new file mode 100644
index 00000000..c3587323
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_7.png"
new file mode 100644
index 00000000..46acdf29
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/67_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_0.png"
new file mode 100644
index 00000000..9e86a2fc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_1.png"
new file mode 100644
index 00000000..d7d3ac3f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_2.png"
new file mode 100644
index 00000000..3a48f050
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_3.png"
new file mode 100644
index 00000000..808603a7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_4.png"
new file mode 100644
index 00000000..d4f9bd4c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_5.png"
new file mode 100644
index 00000000..25d8a962
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_6.png"
new file mode 100644
index 00000000..0059c7f0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_7.png"
new file mode 100644
index 00000000..c2aa9228
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/68_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_0.png"
new file mode 100644
index 00000000..51140e0a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_1.png"
new file mode 100644
index 00000000..bcf7311e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_2.png"
new file mode 100644
index 00000000..582b289c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_3.png"
new file mode 100644
index 00000000..e3311233
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_4.png"
new file mode 100644
index 00000000..a310f84c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_5.png"
new file mode 100644
index 00000000..ad696687
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_6.png"
new file mode 100644
index 00000000..a7b8f454
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_7.png"
new file mode 100644
index 00000000..7f3200cb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/69_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_0.png"
new file mode 100644
index 00000000..e0fb76c8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_1.png"
new file mode 100644
index 00000000..40c8217c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_2.png"
new file mode 100644
index 00000000..63c811b1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_3.png"
new file mode 100644
index 00000000..7c93cf7e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_4.png"
new file mode 100644
index 00000000..6033fb19
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_5.png"
new file mode 100644
index 00000000..bfcf0289
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_6.png"
new file mode 100644
index 00000000..5fe9cdb2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_7.png"
new file mode 100644
index 00000000..027af86d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/70_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_0.png"
new file mode 100644
index 00000000..679b5e92
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_1.png"
new file mode 100644
index 00000000..6f5271b0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_2.png"
new file mode 100644
index 00000000..93dc749d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_3.png"
new file mode 100644
index 00000000..03a4bc6b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_4.png"
new file mode 100644
index 00000000..3976418c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_5.png"
new file mode 100644
index 00000000..b0c42958
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_6.png"
new file mode 100644
index 00000000..bb8710d2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_7.png"
new file mode 100644
index 00000000..68148a94
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/71_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_0.png"
new file mode 100644
index 00000000..a2edd04a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_1.png"
new file mode 100644
index 00000000..f1e8bcd4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_2.png"
new file mode 100644
index 00000000..a9516f1a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_3.png"
new file mode 100644
index 00000000..5b944907
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_4.png"
new file mode 100644
index 00000000..83f7dbf0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_5.png"
new file mode 100644
index 00000000..5a40ad33
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_6.png"
new file mode 100644
index 00000000..b8898373
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_7.png"
new file mode 100644
index 00000000..4ec34df5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/72_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_0.png"
new file mode 100644
index 00000000..e5544322
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_1.png"
new file mode 100644
index 00000000..08d1924e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_2.png"
new file mode 100644
index 00000000..3c870856
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_3.png"
new file mode 100644
index 00000000..11d0f760
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_4.png"
new file mode 100644
index 00000000..ebacf1f3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_5.png"
new file mode 100644
index 00000000..d58377d5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_6.png"
new file mode 100644
index 00000000..293b96b2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_7.png"
new file mode 100644
index 00000000..80f409d9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/73_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_0.png"
new file mode 100644
index 00000000..cc1d9f36
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_1.png"
new file mode 100644
index 00000000..91713328
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_2.png"
new file mode 100644
index 00000000..c08cea88
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_3.png"
new file mode 100644
index 00000000..ce8e8c84
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_4.png"
new file mode 100644
index 00000000..b112fa68
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_5.png"
new file mode 100644
index 00000000..c9a7bbb9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_6.png"
new file mode 100644
index 00000000..8f72aace
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_7.png"
new file mode 100644
index 00000000..f85a9f96
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/74_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_0.png"
new file mode 100644
index 00000000..b1f3ac4c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_1.png"
new file mode 100644
index 00000000..9f061096
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_2.png"
new file mode 100644
index 00000000..9224666c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_3.png"
new file mode 100644
index 00000000..eb764897
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_4.png"
new file mode 100644
index 00000000..7dfee155
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_5.png"
new file mode 100644
index 00000000..8b081f65
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_6.png"
new file mode 100644
index 00000000..95631cf9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_7.png"
new file mode 100644
index 00000000..db915eab
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/75_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_0.png"
new file mode 100644
index 00000000..5ceef1d5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_1.png"
new file mode 100644
index 00000000..53868311
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_2.png"
new file mode 100644
index 00000000..6c8393ab
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_3.png"
new file mode 100644
index 00000000..fbe57122
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_4.png"
new file mode 100644
index 00000000..e47a6ebf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_5.png"
new file mode 100644
index 00000000..f349490d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_6.png"
new file mode 100644
index 00000000..e6611431
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_7.png"
new file mode 100644
index 00000000..64d08340
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/76_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_0.png"
new file mode 100644
index 00000000..05aab7db
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_1.png"
new file mode 100644
index 00000000..64cb6085
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_2.png"
new file mode 100644
index 00000000..2da938c7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_3.png"
new file mode 100644
index 00000000..14179d90
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_4.png"
new file mode 100644
index 00000000..894b4707
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_5.png"
new file mode 100644
index 00000000..a55e5b63
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_6.png"
new file mode 100644
index 00000000..4f0e7147
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_7.png"
new file mode 100644
index 00000000..804e8c26
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/77_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_0.png"
new file mode 100644
index 00000000..e1fede7b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_1.png"
new file mode 100644
index 00000000..23b2a744
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_2.png"
new file mode 100644
index 00000000..5471820f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_3.png"
new file mode 100644
index 00000000..bc9659a6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_4.png"
new file mode 100644
index 00000000..54b95f95
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_5.png"
new file mode 100644
index 00000000..2c67a513
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_6.png"
new file mode 100644
index 00000000..44326f55
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_7.png"
new file mode 100644
index 00000000..4d5d8dc4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/78_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_0.png"
new file mode 100644
index 00000000..f3f4c1e5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_1.png"
new file mode 100644
index 00000000..23d960e7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_2.png"
new file mode 100644
index 00000000..ce5c52be
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_3.png"
new file mode 100644
index 00000000..b80a4f27
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_4.png"
new file mode 100644
index 00000000..7fa16f88
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_5.png"
new file mode 100644
index 00000000..c67c5bbe
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_6.png"
new file mode 100644
index 00000000..e89ecd29
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_7.png"
new file mode 100644
index 00000000..d964ae44
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/79_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_0.png"
new file mode 100644
index 00000000..61403c9c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_1.png"
new file mode 100644
index 00000000..992338d2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_2.png"
new file mode 100644
index 00000000..cfbd4311
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_3.png"
new file mode 100644
index 00000000..5de94723
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_4.png"
new file mode 100644
index 00000000..0fecaf1c
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_5.png"
new file mode 100644
index 00000000..cbf65bda
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_6.png"
new file mode 100644
index 00000000..ff54a387
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_7.png"
new file mode 100644
index 00000000..3d6f415b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/80_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_0.png"
new file mode 100644
index 00000000..5a2025f8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_1.png"
new file mode 100644
index 00000000..511aec02
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_2.png"
new file mode 100644
index 00000000..8e2f7e96
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_3.png"
new file mode 100644
index 00000000..52edfd4f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_4.png"
new file mode 100644
index 00000000..e60c7a91
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_5.png"
new file mode 100644
index 00000000..d58df4f3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_6.png"
new file mode 100644
index 00000000..d31ba09d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_7.png"
new file mode 100644
index 00000000..07705765
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/81_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_0.png"
new file mode 100644
index 00000000..1bc3a983
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_1.png"
new file mode 100644
index 00000000..e5931dc9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_2.png"
new file mode 100644
index 00000000..a5f8bb7b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_3.png"
new file mode 100644
index 00000000..8b138a96
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_4.png"
new file mode 100644
index 00000000..8a570606
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_5.png"
new file mode 100644
index 00000000..f4dc04e1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_6.png"
new file mode 100644
index 00000000..2c7073a2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_7.png"
new file mode 100644
index 00000000..f4d966dd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/82_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_0.png"
new file mode 100644
index 00000000..c0487824
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_1.png"
new file mode 100644
index 00000000..3515f98d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_2.png"
new file mode 100644
index 00000000..4a13b8d7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_3.png"
new file mode 100644
index 00000000..0944ac8b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_4.png"
new file mode 100644
index 00000000..8b9f82f0
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_5.png"
new file mode 100644
index 00000000..67f70adc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_6.png"
new file mode 100644
index 00000000..0d3c0e13
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_7.png"
new file mode 100644
index 00000000..0daab32d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/83_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_0.png"
new file mode 100644
index 00000000..ffc3eb4a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_1.png"
new file mode 100644
index 00000000..956e5eb8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_2.png"
new file mode 100644
index 00000000..a1e94faf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_3.png"
new file mode 100644
index 00000000..2369b0c2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_4.png"
new file mode 100644
index 00000000..6d82ee80
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_5.png"
new file mode 100644
index 00000000..6e95b706
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_6.png"
new file mode 100644
index 00000000..9d62561d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_7.png"
new file mode 100644
index 00000000..accde304
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/84_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_0.png"
new file mode 100644
index 00000000..48e9906f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_1.png"
new file mode 100644
index 00000000..30807206
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_2.png"
new file mode 100644
index 00000000..e5a9369e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_3.png"
new file mode 100644
index 00000000..5816c66b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_4.png"
new file mode 100644
index 00000000..7d18ec0b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_5.png"
new file mode 100644
index 00000000..f7b5550d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_6.png"
new file mode 100644
index 00000000..7106103a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_7.png"
new file mode 100644
index 00000000..7179daf8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/85_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_0.png"
new file mode 100644
index 00000000..2412ea17
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_1.png"
new file mode 100644
index 00000000..7de1777b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_2.png"
new file mode 100644
index 00000000..aae67daa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_3.png"
new file mode 100644
index 00000000..e932d2e7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_4.png"
new file mode 100644
index 00000000..9a580c85
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_5.png"
new file mode 100644
index 00000000..6766a5df
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_6.png"
new file mode 100644
index 00000000..462e7290
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_7.png"
new file mode 100644
index 00000000..7843c125
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/86_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_0.png"
new file mode 100644
index 00000000..e7c12856
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_1.png"
new file mode 100644
index 00000000..e0af6e0f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_2.png"
new file mode 100644
index 00000000..4bdce941
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_3.png"
new file mode 100644
index 00000000..2d446b92
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_4.png"
new file mode 100644
index 00000000..2719131d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_5.png"
new file mode 100644
index 00000000..f635def8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_6.png"
new file mode 100644
index 00000000..25ddeb78
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_7.png"
new file mode 100644
index 00000000..b26e7021
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/87_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_0.png"
new file mode 100644
index 00000000..43b14276
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_1.png"
new file mode 100644
index 00000000..5703b630
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_2.png"
new file mode 100644
index 00000000..b3b565a8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_3.png"
new file mode 100644
index 00000000..4afd6dd1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_4.png"
new file mode 100644
index 00000000..198f7b01
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_5.png"
new file mode 100644
index 00000000..e46b6410
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_6.png"
new file mode 100644
index 00000000..81830a09
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_7.png"
new file mode 100644
index 00000000..a916e4eb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/88_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_0.png"
new file mode 100644
index 00000000..b6f9c4be
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_1.png"
new file mode 100644
index 00000000..e5e7a1e2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_2.png"
new file mode 100644
index 00000000..9f9d361e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_3.png"
new file mode 100644
index 00000000..44048913
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_4.png"
new file mode 100644
index 00000000..802bfe4b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_5.png"
new file mode 100644
index 00000000..d77e019d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_6.png"
new file mode 100644
index 00000000..4a4fa6b6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_7.png"
new file mode 100644
index 00000000..b3dd7980
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/89_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_0.png"
new file mode 100644
index 00000000..3e10db1a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_1.png"
new file mode 100644
index 00000000..9c4e67e6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_2.png"
new file mode 100644
index 00000000..92d0167a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_3.png"
new file mode 100644
index 00000000..9d346a20
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_4.png"
new file mode 100644
index 00000000..ba6012bb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_5.png"
new file mode 100644
index 00000000..b664cd20
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_6.png"
new file mode 100644
index 00000000..500c0999
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_7.png"
new file mode 100644
index 00000000..3e899a8a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/90_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_0.png"
new file mode 100644
index 00000000..0ad0d550
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_1.png"
new file mode 100644
index 00000000..afbe0f0d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_2.png"
new file mode 100644
index 00000000..d2c88991
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_3.png"
new file mode 100644
index 00000000..002032da
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_4.png"
new file mode 100644
index 00000000..795ce7d7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_5.png"
new file mode 100644
index 00000000..1d1eb22b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_6.png"
new file mode 100644
index 00000000..bb312676
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_7.png"
new file mode 100644
index 00000000..70c2cf31
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/91_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_0.png"
new file mode 100644
index 00000000..e730aed4
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_1.png"
new file mode 100644
index 00000000..7f9b51d8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_2.png"
new file mode 100644
index 00000000..f01916f5
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_3.png"
new file mode 100644
index 00000000..b850533f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_4.png"
new file mode 100644
index 00000000..ece16826
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_5.png"
new file mode 100644
index 00000000..82166907
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_6.png"
new file mode 100644
index 00000000..9b581fac
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_7.png"
new file mode 100644
index 00000000..e57b2e8e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/92_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_0.png"
new file mode 100644
index 00000000..c21f5220
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_1.png"
new file mode 100644
index 00000000..64cbba6e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_2.png"
new file mode 100644
index 00000000..a81e1cda
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_3.png"
new file mode 100644
index 00000000..273f35cc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_4.png"
new file mode 100644
index 00000000..b44e4c69
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_5.png"
new file mode 100644
index 00000000..1e96e9b1
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_6.png"
new file mode 100644
index 00000000..3407e552
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_7.png"
new file mode 100644
index 00000000..428e0728
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/93_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_0.png"
new file mode 100644
index 00000000..baa512b6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_1.png"
new file mode 100644
index 00000000..5f1b1161
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_2.png"
new file mode 100644
index 00000000..1cd051ea
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_3.png"
new file mode 100644
index 00000000..a0a7264b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_4.png"
new file mode 100644
index 00000000..26e82bc6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_5.png"
new file mode 100644
index 00000000..19c32ecb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_6.png"
new file mode 100644
index 00000000..e753cade
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_7.png"
new file mode 100644
index 00000000..7d4dfb7f
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/94_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_0.png"
new file mode 100644
index 00000000..2b255198
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_1.png"
new file mode 100644
index 00000000..6fea8c2b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_2.png"
new file mode 100644
index 00000000..d170be10
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_3.png"
new file mode 100644
index 00000000..fe5501eb
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_4.png"
new file mode 100644
index 00000000..ec87fee7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_5.png"
new file mode 100644
index 00000000..efa9f0bc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_6.png"
new file mode 100644
index 00000000..6840b824
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_7.png"
new file mode 100644
index 00000000..85f887d8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/95_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_0.png"
new file mode 100644
index 00000000..2033d9b9
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_1.png"
new file mode 100644
index 00000000..c60d36aa
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_2.png"
new file mode 100644
index 00000000..878dd1bc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_3.png"
new file mode 100644
index 00000000..f7429a2a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_4.png"
new file mode 100644
index 00000000..6dff9dac
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_5.png"
new file mode 100644
index 00000000..4869f9d2
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_6.png"
new file mode 100644
index 00000000..f6a8a696
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_7.png"
new file mode 100644
index 00000000..89b19d45
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/96_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_0.png"
new file mode 100644
index 00000000..64262248
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_1.png"
new file mode 100644
index 00000000..f9a61f4a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_2.png"
new file mode 100644
index 00000000..d1d02ace
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_3.png"
new file mode 100644
index 00000000..7e9e936b
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_4.png"
new file mode 100644
index 00000000..21dd17ea
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_5.png"
new file mode 100644
index 00000000..5e59fa26
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_6.png"
new file mode 100644
index 00000000..6f279a45
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_7.png"
new file mode 100644
index 00000000..6447e6dd
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/97_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_0.png"
new file mode 100644
index 00000000..3d259317
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_1.png"
new file mode 100644
index 00000000..c76706a7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_2.png"
new file mode 100644
index 00000000..6dceadbf
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_3.png"
new file mode 100644
index 00000000..d3cf1bc6
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_4.png"
new file mode 100644
index 00000000..5d5addc7
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_5.png"
new file mode 100644
index 00000000..55479d94
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_6.png"
new file mode 100644
index 00000000..4d8f3d92
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_7.png"
new file mode 100644
index 00000000..cec60174
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/98_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_0.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_0.png"
new file mode 100644
index 00000000..f5975c91
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_0.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_1.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_1.png"
new file mode 100644
index 00000000..3cdfdec3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_1.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_2.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_2.png"
new file mode 100644
index 00000000..a0dc5731
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_2.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_3.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_3.png"
new file mode 100644
index 00000000..e183f6a3
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_3.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_4.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_4.png"
new file mode 100644
index 00000000..bc1a490d
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_4.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_5.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_5.png"
new file mode 100644
index 00000000..c568d5e8
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_5.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_6.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_6.png"
new file mode 100644
index 00000000..e274446e
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_6.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_7.png" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_7.png"
new file mode 100644
index 00000000..f7b9e098
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/99_7.png" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/make_labels.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/make_labels.py"
new file mode 100644
index 00000000..c8146f6d
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/labels/make_labels.py"
@@ -0,0 +1,23 @@
+import os
+import string
+import pipes
+
+font = 'futura-normal'
+
+def make_labels(s):
+ l = string.printable
+ for word in l:
+ if word == ' ':
+ os.system('convert -fill black -background white -bordercolor white -font %s -pointsize %d label:"\ " 32_%d.png'%(font,s,s/12-1))
+ if word == '@':
+ os.system('convert -fill black -background white -bordercolor white -font %s -pointsize %d label:"\@" 64_%d.png'%(font,s,s/12-1))
+ elif word == '\\':
+ os.system('convert -fill black -background white -bordercolor white -font %s -pointsize %d label:"\\\\\\\\" 92_%d.png'%(font,s,s/12-1))
+ elif ord(word) in [9,10,11,12,13,14]:
+ pass
+ else:
+ os.system("convert -fill black -background white -bordercolor white -font %s -pointsize %d label:%s \"%d_%d.png\""%(font,s,pipes.quote(word), ord(word),s/12-1))
+
+for i in [12,24,36,48,60,72,84,96]:
+ make_labels(i)
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/openimages.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/openimages.names"
new file mode 100644
index 00000000..ddfd8f22
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/openimages.names"
@@ -0,0 +1,601 @@
+Tortoise
+Container
+Magpie
+Sea turtle
+Football
+Ambulance
+Ladder
+Toothbrush
+Syringe
+Sink
+Toy
+Organ
+Cassette deck
+Apple
+Human eye
+Cosmetics
+Paddle
+Snowman
+Beer
+Chopsticks
+Human beard
+Bird
+Parking meter
+Traffic light
+Croissant
+Cucumber
+Radish
+Towel
+Doll
+Skull
+Washing machine
+Glove
+Tick
+Belt
+Sunglasses
+Banjo
+Cart
+Ball
+Backpack
+Bicycle
+Home appliance
+Centipede
+Boat
+Surfboard
+Boot
+Headphones
+Hot dog
+Shorts
+Fast food
+Bus
+Boy
+Screwdriver
+Bicycle wheel
+Barge
+Laptop
+Miniskirt
+Drill
+Dress
+Bear
+Waffle
+Pancake
+Brown bear
+Woodpecker
+Blue jay
+Pretzel
+Bagel
+Tower
+Teapot
+Person
+Bow and arrow
+Swimwear
+Beehive
+Brassiere
+Bee
+Bat
+Starfish
+Popcorn
+Burrito
+Chainsaw
+Balloon
+Wrench
+Tent
+Vehicle registration plate
+Lantern
+Toaster
+Flashlight
+Billboard
+Tiara
+Limousine
+Necklace
+Carnivore
+Scissors
+Stairs
+Computer keyboard
+Printer
+Traffic sign
+Chair
+Shirt
+Poster
+Cheese
+Sock
+Fire hydrant
+Land vehicle
+Earrings
+Tie
+Watercraft
+Cabinetry
+Suitcase
+Muffin
+Bidet
+Snack
+Snowmobile
+Clock
+Medical equipment
+Cattle
+Cello
+Jet ski
+Camel
+Coat
+Suit
+Desk
+Cat
+Bronze sculpture
+Juice
+Gondola
+Beetle
+Cannon
+Computer mouse
+Cookie
+Office building
+Fountain
+Coin
+Calculator
+Cocktail
+Computer monitor
+Box
+Stapler
+Christmas tree
+Cowboy hat
+Hiking equipment
+Studio couch
+Drum
+Dessert
+Wine rack
+Drink
+Zucchini
+Ladle
+Human mouth
+Dairy
+Dice
+Oven
+Dinosaur
+Ratchet
+Couch
+Cricket ball
+Winter melon
+Spatula
+Whiteboard
+Pencil sharpener
+Door
+Hat
+Shower
+Eraser
+Fedora
+Guacamole
+Dagger
+Scarf
+Dolphin
+Sombrero
+Tin can
+Mug
+Tap
+Harbor seal
+Stretcher
+Can opener
+Goggles
+Human body
+Roller skates
+Coffee cup
+Cutting board
+Blender
+Plumbing fixture
+Stop sign
+Office supplies
+Volleyball
+Vase
+Slow cooker
+Wardrobe
+Coffee
+Whisk
+Paper towel
+Personal care
+Food
+Sun hat
+Tree house
+Flying disc
+Skirt
+Gas stove
+Salt and pepper shakers
+Mechanical fan
+Face powder
+Fax
+Fruit
+French fries
+Nightstand
+Barrel
+Kite
+Tart
+Treadmill
+Fox
+Flag
+Horn
+Window blind
+Human foot
+Golf cart
+Jacket
+Egg
+Street light
+Guitar
+Pillow
+Human leg
+Isopod
+Grape
+Human ear
+Power plugs and sockets
+Panda
+Giraffe
+Woman
+Door handle
+Rhinoceros
+Bathtub
+Goldfish
+Houseplant
+Goat
+Baseball bat
+Baseball glove
+Mixing bowl
+Marine invertebrates
+Kitchen utensil
+Light switch
+House
+Horse
+Stationary bicycle
+Hammer
+Ceiling fan
+Sofa bed
+Adhesive tape
+Harp
+Sandal
+Bicycle helmet
+Saucer
+Harpsichord
+Human hair
+Heater
+Harmonica
+Hamster
+Curtain
+Bed
+Kettle
+Fireplace
+Scale
+Drinking straw
+Insect
+Hair dryer
+Kitchenware
+Indoor rower
+Invertebrate
+Food processor
+Bookcase
+Refrigerator
+Wood-burning stove
+Punching bag
+Common fig
+Cocktail shaker
+Jaguar
+Golf ball
+Fashion accessory
+Alarm clock
+Filing cabinet
+Artichoke
+Table
+Tableware
+Kangaroo
+Koala
+Knife
+Bottle
+Bottle opener
+Lynx
+Lavender
+Lighthouse
+Dumbbell
+Human head
+Bowl
+Humidifier
+Porch
+Lizard
+Billiard table
+Mammal
+Mouse
+Motorcycle
+Musical instrument
+Swim cap
+Frying pan
+Snowplow
+Bathroom cabinet
+Missile
+Bust
+Man
+Waffle iron
+Milk
+Ring binder
+Plate
+Mobile phone
+Baked goods
+Mushroom
+Crutch
+Pitcher
+Mirror
+Lifejacket
+Table tennis racket
+Pencil case
+Musical keyboard
+Scoreboard
+Briefcase
+Kitchen knife
+Nail
+Tennis ball
+Plastic bag
+Oboe
+Chest of drawers
+Ostrich
+Piano
+Girl
+Plant
+Potato
+Hair spray
+Sports equipment
+Pasta
+Penguin
+Pumpkin
+Pear
+Infant bed
+Polar bear
+Mixer
+Cupboard
+Jacuzzi
+Pizza
+Digital clock
+Pig
+Reptile
+Rifle
+Lipstick
+Skateboard
+Raven
+High heels
+Red panda
+Rose
+Rabbit
+Sculpture
+Saxophone
+Shotgun
+Seafood
+Submarine sandwich
+Snowboard
+Sword
+Picture frame
+Sushi
+Loveseat
+Ski
+Squirrel
+Tripod
+Stethoscope
+Submarine
+Scorpion
+Segway
+Training bench
+Snake
+Coffee table
+Skyscraper
+Sheep
+Television
+Trombone
+Tea
+Tank
+Taco
+Telephone
+Torch
+Tiger
+Strawberry
+Trumpet
+Tree
+Tomato
+Train
+Tool
+Picnic basket
+Cooking spray
+Trousers
+Bowling equipment
+Football helmet
+Truck
+Measuring cup
+Coffeemaker
+Violin
+Vehicle
+Handbag
+Paper cutter
+Wine
+Weapon
+Wheel
+Worm
+Wok
+Whale
+Zebra
+Auto part
+Jug
+Pizza cutter
+Cream
+Monkey
+Lion
+Bread
+Platter
+Chicken
+Eagle
+Helicopter
+Owl
+Duck
+Turtle
+Hippopotamus
+Crocodile
+Toilet
+Toilet paper
+Squid
+Clothing
+Footwear
+Lemon
+Spider
+Deer
+Frog
+Banana
+Rocket
+Wine glass
+Countertop
+Tablet computer
+Waste container
+Swimming pool
+Dog
+Book
+Elephant
+Shark
+Candle
+Leopard
+Axe
+Hand dryer
+Soap dispenser
+Porcupine
+Flower
+Canary
+Cheetah
+Palm tree
+Hamburger
+Maple
+Building
+Fish
+Lobster
+Asparagus
+Furniture
+Hedgehog
+Airplane
+Spoon
+Otter
+Bull
+Oyster
+Horizontal bar
+Convenience store
+Bomb
+Bench
+Ice cream
+Caterpillar
+Butterfly
+Parachute
+Orange
+Antelope
+Beaker
+Moths and butterflies
+Window
+Closet
+Castle
+Jellyfish
+Goose
+Mule
+Swan
+Peach
+Coconut
+Seat belt
+Raccoon
+Chisel
+Fork
+Lamp
+Camera
+Squash
+Racket
+Human face
+Human arm
+Vegetable
+Diaper
+Unicycle
+Falcon
+Chime
+Snail
+Shellfish
+Cabbage
+Carrot
+Mango
+Jeans
+Flowerpot
+Pineapple
+Drawer
+Stool
+Envelope
+Cake
+Dragonfly
+Sunflower
+Microwave oven
+Honeycomb
+Marine mammal
+Sea lion
+Ladybug
+Shelf
+Watch
+Candy
+Salad
+Parrot
+Handgun
+Sparrow
+Van
+Grinder
+Spice rack
+Light bulb
+Corded phone
+Sports uniform
+Tennis racket
+Wall clock
+Serving tray
+Kitchen & dining room table
+Dog bed
+Cake stand
+Cat furniture
+Bathroom accessory
+Facial tissue holder
+Pressure cooker
+Kitchen appliance
+Tire
+Ruler
+Luggage and bags
+Microphone
+Broccoli
+Umbrella
+Pastry
+Grapefruit
+Band-aid
+Animal
+Bell pepper
+Turkey
+Lily
+Pomegranate
+Doughnut
+Glasses
+Human nose
+Pen
+Ant
+Car
+Aircraft
+Human hand
+Skunk
+Teddy bear
+Watermelon
+Cantaloupe
+Dishwasher
+Flute
+Balance beam
+Sandwich
+Shrimp
+Sewing machine
+Binoculars
+Rays and skates
+Ipod
+Accordion
+Willow
+Crab
+Crown
+Seahorse
+Perfume
+Alpaca
+Taxi
+Canoe
+Remote control
+Wheelchair
+Rugby ball
+Armadillo
+Maracas
+Helmet
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/person.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/person.jpg"
new file mode 100644
index 00000000..61d377ff
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/person.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/scream.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/scream.jpg"
new file mode 100644
index 00000000..43f2c36a
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/scream.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/voc.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/voc.names"
new file mode 100644
index 00000000..8420ab35
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/data/voc.names"
@@ -0,0 +1,20 @@
+aeroplane
+bicycle
+bird
+boat
+bottle
+bus
+car
+cat
+chair
+cow
+diningtable
+dog
+horse
+motorbike
+person
+pottedplant
+sheep
+sofa
+train
+tvmonitor
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/dummy/m.jpg" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/dummy/m.jpg"
new file mode 100644
index 00000000..0dd32ffc
Binary files /dev/null and "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/dummy/m.jpg" differ
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/art.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/art.c"
new file mode 100644
index 00000000..932688e7
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/art.c"
@@ -0,0 +1,59 @@
+#include "darknet.h"
+
+#include
+
+void demo_art(char *cfgfile, char *weightfile, int cam_index)
+{
+#ifdef OPENCV
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+
+ srand(2222222);
+
+ void * cap = open_video_stream(0, cam_index, 0,0,0);
+
+ char *window = "ArtJudgementBot9000!!!";
+ if(!cap) error("Couldn't connect to webcam.\n");
+ int i;
+ int idx[] = {37, 401, 434};
+ int n = sizeof(idx)/sizeof(idx[0]);
+
+ while(1){
+ image in = get_image_from_stream(cap);
+ image in_s = resize_image(in, net->w, net->h);
+
+ float *p = network_predict(net, in_s.data);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+
+ float score = 0;
+ for(i = 0; i < n; ++i){
+ float s = p[idx[i]];
+ if (s > score) score = s;
+ }
+ score = score;
+ printf("I APPRECIATE THIS ARTWORK: %10.7f%%\n", score*100);
+ printf("[");
+ int upper = 30;
+ for(i = 0; i < upper; ++i){
+ printf("%c", ((i+.5) < score*upper) ? 219 : ' ');
+ }
+ printf("]\n");
+
+ show_image(in, window, 1);
+ free_image(in_s);
+ free_image(in);
+ }
+#endif
+}
+
+
+void run_art(int argc, char **argv)
+{
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ char *cfg = argv[2];
+ char *weights = argv[3];
+ demo_art(cfg, weights, cam_index);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/attention.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/attention.c"
new file mode 100644
index 00000000..cd1e579d
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/attention.c"
@@ -0,0 +1,459 @@
+#include "darknet.h"
+
+#include
+#include
+
+void extend_data_truth(data *d, int n, float val)
+{
+ int i, j;
+ for(i = 0; i < d->y.rows; ++i){
+ d->y.vals[i] = realloc(d->y.vals[i], (d->y.cols+n)*sizeof(float));
+ for(j = 0; j < n; ++j){
+ d->y.vals[i][d->y.cols + j] = val;
+ }
+ }
+ d->y.cols += n;
+}
+
+matrix network_loss_data(network *net, data test)
+{
+ int i,b;
+ int k = 1;
+ matrix pred = make_matrix(test.X.rows, k);
+ float *X = calloc(net->batch*test.X.cols, sizeof(float));
+ float *y = calloc(net->batch*test.y.cols, sizeof(float));
+ for(i = 0; i < test.X.rows; i += net->batch){
+ for(b = 0; b < net->batch; ++b){
+ if(i+b == test.X.rows) break;
+ memcpy(X+b*test.X.cols, test.X.vals[i+b], test.X.cols*sizeof(float));
+ memcpy(y+b*test.y.cols, test.y.vals[i+b], test.y.cols*sizeof(float));
+ }
+
+ network orig = *net;
+ net->input = X;
+ net->truth = y;
+ net->train = 0;
+ net->delta = 0;
+ forward_network(net);
+ *net = orig;
+
+ float *delta = net->layers[net->n-1].output;
+ for(b = 0; b < net->batch; ++b){
+ if(i+b == test.X.rows) break;
+ int t = max_index(y + b*test.y.cols, 1000);
+ float err = sum_array(delta + b*net->outputs, net->outputs);
+ pred.vals[i+b][0] = -err;
+ //pred.vals[i+b][0] = 1-delta[b*net->outputs + t];
+ }
+ }
+ free(X);
+ free(y);
+ return pred;
+}
+
+void train_attention(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear)
+{
+ int i, j;
+
+ float avg_cls_loss = -1;
+ float avg_att_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ printf("%d\n", ngpus);
+ network **nets = calloc(ngpus, sizeof(network*));
+
+ srand(time(0));
+ int seed = rand();
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ srand(time(0));
+ network *net = nets[0];
+
+ int imgs = net->batch * net->subdivisions * ngpus;
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ list *options = read_data_cfg(datacfg);
+
+ char *backup_directory = option_find_str(options, "backup", "/backup/");
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *train_list = option_find_str(options, "train", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(train_list);
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ int N = plist->size;
+ double time;
+
+ int divs=3;
+ int size=2;
+
+ load_args args = {0};
+ args.w = divs*net->w/size;
+ args.h = divs*net->h/size;
+ args.size = divs*net->w/size;
+ args.threads = 32;
+ args.hierarchy = net->hierarchy;
+
+ args.min = net->min_ratio*args.w;
+ args.max = net->max_ratio*args.w;
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+
+ args.paths = paths;
+ args.classes = classes;
+ args.n = imgs;
+ args.m = N;
+ args.labels = labels;
+ args.type = CLASSIFICATION_DATA;
+
+ data train;
+ data buffer;
+ pthread_t load_thread;
+ args.d = &buffer;
+ load_thread = load_data(args);
+
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ time = what_time_is_it_now();
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data(args);
+ data resized = resize_data(train, net->w, net->h);
+ extend_data_truth(&resized, divs*divs, 0);
+ data *tiles = tile_data(train, divs, size);
+
+ printf("Loaded: %lf seconds\n", what_time_is_it_now()-time);
+ time = what_time_is_it_now();
+
+ float aloss = 0;
+ float closs = 0;
+ int z;
+ for (i = 0; i < divs*divs/ngpus; ++i) {
+#pragma omp parallel for
+ for(j = 0; j < ngpus; ++j){
+ int index = i*ngpus + j;
+ extend_data_truth(tiles+index, divs*divs, SECRET_NUM);
+ matrix deltas = network_loss_data(nets[j], tiles[index]);
+ for(z = 0; z < resized.y.rows; ++z){
+ resized.y.vals[z][train.y.cols + index] = deltas.vals[z][0];
+ }
+ free_matrix(deltas);
+ }
+ }
+ int *inds = calloc(resized.y.rows, sizeof(int));
+ for(z = 0; z < resized.y.rows; ++z){
+ int index = max_index(resized.y.vals[z] + train.y.cols, divs*divs);
+ inds[z] = index;
+ for(i = 0; i < divs*divs; ++i){
+ resized.y.vals[z][train.y.cols + i] = (i == index)? 1 : 0;
+ }
+ }
+ data best = select_data(tiles, inds);
+ free(inds);
+ #ifdef GPU
+ if (ngpus == 1) {
+ closs = train_network(net, best);
+ } else {
+ closs = train_networks(nets, ngpus, best, 4);
+ }
+ #endif
+ for (i = 0; i < divs*divs; ++i) {
+ printf("%.2f ", resized.y.vals[0][train.y.cols + i]);
+ if((i+1)%divs == 0) printf("\n");
+ free_data(tiles[i]);
+ }
+ free_data(best);
+ printf("\n");
+ image im = float_to_image(64,64,3,resized.X.vals[0]);
+ //show_image(im, "orig");
+ //cvWaitKey(100);
+ /*
+ image im1 = float_to_image(64,64,3,tiles[i].X.vals[0]);
+ image im2 = float_to_image(64,64,3,resized.X.vals[0]);
+ show_image(im1, "tile");
+ show_image(im2, "res");
+ */
+#ifdef GPU
+ if (ngpus == 1) {
+ aloss = train_network(net, resized);
+ } else {
+ aloss = train_networks(nets, ngpus, resized, 4);
+ }
+#endif
+ for(i = 0; i < divs*divs; ++i){
+ printf("%f ", nets[0]->output[1000 + i]);
+ if ((i+1) % divs == 0) printf("\n");
+ }
+ printf("\n");
+
+ free_data(resized);
+ free_data(train);
+ if(avg_cls_loss == -1) avg_cls_loss = closs;
+ if(avg_att_loss == -1) avg_att_loss = aloss;
+ avg_cls_loss = avg_cls_loss*.9 + closs*.1;
+ avg_att_loss = avg_att_loss*.9 + aloss*.1;
+
+ printf("%ld, %.3f: Att: %f, %f avg, Class: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, aloss, avg_att_loss, closs, avg_cls_loss, get_current_rate(net), what_time_is_it_now()-time, *net->seen);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%1000 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+ pthread_join(load_thread, 0);
+
+ free_network(net);
+ free_ptrs((void**)labels, classes);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void validate_attention_single(char *datacfg, char *filename, char *weightfile)
+{
+ int i, j;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *leaf_list = option_find_str(options, "leaves", 0);
+ if(leaf_list) change_leaves(net->hierarchy, leaf_list);
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int *indexes = calloc(topk, sizeof(int));
+ int divs = 4;
+ int size = 2;
+ int extra = 0;
+ float *avgs = calloc(classes, sizeof(float));
+ int *inds = calloc(divs*divs, sizeof(int));
+
+ for(i = 0; i < m; ++i){
+ int class = -1;
+ char *path = paths[i];
+ for(j = 0; j < classes; ++j){
+ if(strstr(path, labels[j])){
+ class = j;
+ break;
+ }
+ }
+ image im = load_image_color(paths[i], 0, 0);
+ image resized = resize_min(im, net->w*divs/size);
+ image crop = crop_image(resized, (resized.w - net->w*divs/size)/2, (resized.h - net->h*divs/size)/2, net->w*divs/size, net->h*divs/size);
+ image rcrop = resize_image(crop, net->w, net->h);
+ //show_image(im, "orig");
+ //show_image(crop, "cropped");
+ //cvWaitKey(0);
+ float *pred = network_predict(net, rcrop.data);
+ //pred[classes + 56] = 0;
+ for(j = 0; j < divs*divs; ++j){
+ printf("%.2f ", pred[classes + j]);
+ if((j+1)%divs == 0) printf("\n");
+ }
+ printf("\n");
+ copy_cpu(classes, pred, 1, avgs, 1);
+ top_k(pred + classes, divs*divs, divs*divs, inds);
+ show_image(crop, "crop");
+ for(j = 0; j < extra; ++j){
+ int index = inds[j];
+ int row = index / divs;
+ int col = index % divs;
+ int y = row * crop.h / divs - (net->h - crop.h/divs)/2;
+ int x = col * crop.w / divs - (net->w - crop.w/divs)/2;
+ printf("%d %d %d %d\n", row, col, y, x);
+ image tile = crop_image(crop, x, y, net->w, net->h);
+ float *pred = network_predict(net, tile.data);
+ axpy_cpu(classes, 1., pred, 1, avgs, 1);
+ show_image(tile, "tile");
+ //cvWaitKey(10);
+ }
+ if(net->hierarchy) hierarchy_predictions(pred, net->outputs, net->hierarchy, 1, 1);
+
+ if(rcrop.data != resized.data) free_image(rcrop);
+ if(resized.data != im.data) free_image(resized);
+ free_image(im);
+ free_image(crop);
+ top_k(pred, classes, topk, indexes);
+
+ if(indexes[0] == class) avg_acc += 1;
+ for(j = 0; j < topk; ++j){
+ if(indexes[j] == class) avg_topk += 1;
+ }
+
+ printf("%d: top 1: %f, top %d: %f\n", i, avg_acc/(i+1), topk, avg_topk/(i+1));
+ }
+}
+
+void validate_attention_multi(char *datacfg, char *filename, char *weightfile)
+{
+ int i, j;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+ int scales[] = {224, 288, 320, 352, 384};
+ int nscales = sizeof(scales)/sizeof(scales[0]);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int *indexes = calloc(topk, sizeof(int));
+
+ for(i = 0; i < m; ++i){
+ int class = -1;
+ char *path = paths[i];
+ for(j = 0; j < classes; ++j){
+ if(strstr(path, labels[j])){
+ class = j;
+ break;
+ }
+ }
+ float *pred = calloc(classes, sizeof(float));
+ image im = load_image_color(paths[i], 0, 0);
+ for(j = 0; j < nscales; ++j){
+ image r = resize_min(im, scales[j]);
+ resize_network(net, r.w, r.h);
+ float *p = network_predict(net, r.data);
+ if(net->hierarchy) hierarchy_predictions(p, net->outputs, net->hierarchy, 1 , 1);
+ axpy_cpu(classes, 1, p, 1, pred, 1);
+ flip_image(r);
+ p = network_predict(net, r.data);
+ axpy_cpu(classes, 1, p, 1, pred, 1);
+ if(r.data != im.data) free_image(r);
+ }
+ free_image(im);
+ top_k(pred, classes, topk, indexes);
+ free(pred);
+ if(indexes[0] == class) avg_acc += 1;
+ for(j = 0; j < topk; ++j){
+ if(indexes[j] == class) avg_topk += 1;
+ }
+
+ printf("%d: top 1: %f, top %d: %f\n", i, avg_acc/(i+1), topk, avg_topk/(i+1));
+ }
+}
+
+void predict_attention(char *datacfg, char *cfgfile, char *weightfile, char *filename, int top)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ list *options = read_data_cfg(datacfg);
+
+ char *name_list = option_find_str(options, "names", 0);
+ if(!name_list) name_list = option_find_str(options, "labels", "data/labels.list");
+ if(top == 0) top = option_find_int(options, "top", 1);
+
+ int i = 0;
+ char **names = get_labels(name_list);
+ clock_t time;
+ int *indexes = calloc(top, sizeof(int));
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image r = letterbox_image(im, net->w, net->h);
+ //resize_network(&net, r.w, r.h);
+ //printf("%d %d\n", r.w, r.h);
+
+ float *X = r.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+ if(net->hierarchy) hierarchy_predictions(predictions, net->outputs, net->hierarchy, 1, 1);
+ top_k(predictions, net->outputs, top, indexes);
+ fprintf(stderr, "%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ for(i = 0; i < top; ++i){
+ int index = indexes[i];
+ //if(net->hierarchy) printf("%d, %s: %f, parent: %s \n",index, names[index], predictions[index], (net->hierarchy->parent[index] >= 0) ? names[net->hierarchy->parent[index]] : "Root");
+ //else printf("%s: %f\n",names[index], predictions[index]);
+ printf("%5.2f%%: %s\n", predictions[index]*100, names[index]);
+ }
+ if(r.data != im.data) free_image(r);
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+
+void run_attention(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ int ngpus;
+ int *gpus = read_intlist(gpu_list, &ngpus, gpu_index);
+
+
+ int top = find_int_arg(argc, argv, "-t", 0);
+ int clear = find_arg(argc, argv, "-clear");
+ char *data = argv[3];
+ char *cfg = argv[4];
+ char *weights = (argc > 5) ? argv[5] : 0;
+ char *filename = (argc > 6) ? argv[6]: 0;
+ char *layer_s = (argc > 7) ? argv[7]: 0;
+ if(0==strcmp(argv[2], "predict")) predict_attention(data, cfg, weights, filename, top);
+ else if(0==strcmp(argv[2], "train")) train_attention(data, cfg, weights, gpus, ngpus, clear);
+ else if(0==strcmp(argv[2], "valid")) validate_attention_single(data, cfg, weights);
+ else if(0==strcmp(argv[2], "validmulti")) validate_attention_multi(data, cfg, weights);
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/captcha.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/captcha.c"
new file mode 100644
index 00000000..41d6d07c
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/captcha.c"
@@ -0,0 +1,353 @@
+#include "darknet.h"
+
+void fix_data_captcha(data d, int mask)
+{
+ matrix labels = d.y;
+ int i, j;
+ for(i = 0; i < d.y.rows; ++i){
+ for(j = 0; j < d.y.cols; j += 2){
+ if (mask){
+ if(!labels.vals[i][j]){
+ labels.vals[i][j] = SECRET_NUM;
+ labels.vals[i][j+1] = SECRET_NUM;
+ }else if(labels.vals[i][j+1]){
+ labels.vals[i][j] = 0;
+ }
+ } else{
+ if (labels.vals[i][j]) {
+ labels.vals[i][j+1] = 0;
+ } else {
+ labels.vals[i][j+1] = 1;
+ }
+ }
+ }
+ }
+}
+
+void train_captcha(char *cfgfile, char *weightfile)
+{
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network *net = load_network(cfgfile, weightfile, 0);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = 1024;
+ int i = *net->seen/imgs;
+ int solved = 1;
+ list *plist;
+ char **labels = get_labels("/data/captcha/reimgs.labels.list");
+ if (solved){
+ plist = get_paths("/data/captcha/reimgs.solved.list");
+ }else{
+ plist = get_paths("/data/captcha/reimgs.raw.list");
+ }
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ clock_t time;
+ pthread_t load_thread;
+ data train;
+ data buffer;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.paths = paths;
+ args.classes = 26;
+ args.n = imgs;
+ args.m = plist->size;
+ args.labels = labels;
+ args.d = &buffer;
+ args.type = CLASSIFICATION_DATA;
+
+ load_thread = load_data_in_thread(args);
+ while(1){
+ ++i;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ fix_data_captcha(train, solved);
+
+ /*
+ image im = float_to_image(256, 256, 3, train.X.vals[114]);
+ show_image(im, "training");
+ cvWaitKey(0);
+ */
+
+ load_thread = load_data_in_thread(args);
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+ time=clock();
+ float loss = train_network(net, train);
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%d: %f, %f avg, %lf seconds, %ld images\n", i, loss, avg_loss, sec(clock()-time), *net->seen);
+ free_data(train);
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "/home/pjreddie/imagenet_backup/%s_%d.weights",base, i);
+ save_weights(net, buff);
+ }
+ }
+}
+
+void test_captcha(char *cfgfile, char *weightfile, char *filename)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+ int i = 0;
+ char **names = get_labels("/data/captcha/reimgs.labels.list");
+ char buff[256];
+ char *input = buff;
+ int indexes[26];
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ //printf("Enter Image Path: ");
+ //fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, net->w, net->h);
+ float *X = im.data;
+ float *predictions = network_predict(net, X);
+ top_predictions(net, 26, indexes);
+ //printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ for(i = 0; i < 26; ++i){
+ int index = indexes[i];
+ if(i != 0) printf(", ");
+ printf("%s %f", names[index], predictions[index]);
+ }
+ printf("\n");
+ fflush(stdout);
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+void valid_captcha(char *cfgfile, char *weightfile, char *filename)
+{
+ char **labels = get_labels("/data/captcha/reimgs.labels.list");
+ network *net = load_network(cfgfile, weightfile, 0);
+ list *plist = get_paths("/data/captcha/reimgs.fg.list");
+ char **paths = (char **)list_to_array(plist);
+ int N = plist->size;
+ int outputs = net->outputs;
+
+ set_batch_network(net, 1);
+ srand(2222222);
+ int i, j;
+ for(i = 0; i < N; ++i){
+ if (i%100 == 0) fprintf(stderr, "%d\n", i);
+ image im = load_image_color(paths[i], net->w, net->h);
+ float *X = im.data;
+ float *predictions = network_predict(net, X);
+ //printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ int truth = -1;
+ for(j = 0; j < 13; ++j){
+ if (strstr(paths[i], labels[j])) truth = j;
+ }
+ if (truth == -1){
+ fprintf(stderr, "bad: %s\n", paths[i]);
+ return;
+ }
+ printf("%d, ", truth);
+ for(j = 0; j < outputs; ++j){
+ if (j != 0) printf(", ");
+ printf("%f", predictions[j]);
+ }
+ printf("\n");
+ fflush(stdout);
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+/*
+ void train_captcha(char *cfgfile, char *weightfile)
+ {
+ float avg_loss = -1;
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = 1024;
+ int i = net->seen/imgs;
+ list *plist = get_paths("/data/captcha/train.auto5");
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ clock_t time;
+ while(1){
+ ++i;
+ time=clock();
+ data train = load_data_captcha(paths, imgs, plist->size, 10, 200, 60);
+ translate_data_rows(train, -128);
+ scale_data_rows(train, 1./128);
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+ time=clock();
+ float loss = train_network(net, train);
+ net->seen += imgs;
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%d: %f, %f avg, %lf seconds, %d images\n", i, loss, avg_loss, sec(clock()-time), net->seen);
+ free_data(train);
+ if(i%10==0){
+ char buff[256];
+ sprintf(buff, "/home/pjreddie/imagenet_backup/%s_%d.weights",base, i);
+ save_weights(net, buff);
+ }
+ }
+ }
+
+ void decode_captcha(char *cfgfile, char *weightfile)
+ {
+ setbuf(stdout, NULL);
+ srand(time(0));
+ network net = parse_network_cfg(cfgfile);
+ set_batch_network(&net, 1);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ char filename[256];
+ while(1){
+ printf("Enter filename: ");
+ fgets(filename, 256, stdin);
+ strtok(filename, "\n");
+ image im = load_image_color(filename, 300, 57);
+ scale_image(im, 1./255.);
+ float *X = im.data;
+ float *predictions = network_predict(net, X);
+ image out = float_to_image(300, 57, 1, predictions);
+ show_image(out, "decoded");
+#ifdef OPENCV
+cvWaitKey(0);
+#endif
+free_image(im);
+}
+}
+
+void encode_captcha(char *cfgfile, char *weightfile)
+{
+float avg_loss = -1;
+srand(time(0));
+char *base = basecfg(cfgfile);
+printf("%s\n", base);
+network net = parse_network_cfg(cfgfile);
+if(weightfile){
+ load_weights(&net, weightfile);
+}
+printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+int imgs = 1024;
+int i = net->seen/imgs;
+list *plist = get_paths("/data/captcha/encode.list");
+char **paths = (char **)list_to_array(plist);
+printf("%d\n", plist->size);
+clock_t time;
+while(1){
+ ++i;
+ time=clock();
+ data train = load_data_captcha_encode(paths, imgs, plist->size, 300, 57);
+ scale_data_rows(train, 1./255);
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+ time=clock();
+ float loss = train_network(net, train);
+ net->seen += imgs;
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%d: %f, %f avg, %lf seconds, %d images\n", i, loss, avg_loss, sec(clock()-time), net->seen);
+ free_matrix(train.X);
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "/home/pjreddie/imagenet_backup/%s_%d.weights",base, i);
+ save_weights(net, buff);
+ }
+}
+}
+
+void validate_captcha(char *cfgfile, char *weightfile)
+{
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ int numchars = 37;
+ list *plist = get_paths("/data/captcha/solved.hard");
+ char **paths = (char **)list_to_array(plist);
+ int imgs = plist->size;
+ data valid = load_data_captcha(paths, imgs, 0, 10, 200, 60);
+ translate_data_rows(valid, -128);
+ scale_data_rows(valid, 1./128);
+ matrix pred = network_predict_data(net, valid);
+ int i, k;
+ int correct = 0;
+ int total = 0;
+ int accuracy = 0;
+ for(i = 0; i < imgs; ++i){
+ int allcorrect = 1;
+ for(k = 0; k < 10; ++k){
+ char truth = int_to_alphanum(max_index(valid.y.vals[i]+k*numchars, numchars));
+ char prediction = int_to_alphanum(max_index(pred.vals[i]+k*numchars, numchars));
+ if (truth != prediction) allcorrect=0;
+ if (truth != '.' && truth == prediction) ++correct;
+ if (truth != '.' || truth != prediction) ++total;
+ }
+ accuracy += allcorrect;
+ }
+ printf("Word Accuracy: %f, Char Accuracy %f\n", (float)accuracy/imgs, (float)correct/total);
+ free_data(valid);
+}
+
+void test_captcha(char *cfgfile, char *weightfile)
+{
+ setbuf(stdout, NULL);
+ srand(time(0));
+ //char *base = basecfg(cfgfile);
+ //printf("%s\n", base);
+ network net = parse_network_cfg(cfgfile);
+ set_batch_network(&net, 1);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ char filename[256];
+ while(1){
+ //printf("Enter filename: ");
+ fgets(filename, 256, stdin);
+ strtok(filename, "\n");
+ image im = load_image_color(filename, 200, 60);
+ translate_image(im, -128);
+ scale_image(im, 1/128.);
+ float *X = im.data;
+ float *predictions = network_predict(net, X);
+ print_letters(predictions, 10);
+ free_image(im);
+ }
+}
+ */
+void run_captcha(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5]: 0;
+ if(0==strcmp(argv[2], "train")) train_captcha(cfg, weights);
+ else if(0==strcmp(argv[2], "test")) test_captcha(cfg, weights, filename);
+ else if(0==strcmp(argv[2], "valid")) valid_captcha(cfg, weights, filename);
+ //if(0==strcmp(argv[2], "test")) test_captcha(cfg, weights);
+ //else if(0==strcmp(argv[2], "encode")) encode_captcha(cfg, weights);
+ //else if(0==strcmp(argv[2], "decode")) decode_captcha(cfg, weights);
+ //else if(0==strcmp(argv[2], "valid")) validate_captcha(cfg, weights);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/cifar.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/cifar.c"
new file mode 100644
index 00000000..a5f5f240
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/cifar.c"
@@ -0,0 +1,251 @@
+#include "darknet.h"
+
+void train_cifar(char *cfgfile, char *weightfile)
+{
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network *net = load_network(cfgfile, weightfile, 0);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+
+ char *backup_directory = "/home/pjreddie/backup/";
+ int classes = 10;
+ int N = 50000;
+
+ char **labels = get_labels("data/cifar/labels.txt");
+ int epoch = (*net->seen)/N;
+ data train = load_all_cifar10();
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ clock_t time=clock();
+
+ float loss = train_network_sgd(net, train, 1);
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.95 + loss*.05;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), sec(clock()-time), *net->seen);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ free_network(net);
+ free_ptrs((void**)labels, classes);
+ free(base);
+ free_data(train);
+}
+
+void train_cifar_distill(char *cfgfile, char *weightfile)
+{
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network *net = load_network(cfgfile, weightfile, 0);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+
+ char *backup_directory = "/home/pjreddie/backup/";
+ int classes = 10;
+ int N = 50000;
+
+ char **labels = get_labels("data/cifar/labels.txt");
+ int epoch = (*net->seen)/N;
+
+ data train = load_all_cifar10();
+ matrix soft = csv_to_matrix("results/ensemble.csv");
+
+ float weight = .9;
+ scale_matrix(soft, weight);
+ scale_matrix(train.y, 1. - weight);
+ matrix_add_matrix(soft, train.y);
+
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ clock_t time=clock();
+
+ float loss = train_network_sgd(net, train, 1);
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.95 + loss*.05;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), sec(clock()-time), *net->seen);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ free_network(net);
+ free_ptrs((void**)labels, classes);
+ free(base);
+ free_data(train);
+}
+
+void test_cifar_multi(char *filename, char *weightfile)
+{
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ float avg_acc = 0;
+ data test = load_cifar10_data("data/cifar/cifar-10-batches-bin/test_batch.bin");
+
+ int i;
+ for(i = 0; i < test.X.rows; ++i){
+ image im = float_to_image(32, 32, 3, test.X.vals[i]);
+
+ float pred[10] = {0};
+
+ float *p = network_predict(net, im.data);
+ axpy_cpu(10, 1, p, 1, pred, 1);
+ flip_image(im);
+ p = network_predict(net, im.data);
+ axpy_cpu(10, 1, p, 1, pred, 1);
+
+ int index = max_index(pred, 10);
+ int class = max_index(test.y.vals[i], 10);
+ if(index == class) avg_acc += 1;
+ free_image(im);
+ printf("%4d: %.2f%%\n", i, 100.*avg_acc/(i+1));
+ }
+}
+
+void test_cifar(char *filename, char *weightfile)
+{
+ network *net = load_network(filename, weightfile, 0);
+ srand(time(0));
+
+ clock_t time;
+ float avg_acc = 0;
+ float avg_top5 = 0;
+ data test = load_cifar10_data("data/cifar/cifar-10-batches-bin/test_batch.bin");
+
+ time=clock();
+
+ float *acc = network_accuracies(net, test, 2);
+ avg_acc += acc[0];
+ avg_top5 += acc[1];
+ printf("top1: %f, %lf seconds, %d images\n", avg_acc, sec(clock()-time), test.X.rows);
+ free_data(test);
+}
+
+void extract_cifar()
+{
+char *labels[] = {"airplane","automobile","bird","cat","deer","dog","frog","horse","ship","truck"};
+ int i;
+ data train = load_all_cifar10();
+ data test = load_cifar10_data("data/cifar/cifar-10-batches-bin/test_batch.bin");
+ for(i = 0; i < train.X.rows; ++i){
+ image im = float_to_image(32, 32, 3, train.X.vals[i]);
+ int class = max_index(train.y.vals[i], 10);
+ char buff[256];
+ sprintf(buff, "data/cifar/train/%d_%s",i,labels[class]);
+ save_image_options(im, buff, PNG, 0);
+ }
+ for(i = 0; i < test.X.rows; ++i){
+ image im = float_to_image(32, 32, 3, test.X.vals[i]);
+ int class = max_index(test.y.vals[i], 10);
+ char buff[256];
+ sprintf(buff, "data/cifar/test/%d_%s",i,labels[class]);
+ save_image_options(im, buff, PNG, 0);
+ }
+}
+
+void test_cifar_csv(char *filename, char *weightfile)
+{
+ network *net = load_network(filename, weightfile, 0);
+ srand(time(0));
+
+ data test = load_cifar10_data("data/cifar/cifar-10-batches-bin/test_batch.bin");
+
+ matrix pred = network_predict_data(net, test);
+
+ int i;
+ for(i = 0; i < test.X.rows; ++i){
+ image im = float_to_image(32, 32, 3, test.X.vals[i]);
+ flip_image(im);
+ }
+ matrix pred2 = network_predict_data(net, test);
+ scale_matrix(pred, .5);
+ scale_matrix(pred2, .5);
+ matrix_add_matrix(pred2, pred);
+
+ matrix_to_csv(pred);
+ fprintf(stderr, "Accuracy: %f\n", matrix_topk_accuracy(test.y, pred, 1));
+ free_data(test);
+}
+
+void test_cifar_csvtrain(char *cfg, char *weights)
+{
+ network *net = load_network(cfg, weights, 0);
+ srand(time(0));
+
+ data test = load_all_cifar10();
+
+ matrix pred = network_predict_data(net, test);
+
+ int i;
+ for(i = 0; i < test.X.rows; ++i){
+ image im = float_to_image(32, 32, 3, test.X.vals[i]);
+ flip_image(im);
+ }
+ matrix pred2 = network_predict_data(net, test);
+ scale_matrix(pred, .5);
+ scale_matrix(pred2, .5);
+ matrix_add_matrix(pred2, pred);
+
+ matrix_to_csv(pred);
+ fprintf(stderr, "Accuracy: %f\n", matrix_topk_accuracy(test.y, pred, 1));
+ free_data(test);
+}
+
+void eval_cifar_csv()
+{
+ data test = load_cifar10_data("data/cifar/cifar-10-batches-bin/test_batch.bin");
+
+ matrix pred = csv_to_matrix("results/combined.csv");
+ fprintf(stderr, "%d %d\n", pred.rows, pred.cols);
+
+ fprintf(stderr, "Accuracy: %f\n", matrix_topk_accuracy(test.y, pred, 1));
+ free_data(test);
+ free_matrix(pred);
+}
+
+
+void run_cifar(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ if(0==strcmp(argv[2], "train")) train_cifar(cfg, weights);
+ else if(0==strcmp(argv[2], "extract")) extract_cifar();
+ else if(0==strcmp(argv[2], "distill")) train_cifar_distill(cfg, weights);
+ else if(0==strcmp(argv[2], "test")) test_cifar(cfg, weights);
+ else if(0==strcmp(argv[2], "multi")) test_cifar_multi(cfg, weights);
+ else if(0==strcmp(argv[2], "csv")) test_cifar_csv(cfg, weights);
+ else if(0==strcmp(argv[2], "csvtrain")) test_cifar_csvtrain(cfg, weights);
+ else if(0==strcmp(argv[2], "eval")) eval_cifar_csv();
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/classifier.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/classifier.c"
new file mode 100644
index 00000000..df91a084
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/classifier.c"
@@ -0,0 +1,1098 @@
+#include "darknet.h"
+
+#include
+#include
+
+float *get_regression_values(char **labels, int n)
+{
+ float *v = calloc(n, sizeof(float));
+ int i;
+ for(i = 0; i < n; ++i){
+ char *p = strchr(labels[i], ' ');
+ *p = 0;
+ v[i] = atof(p+1);
+ }
+ return v;
+}
+
+void train_classifier(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear)
+{
+ int i;
+
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ printf("%d\n", ngpus);
+ network **nets = calloc(ngpus, sizeof(network*));
+
+ srand(time(0));
+ int seed = rand();
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ srand(time(0));
+ network *net = nets[0];
+
+ int imgs = net->batch * net->subdivisions * ngpus;
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ list *options = read_data_cfg(datacfg);
+
+ char *backup_directory = option_find_str(options, "backup", "/backup/");
+ int tag = option_find_int_quiet(options, "tag", 0);
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *train_list = option_find_str(options, "train", "data/train.list");
+ char *tree = option_find_str(options, "tree", 0);
+ if (tree) net->hierarchy = read_tree(tree);
+ int classes = option_find_int(options, "classes", 2);
+
+ char **labels = 0;
+ if(!tag){
+ labels = get_labels(label_list);
+ }
+ list *plist = get_paths(train_list);
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ int N = plist->size;
+ double time;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.threads = 32;
+ args.hierarchy = net->hierarchy;
+
+ args.min = net->min_ratio*net->w;
+ args.max = net->max_ratio*net->w;
+ printf("%d %d\n", args.min, args.max);
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+ args.size = net->w;
+
+ args.paths = paths;
+ args.classes = classes;
+ args.n = imgs;
+ args.m = N;
+ args.labels = labels;
+ if (tag){
+ args.type = TAG_DATA;
+ } else {
+ args.type = CLASSIFICATION_DATA;
+ }
+
+ data train;
+ data buffer;
+ pthread_t load_thread;
+ args.d = &buffer;
+ load_thread = load_data(args);
+
+ int count = 0;
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ if(net->random && count++%40 == 0){
+ printf("Resizing\n");
+ int dim = (rand() % 11 + 4) * 32;
+ //if (get_current_batch(net)+200 > net->max_batches) dim = 608;
+ //int dim = (rand() % 4 + 16) * 32;
+ printf("%d\n", dim);
+ args.w = dim;
+ args.h = dim;
+ args.size = dim;
+ args.min = net->min_ratio*dim;
+ args.max = net->max_ratio*dim;
+ printf("%d %d\n", args.min, args.max);
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ free_data(train);
+ load_thread = load_data(args);
+
+ for(i = 0; i < ngpus; ++i){
+ resize_network(nets[i], dim, dim);
+ }
+ net = nets[0];
+ }
+ time = what_time_is_it_now();
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data(args);
+
+ printf("Loaded: %lf seconds\n", what_time_is_it_now()-time);
+ time = what_time_is_it_now();
+
+ float loss = 0;
+#ifdef GPU
+ if(ngpus == 1){
+ loss = train_network(net, train);
+ } else {
+ loss = train_networks(nets, ngpus, train, 4);
+ }
+#else
+ loss = train_network(net, train);
+#endif
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), what_time_is_it_now()-time, *net->seen);
+ free_data(train);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%1000 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+ pthread_join(load_thread, 0);
+
+ free_network(net);
+ if(labels) free_ptrs((void**)labels, classes);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void validate_classifier_crop(char *datacfg, char *filename, char *weightfile)
+{
+ int i = 0;
+ network *net = load_network(filename, weightfile, 0);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ clock_t time;
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int splits = m/1000;
+ int num = (i+1)*m/splits - i*m/splits;
+
+ data val, buffer;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+
+ args.paths = paths;
+ args.classes = classes;
+ args.n = num;
+ args.m = 0;
+ args.labels = labels;
+ args.d = &buffer;
+ args.type = OLD_CLASSIFICATION_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ for(i = 1; i <= splits; ++i){
+ time=clock();
+
+ pthread_join(load_thread, 0);
+ val = buffer;
+
+ num = (i+1)*m/splits - i*m/splits;
+ char **part = paths+(i*m/splits);
+ if(i != splits){
+ args.paths = part;
+ load_thread = load_data_in_thread(args);
+ }
+ printf("Loaded: %d images in %lf seconds\n", val.X.rows, sec(clock()-time));
+
+ time=clock();
+ float *acc = network_accuracies(net, val, topk);
+ avg_acc += acc[0];
+ avg_topk += acc[1];
+ printf("%d: top 1: %f, top %d: %f, %lf seconds, %d images\n", i, avg_acc/i, topk, avg_topk/i, sec(clock()-time), val.X.rows);
+ free_data(val);
+ }
+}
+
+void validate_classifier_10(char *datacfg, char *filename, char *weightfile)
+{
+ int i, j;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int *indexes = calloc(topk, sizeof(int));
+
+ for(i = 0; i < m; ++i){
+ int class = -1;
+ char *path = paths[i];
+ for(j = 0; j < classes; ++j){
+ if(strstr(path, labels[j])){
+ class = j;
+ break;
+ }
+ }
+ int w = net->w;
+ int h = net->h;
+ int shift = 32;
+ image im = load_image_color(paths[i], w+shift, h+shift);
+ image images[10];
+ images[0] = crop_image(im, -shift, -shift, w, h);
+ images[1] = crop_image(im, shift, -shift, w, h);
+ images[2] = crop_image(im, 0, 0, w, h);
+ images[3] = crop_image(im, -shift, shift, w, h);
+ images[4] = crop_image(im, shift, shift, w, h);
+ flip_image(im);
+ images[5] = crop_image(im, -shift, -shift, w, h);
+ images[6] = crop_image(im, shift, -shift, w, h);
+ images[7] = crop_image(im, 0, 0, w, h);
+ images[8] = crop_image(im, -shift, shift, w, h);
+ images[9] = crop_image(im, shift, shift, w, h);
+ float *pred = calloc(classes, sizeof(float));
+ for(j = 0; j < 10; ++j){
+ float *p = network_predict(net, images[j].data);
+ if(net->hierarchy) hierarchy_predictions(p, net->outputs, net->hierarchy, 1, 1);
+ axpy_cpu(classes, 1, p, 1, pred, 1);
+ free_image(images[j]);
+ }
+ free_image(im);
+ top_k(pred, classes, topk, indexes);
+ free(pred);
+ if(indexes[0] == class) avg_acc += 1;
+ for(j = 0; j < topk; ++j){
+ if(indexes[j] == class) avg_topk += 1;
+ }
+
+ printf("%d: top 1: %f, top %d: %f\n", i, avg_acc/(i+1), topk, avg_topk/(i+1));
+ }
+}
+
+void validate_classifier_full(char *datacfg, char *filename, char *weightfile)
+{
+ int i, j;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int *indexes = calloc(topk, sizeof(int));
+
+ int size = net->w;
+ for(i = 0; i < m; ++i){
+ int class = -1;
+ char *path = paths[i];
+ for(j = 0; j < classes; ++j){
+ if(strstr(path, labels[j])){
+ class = j;
+ break;
+ }
+ }
+ image im = load_image_color(paths[i], 0, 0);
+ image resized = resize_min(im, size);
+ resize_network(net, resized.w, resized.h);
+ //show_image(im, "orig");
+ //show_image(crop, "cropped");
+ //cvWaitKey(0);
+ float *pred = network_predict(net, resized.data);
+ if(net->hierarchy) hierarchy_predictions(pred, net->outputs, net->hierarchy, 1, 1);
+
+ free_image(im);
+ free_image(resized);
+ top_k(pred, classes, topk, indexes);
+
+ if(indexes[0] == class) avg_acc += 1;
+ for(j = 0; j < topk; ++j){
+ if(indexes[j] == class) avg_topk += 1;
+ }
+
+ printf("%d: top 1: %f, top %d: %f\n", i, avg_acc/(i+1), topk, avg_topk/(i+1));
+ }
+}
+
+
+void validate_classifier_single(char *datacfg, char *filename, char *weightfile)
+{
+ int i, j;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *leaf_list = option_find_str(options, "leaves", 0);
+ if(leaf_list) change_leaves(net->hierarchy, leaf_list);
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int *indexes = calloc(topk, sizeof(int));
+
+ for(i = 0; i < m; ++i){
+ int class = -1;
+ char *path = paths[i];
+ for(j = 0; j < classes; ++j){
+ if(strstr(path, labels[j])){
+ class = j;
+ break;
+ }
+ }
+ image im = load_image_color(paths[i], 0, 0);
+ image crop = center_crop_image(im, net->w, net->h);
+ //grayscale_image_3c(crop);
+ //show_image(im, "orig");
+ //show_image(crop, "cropped");
+ //cvWaitKey(0);
+ float *pred = network_predict(net, crop.data);
+ if(net->hierarchy) hierarchy_predictions(pred, net->outputs, net->hierarchy, 1, 1);
+
+ free_image(im);
+ free_image(crop);
+ top_k(pred, classes, topk, indexes);
+
+ if(indexes[0] == class) avg_acc += 1;
+ for(j = 0; j < topk; ++j){
+ if(indexes[j] == class) avg_topk += 1;
+ }
+
+ printf("%s, %d, %f, %f, \n", paths[i], class, pred[0], pred[1]);
+ printf("%d: top 1: %f, top %d: %f\n", i, avg_acc/(i+1), topk, avg_topk/(i+1));
+ }
+}
+
+void validate_classifier_multi(char *datacfg, char *cfg, char *weights)
+{
+ int i, j;
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "labels", "data/labels.list");
+ char *valid_list = option_find_str(options, "valid", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+ int topk = option_find_int(options, "top", 1);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(valid_list);
+ //int scales[] = {224, 288, 320, 352, 384};
+ int scales[] = {224, 256, 288, 320};
+ int nscales = sizeof(scales)/sizeof(scales[0]);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ float avg_acc = 0;
+ float avg_topk = 0;
+ int *indexes = calloc(topk, sizeof(int));
+
+ for(i = 0; i < m; ++i){
+ int class = -1;
+ char *path = paths[i];
+ for(j = 0; j < classes; ++j){
+ if(strstr(path, labels[j])){
+ class = j;
+ break;
+ }
+ }
+ float *pred = calloc(classes, sizeof(float));
+ image im = load_image_color(paths[i], 0, 0);
+ for(j = 0; j < nscales; ++j){
+ image r = resize_max(im, scales[j]);
+ resize_network(net, r.w, r.h);
+ float *p = network_predict(net, r.data);
+ if(net->hierarchy) hierarchy_predictions(p, net->outputs, net->hierarchy, 1 , 1);
+ axpy_cpu(classes, 1, p, 1, pred, 1);
+ flip_image(r);
+ p = network_predict(net, r.data);
+ axpy_cpu(classes, 1, p, 1, pred, 1);
+ if(r.data != im.data) free_image(r);
+ }
+ free_image(im);
+ top_k(pred, classes, topk, indexes);
+ free(pred);
+ if(indexes[0] == class) avg_acc += 1;
+ for(j = 0; j < topk; ++j){
+ if(indexes[j] == class) avg_topk += 1;
+ }
+
+ printf("%d: top 1: %f, top %d: %f\n", i, avg_acc/(i+1), topk, avg_topk/(i+1));
+ }
+}
+
+void try_classifier(char *datacfg, char *cfgfile, char *weightfile, char *filename, int layer_num)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ list *options = read_data_cfg(datacfg);
+
+ char *name_list = option_find_str(options, "names", 0);
+ if(!name_list) name_list = option_find_str(options, "labels", "data/labels.list");
+ int top = option_find_int(options, "top", 1);
+
+ int i = 0;
+ char **names = get_labels(name_list);
+ clock_t time;
+ int *indexes = calloc(top, sizeof(int));
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image orig = load_image_color(input, 0, 0);
+ image r = resize_min(orig, 256);
+ image im = crop_image(r, (r.w - 224 - 1)/2 + 1, (r.h - 224 - 1)/2 + 1, 224, 224);
+ float mean[] = {0.48263312050943, 0.45230225481413, 0.40099074308742};
+ float std[] = {0.22590347483426, 0.22120921437787, 0.22103996251583};
+ float var[3];
+ var[0] = std[0]*std[0];
+ var[1] = std[1]*std[1];
+ var[2] = std[2]*std[2];
+
+ normalize_cpu(im.data, mean, var, 1, 3, im.w*im.h);
+
+ float *X = im.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+
+ layer l = net->layers[layer_num];
+ for(i = 0; i < l.c; ++i){
+ if(l.rolling_mean) printf("%f %f %f\n", l.rolling_mean[i], l.rolling_variance[i], l.scales[i]);
+ }
+#ifdef GPU
+ cuda_pull_array(l.output_gpu, l.output, l.outputs);
+#endif
+ for(i = 0; i < l.outputs; ++i){
+ printf("%f\n", l.output[i]);
+ }
+ /*
+
+ printf("\n\nWeights\n");
+ for(i = 0; i < l.n*l.size*l.size*l.c; ++i){
+ printf("%f\n", l.filters[i]);
+ }
+
+ printf("\n\nBiases\n");
+ for(i = 0; i < l.n; ++i){
+ printf("%f\n", l.biases[i]);
+ }
+ */
+
+ top_predictions(net, top, indexes);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ for(i = 0; i < top; ++i){
+ int index = indexes[i];
+ printf("%s: %f\n", names[index], predictions[index]);
+ }
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+void predict_classifier(char *datacfg, char *cfgfile, char *weightfile, char *filename, int top)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ list *options = read_data_cfg(datacfg);
+
+ char *name_list = option_find_str(options, "names", 0);
+ if(!name_list) name_list = option_find_str(options, "labels", "data/labels.list");
+ if(top == 0) top = option_find_int(options, "top", 1);
+
+ int i = 0;
+ char **names = get_labels(name_list);
+ clock_t time;
+ int *indexes = calloc(top, sizeof(int));
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image r = letterbox_image(im, net->w, net->h);
+ //image r = resize_min(im, 320);
+ //printf("%d %d\n", r.w, r.h);
+ //resize_network(net, r.w, r.h);
+ //printf("%d %d\n", r.w, r.h);
+
+ float *X = r.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+ if(net->hierarchy) hierarchy_predictions(predictions, net->outputs, net->hierarchy, 1, 1);
+ top_k(predictions, net->outputs, top, indexes);
+ fprintf(stderr, "%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ for(i = 0; i < top; ++i){
+ int index = indexes[i];
+ //if(net->hierarchy) printf("%d, %s: %f, parent: %s \n",index, names[index], predictions[index], (net->hierarchy->parent[index] >= 0) ? names[net->hierarchy->parent[index]] : "Root");
+ //else printf("%s: %f\n",names[index], predictions[index]);
+ printf("%5.2f%%: %s\n", predictions[index]*100, names[index]);
+ }
+ if(r.data != im.data) free_image(r);
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+
+void label_classifier(char *datacfg, char *filename, char *weightfile)
+{
+ int i;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *label_list = option_find_str(options, "names", "data/labels.list");
+ char *test_list = option_find_str(options, "test", "data/train.list");
+ int classes = option_find_int(options, "classes", 2);
+
+ char **labels = get_labels(label_list);
+ list *plist = get_paths(test_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ for(i = 0; i < m; ++i){
+ image im = load_image_color(paths[i], 0, 0);
+ image resized = resize_min(im, net->w);
+ image crop = crop_image(resized, (resized.w - net->w)/2, (resized.h - net->h)/2, net->w, net->h);
+ float *pred = network_predict(net, crop.data);
+
+ if(resized.data != im.data) free_image(resized);
+ free_image(im);
+ free_image(crop);
+ int ind = max_index(pred, classes);
+
+ printf("%s\n", labels[ind]);
+ }
+}
+
+void csv_classifier(char *datacfg, char *cfgfile, char *weightfile)
+{
+ int i,j;
+ network *net = load_network(cfgfile, weightfile, 0);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *test_list = option_find_str(options, "test", "data/test.list");
+ int top = option_find_int(options, "top", 1);
+
+ list *plist = get_paths(test_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+ int *indexes = calloc(top, sizeof(int));
+
+ for(i = 0; i < m; ++i){
+ double time = what_time_is_it_now();
+ char *path = paths[i];
+ image im = load_image_color(path, 0, 0);
+ image r = letterbox_image(im, net->w, net->h);
+ float *predictions = network_predict(net, r.data);
+ if(net->hierarchy) hierarchy_predictions(predictions, net->outputs, net->hierarchy, 1, 1);
+ top_k(predictions, net->outputs, top, indexes);
+
+ printf("%s", path);
+ for(j = 0; j < top; ++j){
+ printf("\t%d", indexes[j]);
+ }
+ printf("\n");
+
+ free_image(im);
+ free_image(r);
+
+ fprintf(stderr, "%lf seconds, %d images, %d total\n", what_time_is_it_now() - time, i+1, m);
+ }
+}
+
+void test_classifier(char *datacfg, char *cfgfile, char *weightfile, int target_layer)
+{
+ int curr = 0;
+ network *net = load_network(cfgfile, weightfile, 0);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ char *test_list = option_find_str(options, "test", "data/test.list");
+ int classes = option_find_int(options, "classes", 2);
+
+ list *plist = get_paths(test_list);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ clock_t time;
+
+ data val, buffer;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.paths = paths;
+ args.classes = classes;
+ args.n = net->batch;
+ args.m = 0;
+ args.labels = 0;
+ args.d = &buffer;
+ args.type = OLD_CLASSIFICATION_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ for(curr = net->batch; curr < m; curr += net->batch){
+ time=clock();
+
+ pthread_join(load_thread, 0);
+ val = buffer;
+
+ if(curr < m){
+ args.paths = paths + curr;
+ if (curr + net->batch > m) args.n = m - curr;
+ load_thread = load_data_in_thread(args);
+ }
+ fprintf(stderr, "Loaded: %d images in %lf seconds\n", val.X.rows, sec(clock()-time));
+
+ time=clock();
+ matrix pred = network_predict_data(net, val);
+
+ int i, j;
+ if (target_layer >= 0){
+ //layer l = net->layers[target_layer];
+ }
+
+ for(i = 0; i < pred.rows; ++i){
+ printf("%s", paths[curr-net->batch+i]);
+ for(j = 0; j < pred.cols; ++j){
+ printf("\t%g", pred.vals[i][j]);
+ }
+ printf("\n");
+ }
+
+ free_matrix(pred);
+
+ fprintf(stderr, "%lf seconds, %d images, %d total\n", sec(clock()-time), val.X.rows, curr);
+ free_data(val);
+ }
+}
+
+void file_output_classifier(char *datacfg, char *filename, char *weightfile, char *listfile)
+{
+ int i,j;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+
+ list *options = read_data_cfg(datacfg);
+
+ //char *label_list = option_find_str(options, "names", "data/labels.list");
+ int classes = option_find_int(options, "classes", 2);
+
+ list *plist = get_paths(listfile);
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ for(i = 0; i < m; ++i){
+ image im = load_image_color(paths[i], 0, 0);
+ image resized = resize_min(im, net->w);
+ image crop = crop_image(resized, (resized.w - net->w)/2, (resized.h - net->h)/2, net->w, net->h);
+
+ float *pred = network_predict(net, crop.data);
+ if(net->hierarchy) hierarchy_predictions(pred, net->outputs, net->hierarchy, 0, 1);
+
+ if(resized.data != im.data) free_image(resized);
+ free_image(im);
+ free_image(crop);
+
+ printf("%s", paths[i]);
+ for(j = 0; j < classes; ++j){
+ printf("\t%g", pred[j]);
+ }
+ printf("\n");
+ }
+}
+
+
+void threat_classifier(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename)
+{
+#ifdef OPENCV
+ float threat = 0;
+ float roll = .2;
+
+ printf("Classifier Demo\n");
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ list *options = read_data_cfg(datacfg);
+
+ srand(2222222);
+ void * cap = open_video_stream(filename, cam_index, 0,0,0);
+
+ int top = option_find_int(options, "top", 1);
+
+ char *name_list = option_find_str(options, "names", 0);
+ char **names = get_labels(name_list);
+
+ int *indexes = calloc(top, sizeof(int));
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ //cvNamedWindow("Threat", CV_WINDOW_NORMAL);
+ //cvResizeWindow("Threat", 512, 512);
+ float fps = 0;
+ int i;
+
+ int count = 0;
+
+ while(1){
+ ++count;
+ struct timeval tval_before, tval_after, tval_result;
+ gettimeofday(&tval_before, NULL);
+
+ image in = get_image_from_stream(cap);
+ if(!in.data) break;
+ image in_s = resize_image(in, net->w, net->h);
+
+ image out = in;
+ int x1 = out.w / 20;
+ int y1 = out.h / 20;
+ int x2 = 2*x1;
+ int y2 = out.h - out.h/20;
+
+ int border = .01*out.h;
+ int h = y2 - y1 - 2*border;
+ int w = x2 - x1 - 2*border;
+
+ float *predictions = network_predict(net, in_s.data);
+ float curr_threat = 0;
+ if(1){
+ curr_threat = predictions[0] * 0 +
+ predictions[1] * .6 +
+ predictions[2];
+ } else {
+ curr_threat = predictions[218] +
+ predictions[539] +
+ predictions[540] +
+ predictions[368] +
+ predictions[369] +
+ predictions[370];
+ }
+ threat = roll * curr_threat + (1-roll) * threat;
+
+ draw_box_width(out, x2 + border, y1 + .02*h, x2 + .5 * w, y1 + .02*h + border, border, 0,0,0);
+ if(threat > .97) {
+ draw_box_width(out, x2 + .5 * w + border,
+ y1 + .02*h - 2*border,
+ x2 + .5 * w + 6*border,
+ y1 + .02*h + 3*border, 3*border, 1,0,0);
+ }
+ draw_box_width(out, x2 + .5 * w + border,
+ y1 + .02*h - 2*border,
+ x2 + .5 * w + 6*border,
+ y1 + .02*h + 3*border, .5*border, 0,0,0);
+ draw_box_width(out, x2 + border, y1 + .42*h, x2 + .5 * w, y1 + .42*h + border, border, 0,0,0);
+ if(threat > .57) {
+ draw_box_width(out, x2 + .5 * w + border,
+ y1 + .42*h - 2*border,
+ x2 + .5 * w + 6*border,
+ y1 + .42*h + 3*border, 3*border, 1,1,0);
+ }
+ draw_box_width(out, x2 + .5 * w + border,
+ y1 + .42*h - 2*border,
+ x2 + .5 * w + 6*border,
+ y1 + .42*h + 3*border, .5*border, 0,0,0);
+
+ draw_box_width(out, x1, y1, x2, y2, border, 0,0,0);
+ for(i = 0; i < threat * h ; ++i){
+ float ratio = (float) i / h;
+ float r = (ratio < .5) ? (2*(ratio)) : 1;
+ float g = (ratio < .5) ? 1 : 1 - 2*(ratio - .5);
+ draw_box_width(out, x1 + border, y2 - border - i, x2 - border, y2 - border - i, 1, r, g, 0);
+ }
+ top_predictions(net, top, indexes);
+ char buff[256];
+ sprintf(buff, "/home/pjreddie/tmp/threat_%06d", count);
+ //save_image(out, buff);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+ printf("\nFPS:%.0f\n",fps);
+
+ for(i = 0; i < top; ++i){
+ int index = indexes[i];
+ printf("%.1f%%: %s\n", predictions[index]*100, names[index]);
+ }
+
+ if(1){
+ show_image(out, "Threat", 10);
+ }
+ free_image(in_s);
+ free_image(in);
+
+ gettimeofday(&tval_after, NULL);
+ timersub(&tval_after, &tval_before, &tval_result);
+ float curr = 1000000.f/((long int)tval_result.tv_usec);
+ fps = .9*fps + .1*curr;
+ }
+#endif
+}
+
+
+void gun_classifier(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename)
+{
+#ifdef OPENCV
+ int bad_cats[] = {218, 539, 540, 1213, 1501, 1742, 1911, 2415, 4348, 19223, 368, 369, 370, 1133, 1200, 1306, 2122, 2301, 2537, 2823, 3179, 3596, 3639, 4489, 5107, 5140, 5289, 6240, 6631, 6762, 7048, 7171, 7969, 7984, 7989, 8824, 8927, 9915, 10270, 10448, 13401, 15205, 18358, 18894, 18895, 19249, 19697};
+
+ printf("Classifier Demo\n");
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ list *options = read_data_cfg(datacfg);
+
+ srand(2222222);
+ void * cap = open_video_stream(filename, cam_index, 0,0,0);
+
+ int top = option_find_int(options, "top", 1);
+
+ char *name_list = option_find_str(options, "names", 0);
+ char **names = get_labels(name_list);
+
+ int *indexes = calloc(top, sizeof(int));
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ float fps = 0;
+ int i;
+
+ while(1){
+ struct timeval tval_before, tval_after, tval_result;
+ gettimeofday(&tval_before, NULL);
+
+ image in = get_image_from_stream(cap);
+ image in_s = resize_image(in, net->w, net->h);
+
+ float *predictions = network_predict(net, in_s.data);
+ top_predictions(net, top, indexes);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+
+ int threat = 0;
+ for(i = 0; i < sizeof(bad_cats)/sizeof(bad_cats[0]); ++i){
+ int index = bad_cats[i];
+ if(predictions[index] > .01){
+ printf("Threat Detected!\n");
+ threat = 1;
+ break;
+ }
+ }
+ if(!threat) printf("Scanning...\n");
+ for(i = 0; i < sizeof(bad_cats)/sizeof(bad_cats[0]); ++i){
+ int index = bad_cats[i];
+ if(predictions[index] > .01){
+ printf("%s\n", names[index]);
+ }
+ }
+
+ show_image(in, "Threat Detection", 10);
+ free_image(in_s);
+ free_image(in);
+
+ gettimeofday(&tval_after, NULL);
+ timersub(&tval_after, &tval_before, &tval_result);
+ float curr = 1000000.f/((long int)tval_result.tv_usec);
+ fps = .9*fps + .1*curr;
+ }
+#endif
+}
+
+void demo_classifier(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename)
+{
+#ifdef OPENCV
+ char *base = basecfg(cfgfile);
+ image **alphabet = load_alphabet();
+ printf("Classifier Demo\n");
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ list *options = read_data_cfg(datacfg);
+
+ srand(2222222);
+
+ int w = 1280;
+ int h = 720;
+ void * cap = open_video_stream(filename, cam_index, w, h, 0);
+
+ int top = option_find_int(options, "top", 1);
+
+ char *label_list = option_find_str(options, "labels", 0);
+ char *name_list = option_find_str(options, "names", label_list);
+ char **names = get_labels(name_list);
+
+ int *indexes = calloc(top, sizeof(int));
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ float fps = 0;
+ int i;
+
+ while(1){
+ struct timeval tval_before, tval_after, tval_result;
+ gettimeofday(&tval_before, NULL);
+
+ image in = get_image_from_stream(cap);
+ //image in_s = resize_image(in, net->w, net->h);
+ image in_s = letterbox_image(in, net->w, net->h);
+
+ float *predictions = network_predict(net, in_s.data);
+ if(net->hierarchy) hierarchy_predictions(predictions, net->outputs, net->hierarchy, 1, 1);
+ top_predictions(net, top, indexes);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+ printf("\nFPS:%.0f\n",fps);
+
+ int lh = in.h*.03;
+ int toph = 3*lh;
+
+ float rgb[3] = {1,1,1};
+ for(i = 0; i < top; ++i){
+ printf("%d\n", toph);
+ int index = indexes[i];
+ printf("%.1f%%: %s\n", predictions[index]*100, names[index]);
+
+ char buff[1024];
+ sprintf(buff, "%3.1f%%: %s\n", predictions[index]*100, names[index]);
+ image label = get_label(alphabet, buff, lh);
+ draw_label(in, toph, lh, label, rgb);
+ toph += 2*lh;
+ free_image(label);
+ }
+
+ show_image(in, base, 10);
+ free_image(in_s);
+ free_image(in);
+
+ gettimeofday(&tval_after, NULL);
+ timersub(&tval_after, &tval_before, &tval_result);
+ float curr = 1000000.f/((long int)tval_result.tv_usec);
+ fps = .9*fps + .1*curr;
+ }
+#endif
+}
+
+
+void run_classifier(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ int ngpus;
+ int *gpus = read_intlist(gpu_list, &ngpus, gpu_index);
+
+
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int top = find_int_arg(argc, argv, "-t", 0);
+ int clear = find_arg(argc, argv, "-clear");
+ char *data = argv[3];
+ char *cfg = argv[4];
+ char *weights = (argc > 5) ? argv[5] : 0;
+ char *filename = (argc > 6) ? argv[6]: 0;
+ char *layer_s = (argc > 7) ? argv[7]: 0;
+ int layer = layer_s ? atoi(layer_s) : -1;
+ if(0==strcmp(argv[2], "predict")) predict_classifier(data, cfg, weights, filename, top);
+ else if(0==strcmp(argv[2], "fout")) file_output_classifier(data, cfg, weights, filename);
+ else if(0==strcmp(argv[2], "try")) try_classifier(data, cfg, weights, filename, atoi(layer_s));
+ else if(0==strcmp(argv[2], "train")) train_classifier(data, cfg, weights, gpus, ngpus, clear);
+ else if(0==strcmp(argv[2], "demo")) demo_classifier(data, cfg, weights, cam_index, filename);
+ else if(0==strcmp(argv[2], "gun")) gun_classifier(data, cfg, weights, cam_index, filename);
+ else if(0==strcmp(argv[2], "threat")) threat_classifier(data, cfg, weights, cam_index, filename);
+ else if(0==strcmp(argv[2], "test")) test_classifier(data, cfg, weights, layer);
+ else if(0==strcmp(argv[2], "csv")) csv_classifier(data, cfg, weights);
+ else if(0==strcmp(argv[2], "label")) label_classifier(data, cfg, weights);
+ else if(0==strcmp(argv[2], "valid")) validate_classifier_single(data, cfg, weights);
+ else if(0==strcmp(argv[2], "validmulti")) validate_classifier_multi(data, cfg, weights);
+ else if(0==strcmp(argv[2], "valid10")) validate_classifier_10(data, cfg, weights);
+ else if(0==strcmp(argv[2], "validcrop")) validate_classifier_crop(data, cfg, weights);
+ else if(0==strcmp(argv[2], "validfull")) validate_classifier_full(data, cfg, weights);
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/coco.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/coco.c"
new file mode 100644
index 00000000..6a50b89a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/coco.c"
@@ -0,0 +1,357 @@
+#include "darknet.h"
+
+#include
+
+char *coco_classes[] = {"person","bicycle","car","motorcycle","airplane","bus","train","truck","boat","traffic light","fire hydrant","stop sign","parking meter","bench","bird","cat","dog","horse","sheep","cow","elephant","bear","zebra","giraffe","backpack","umbrella","handbag","tie","suitcase","frisbee","skis","snowboard","sports ball","kite","baseball bat","baseball glove","skateboard","surfboard","tennis racket","bottle","wine glass","cup","fork","knife","spoon","bowl","banana","apple","sandwich","orange","broccoli","carrot","hot dog","pizza","donut","cake","chair","couch","potted plant","bed","dining table","toilet","tv","laptop","mouse","remote","keyboard","cell phone","microwave","oven","toaster","sink","refrigerator","book","clock","vase","scissors","teddy bear","hair drier","toothbrush"};
+
+int coco_ids[] = {1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,70,72,73,74,75,76,77,78,79,80,81,82,84,85,86,87,88,89,90};
+
+void train_coco(char *cfgfile, char *weightfile)
+{
+ //char *train_images = "/home/pjreddie/data/voc/test/train.txt";
+ //char *train_images = "/home/pjreddie/data/coco/train.txt";
+ char *train_images = "data/coco.trainval.txt";
+ //char *train_images = "data/bags.train.list";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = net->batch*net->subdivisions;
+ int i = *net->seen/imgs;
+ data train, buffer;
+
+
+ layer l = net->layers[net->n - 1];
+
+ int side = l.side;
+ int classes = l.classes;
+ float jitter = l.jitter;
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.classes = classes;
+ args.jitter = jitter;
+ args.num_boxes = side;
+ args.d = &buffer;
+ args.type = REGION_DATA;
+
+ args.angle = net->angle;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+ //while(i*imgs < N*120){
+ while(get_current_batch(net) < net->max_batches){
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ /*
+ image im = float_to_image(net->w, net->h, 3, train.X.vals[113]);
+ image copy = copy_image(im);
+ draw_coco(copy, train.y.vals[113], 7, "truth");
+ cvWaitKey(0);
+ free_image(copy);
+ */
+
+ time=clock();
+ float loss = train_network(net, train);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0 || (i < 1000 && i%100 == 0)){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ }
+ free_data(train);
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+static void print_cocos(FILE *fp, int image_id, detection *dets, int num_boxes, int classes, int w, int h)
+{
+ int i, j;
+ for(i = 0; i < num_boxes; ++i){
+ float xmin = dets[i].bbox.x - dets[i].bbox.w/2.;
+ float xmax = dets[i].bbox.x + dets[i].bbox.w/2.;
+ float ymin = dets[i].bbox.y - dets[i].bbox.h/2.;
+ float ymax = dets[i].bbox.y + dets[i].bbox.h/2.;
+
+ if (xmin < 0) xmin = 0;
+ if (ymin < 0) ymin = 0;
+ if (xmax > w) xmax = w;
+ if (ymax > h) ymax = h;
+
+ float bx = xmin;
+ float by = ymin;
+ float bw = xmax - xmin;
+ float bh = ymax - ymin;
+
+ for(j = 0; j < classes; ++j){
+ if (dets[i].prob[j]) fprintf(fp, "{\"image_id\":%d, \"category_id\":%d, \"bbox\":[%f, %f, %f, %f], \"score\":%f},\n", image_id, coco_ids[j], bx, by, bw, bh, dets[i].prob[j]);
+ }
+ }
+}
+
+int get_coco_image_id(char *filename)
+{
+ char *p = strrchr(filename, '_');
+ return atoi(p+1);
+}
+
+void validate_coco(char *cfg, char *weights)
+{
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ char *base = "results/";
+ list *plist = get_paths("data/coco_val_5k.list");
+ //list *plist = get_paths("/home/pjreddie/data/people-art/test.txt");
+ //list *plist = get_paths("/home/pjreddie/data/voc/test/2007_test.txt");
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+ int classes = l.classes;
+
+ char buff[1024];
+ snprintf(buff, 1024, "%s/coco_results.json", base);
+ FILE *fp = fopen(buff, "w");
+ fprintf(fp, "[\n");
+
+ int m = plist->size;
+ int i=0;
+ int t;
+
+ float thresh = .01;
+ int nms = 1;
+ float iou_thresh = .5;
+
+ int nthreads = 8;
+ image *val = calloc(nthreads, sizeof(image));
+ image *val_resized = calloc(nthreads, sizeof(image));
+ image *buf = calloc(nthreads, sizeof(image));
+ image *buf_resized = calloc(nthreads, sizeof(image));
+ pthread_t *thr = calloc(nthreads, sizeof(pthread_t));
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.type = IMAGE_DATA;
+
+ for(t = 0; t < nthreads; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ time_t start = time(0);
+ for(i = nthreads; i < m+nthreads; i += nthreads){
+ fprintf(stderr, "%d\n", i);
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ pthread_join(thr[t], 0);
+ val[t] = buf[t];
+ val_resized[t] = buf_resized[t];
+ }
+ for(t = 0; t < nthreads && i+t < m; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ char *path = paths[i+t-nthreads];
+ int image_id = get_coco_image_id(path);
+ float *X = val_resized[t].data;
+ network_predict(net, X);
+ int w = val[t].w;
+ int h = val[t].h;
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, w, h, thresh, 0, 0, 0, &nboxes);
+ if (nms) do_nms_sort(dets, l.side*l.side*l.n, classes, iou_thresh);
+ print_cocos(fp, image_id, dets, l.side*l.side*l.n, classes, w, h);
+ free_detections(dets, nboxes);
+ free_image(val[t]);
+ free_image(val_resized[t]);
+ }
+ }
+ fseek(fp, -2, SEEK_CUR);
+ fprintf(fp, "\n]\n");
+ fclose(fp);
+
+ fprintf(stderr, "Total Detection Time: %f Seconds\n", (double)(time(0) - start));
+}
+
+void validate_coco_recall(char *cfgfile, char *weightfile)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ char *base = "results/comp4_det_test_";
+ list *plist = get_paths("/home/pjreddie/data/voc/test/2007_test.txt");
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+ int classes = l.classes;
+ int side = l.side;
+
+ int j, k;
+ FILE **fps = calloc(classes, sizeof(FILE *));
+ for(j = 0; j < classes; ++j){
+ char buff[1024];
+ snprintf(buff, 1024, "%s%s.txt", base, coco_classes[j]);
+ fps[j] = fopen(buff, "w");
+ }
+
+ int m = plist->size;
+ int i=0;
+
+ float thresh = .001;
+ int nms = 0;
+ float iou_thresh = .5;
+
+ int total = 0;
+ int correct = 0;
+ int proposals = 0;
+ float avg_iou = 0;
+
+ for(i = 0; i < m; ++i){
+ char *path = paths[i];
+ image orig = load_image_color(path, 0, 0);
+ image sized = resize_image(orig, net->w, net->h);
+ char *id = basecfg(path);
+ network_predict(net, sized.data);
+
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, orig.w, orig.h, thresh, 0, 0, 1, &nboxes);
+ if (nms) do_nms_obj(dets, side*side*l.n, 1, nms);
+
+ char labelpath[4096];
+ find_replace(path, "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+
+ int num_labels = 0;
+ box_label *truth = read_boxes(labelpath, &num_labels);
+ for(k = 0; k < side*side*l.n; ++k){
+ if(dets[k].objectness > thresh){
+ ++proposals;
+ }
+ }
+ for (j = 0; j < num_labels; ++j) {
+ ++total;
+ box t = {truth[j].x, truth[j].y, truth[j].w, truth[j].h};
+ float best_iou = 0;
+ for(k = 0; k < side*side*l.n; ++k){
+ float iou = box_iou(dets[k].bbox, t);
+ if(dets[k].objectness > thresh && iou > best_iou){
+ best_iou = iou;
+ }
+ }
+ avg_iou += best_iou;
+ if(best_iou > iou_thresh){
+ ++correct;
+ }
+ }
+ free_detections(dets, nboxes);
+ fprintf(stderr, "%5d %5d %5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\n", i, correct, total, (float)proposals/(i+1), avg_iou*100/total, 100.*correct/total);
+ free(id);
+ free_image(orig);
+ free_image(sized);
+ }
+}
+
+void test_coco(char *cfgfile, char *weightfile, char *filename, float thresh)
+{
+ image **alphabet = load_alphabet();
+ network *net = load_network(cfgfile, weightfile, 0);
+ layer l = net->layers[net->n-1];
+ set_batch_network(net, 1);
+ srand(2222222);
+ float nms = .4;
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ } else {
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input,0,0);
+ image sized = resize_image(im, net->w, net->h);
+ float *X = sized.data;
+ time=clock();
+ network_predict(net, X);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, 1, 1, thresh, 0, 0, 0, &nboxes);
+ if (nms) do_nms_sort(dets, l.side*l.side*l.n, l.classes, nms);
+
+ draw_detections(im, dets, l.side*l.side*l.n, thresh, coco_classes, alphabet, 80);
+ save_image(im, "prediction");
+ show_image(im, "predictions", 0);
+ free_detections(dets, nboxes);
+ free_image(im);
+ free_image(sized);
+ if (filename) break;
+ }
+}
+
+void run_coco(int argc, char **argv)
+{
+ char *prefix = find_char_arg(argc, argv, "-prefix", 0);
+ float thresh = find_float_arg(argc, argv, "-thresh", .2);
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int frame_skip = find_int_arg(argc, argv, "-s", 0);
+
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5]: 0;
+ int avg = find_int_arg(argc, argv, "-avg", 1);
+ if(0==strcmp(argv[2], "test")) test_coco(cfg, weights, filename, thresh);
+ else if(0==strcmp(argv[2], "train")) train_coco(cfg, weights);
+ else if(0==strcmp(argv[2], "valid")) validate_coco(cfg, weights);
+ else if(0==strcmp(argv[2], "recall")) validate_coco_recall(cfg, weights);
+ else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, coco_classes, 80, frame_skip, prefix, avg, .5, 0,0,0,0);
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/darknet.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/darknet.c"
new file mode 100644
index 00000000..d5383592
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/darknet.c"
@@ -0,0 +1,503 @@
+#include "darknet.h"
+
+#include
+#include
+#include
+
+extern void predict_classifier(char *datacfg, char *cfgfile, char *weightfile, char *filename, int top);
+extern void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh, float hier_thresh, char *outfile, int fullscreen);
+extern void run_yolo(int argc, char **argv);
+extern void run_detector(int argc, char **argv);
+extern void run_coco(int argc, char **argv);
+extern void run_nightmare(int argc, char **argv);
+extern void run_classifier(int argc, char **argv);
+extern void run_regressor(int argc, char **argv);
+extern void run_segmenter(int argc, char **argv);
+extern void run_isegmenter(int argc, char **argv);
+extern void run_char_rnn(int argc, char **argv);
+extern void run_tag(int argc, char **argv);
+extern void run_cifar(int argc, char **argv);
+extern void run_go(int argc, char **argv);
+extern void run_art(int argc, char **argv);
+extern void run_super(int argc, char **argv);
+extern void run_lsd(int argc, char **argv);
+
+void average(int argc, char *argv[])
+{
+ char *cfgfile = argv[2];
+ char *outfile = argv[3];
+ gpu_index = -1;
+ network *net = parse_network_cfg(cfgfile);
+ network *sum = parse_network_cfg(cfgfile);
+
+ char *weightfile = argv[4];
+ load_weights(sum, weightfile);
+
+ int i, j;
+ int n = argc - 5;
+ for(i = 0; i < n; ++i){
+ weightfile = argv[i+5];
+ load_weights(net, weightfile);
+ for(j = 0; j < net->n; ++j){
+ layer l = net->layers[j];
+ layer out = sum->layers[j];
+ if(l.type == CONVOLUTIONAL){
+ int num = l.n*l.c*l.size*l.size;
+ axpy_cpu(l.n, 1, l.biases, 1, out.biases, 1);
+ axpy_cpu(num, 1, l.weights, 1, out.weights, 1);
+ if(l.batch_normalize){
+ axpy_cpu(l.n, 1, l.scales, 1, out.scales, 1);
+ axpy_cpu(l.n, 1, l.rolling_mean, 1, out.rolling_mean, 1);
+ axpy_cpu(l.n, 1, l.rolling_variance, 1, out.rolling_variance, 1);
+ }
+ }
+ if(l.type == CONNECTED){
+ axpy_cpu(l.outputs, 1, l.biases, 1, out.biases, 1);
+ axpy_cpu(l.outputs*l.inputs, 1, l.weights, 1, out.weights, 1);
+ }
+ }
+ }
+ n = n+1;
+ for(j = 0; j < net->n; ++j){
+ layer l = sum->layers[j];
+ if(l.type == CONVOLUTIONAL){
+ int num = l.n*l.c*l.size*l.size;
+ scal_cpu(l.n, 1./n, l.biases, 1);
+ scal_cpu(num, 1./n, l.weights, 1);
+ if(l.batch_normalize){
+ scal_cpu(l.n, 1./n, l.scales, 1);
+ scal_cpu(l.n, 1./n, l.rolling_mean, 1);
+ scal_cpu(l.n, 1./n, l.rolling_variance, 1);
+ }
+ }
+ if(l.type == CONNECTED){
+ scal_cpu(l.outputs, 1./n, l.biases, 1);
+ scal_cpu(l.outputs*l.inputs, 1./n, l.weights, 1);
+ }
+ }
+ save_weights(sum, outfile);
+}
+
+long numops(network *net)
+{
+ int i;
+ long ops = 0;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == CONVOLUTIONAL){
+ ops += 2l * l.n * l.size*l.size*l.c/l.groups * l.out_h*l.out_w;
+ } else if(l.type == CONNECTED){
+ ops += 2l * l.inputs * l.outputs;
+ } else if (l.type == RNN){
+ ops += 2l * l.input_layer->inputs * l.input_layer->outputs;
+ ops += 2l * l.self_layer->inputs * l.self_layer->outputs;
+ ops += 2l * l.output_layer->inputs * l.output_layer->outputs;
+ } else if (l.type == GRU){
+ ops += 2l * l.uz->inputs * l.uz->outputs;
+ ops += 2l * l.uh->inputs * l.uh->outputs;
+ ops += 2l * l.ur->inputs * l.ur->outputs;
+ ops += 2l * l.wz->inputs * l.wz->outputs;
+ ops += 2l * l.wh->inputs * l.wh->outputs;
+ ops += 2l * l.wr->inputs * l.wr->outputs;
+ } else if (l.type == LSTM){
+ ops += 2l * l.uf->inputs * l.uf->outputs;
+ ops += 2l * l.ui->inputs * l.ui->outputs;
+ ops += 2l * l.ug->inputs * l.ug->outputs;
+ ops += 2l * l.uo->inputs * l.uo->outputs;
+ ops += 2l * l.wf->inputs * l.wf->outputs;
+ ops += 2l * l.wi->inputs * l.wi->outputs;
+ ops += 2l * l.wg->inputs * l.wg->outputs;
+ ops += 2l * l.wo->inputs * l.wo->outputs;
+ }
+ }
+ return ops;
+}
+
+void speed(char *cfgfile, int tics)
+{
+ if (tics == 0) tics = 1000;
+ network *net = parse_network_cfg(cfgfile);
+ set_batch_network(net, 1);
+ int i;
+ double time=what_time_is_it_now();
+ image im = make_image(net->w, net->h, net->c*net->batch);
+ for(i = 0; i < tics; ++i){
+ network_predict(net, im.data);
+ }
+ double t = what_time_is_it_now() - time;
+ long ops = numops(net);
+ printf("\n%d evals, %f Seconds\n", tics, t);
+ printf("Floating Point Operations: %.2f Bn\n", (float)ops/1000000000.);
+ printf("FLOPS: %.2f Bn\n", (float)ops/1000000000.*tics/t);
+ printf("Speed: %f sec/eval\n", t/tics);
+ printf("Speed: %f Hz\n", tics/t);
+}
+
+void operations(char *cfgfile)
+{
+ gpu_index = -1;
+ network *net = parse_network_cfg(cfgfile);
+ long ops = numops(net);
+ printf("Floating Point Operations: %ld\n", ops);
+ printf("Floating Point Operations: %.2f Bn\n", (float)ops/1000000000.);
+}
+
+void oneoff(char *cfgfile, char *weightfile, char *outfile)
+{
+ gpu_index = -1;
+ network *net = parse_network_cfg(cfgfile);
+ int oldn = net->layers[net->n - 2].n;
+ int c = net->layers[net->n - 2].c;
+ scal_cpu(oldn*c, .1, net->layers[net->n - 2].weights, 1);
+ scal_cpu(oldn, 0, net->layers[net->n - 2].biases, 1);
+ net->layers[net->n - 2].n = 11921;
+ net->layers[net->n - 2].biases += 5;
+ net->layers[net->n - 2].weights += 5*c;
+ if(weightfile){
+ load_weights(net, weightfile);
+ }
+ net->layers[net->n - 2].biases -= 5;
+ net->layers[net->n - 2].weights -= 5*c;
+ net->layers[net->n - 2].n = oldn;
+ printf("%d\n", oldn);
+ layer l = net->layers[net->n - 2];
+ copy_cpu(l.n/3, l.biases, 1, l.biases + l.n/3, 1);
+ copy_cpu(l.n/3, l.biases, 1, l.biases + 2*l.n/3, 1);
+ copy_cpu(l.n/3*l.c, l.weights, 1, l.weights + l.n/3*l.c, 1);
+ copy_cpu(l.n/3*l.c, l.weights, 1, l.weights + 2*l.n/3*l.c, 1);
+ *net->seen = 0;
+ save_weights(net, outfile);
+}
+
+void oneoff2(char *cfgfile, char *weightfile, char *outfile, int l)
+{
+ gpu_index = -1;
+ network *net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights_upto(net, weightfile, 0, net->n);
+ load_weights_upto(net, weightfile, l, net->n);
+ }
+ *net->seen = 0;
+ save_weights_upto(net, outfile, net->n);
+}
+
+void partial(char *cfgfile, char *weightfile, char *outfile, int max)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 1);
+ save_weights_upto(net, outfile, max);
+}
+
+void print_weights(char *cfgfile, char *weightfile, int n)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 1);
+ layer l = net->layers[n];
+ int i, j;
+ //printf("[");
+ for(i = 0; i < l.n; ++i){
+ //printf("[");
+ for(j = 0; j < l.size*l.size*l.c; ++j){
+ //if(j > 0) printf(",");
+ printf("%g ", l.weights[i*l.size*l.size*l.c + j]);
+ }
+ printf("\n");
+ //printf("]%s\n", (i == l.n-1)?"":",");
+ }
+ //printf("]");
+}
+
+void rescale_net(char *cfgfile, char *weightfile, char *outfile)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ int i;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == CONVOLUTIONAL){
+ rescale_weights(l, 2, -.5);
+ break;
+ }
+ }
+ save_weights(net, outfile);
+}
+
+void rgbgr_net(char *cfgfile, char *weightfile, char *outfile)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ int i;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == CONVOLUTIONAL){
+ rgbgr_weights(l);
+ break;
+ }
+ }
+ save_weights(net, outfile);
+}
+
+void reset_normalize_net(char *cfgfile, char *weightfile, char *outfile)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ int i;
+ for (i = 0; i < net->n; ++i) {
+ layer l = net->layers[i];
+ if (l.type == CONVOLUTIONAL && l.batch_normalize) {
+ denormalize_convolutional_layer(l);
+ }
+ if (l.type == CONNECTED && l.batch_normalize) {
+ denormalize_connected_layer(l);
+ }
+ if (l.type == GRU && l.batch_normalize) {
+ denormalize_connected_layer(*l.input_z_layer);
+ denormalize_connected_layer(*l.input_r_layer);
+ denormalize_connected_layer(*l.input_h_layer);
+ denormalize_connected_layer(*l.state_z_layer);
+ denormalize_connected_layer(*l.state_r_layer);
+ denormalize_connected_layer(*l.state_h_layer);
+ }
+ }
+ save_weights(net, outfile);
+}
+
+layer normalize_layer(layer l, int n)
+{
+ int j;
+ l.batch_normalize=1;
+ l.scales = calloc(n, sizeof(float));
+ for(j = 0; j < n; ++j){
+ l.scales[j] = 1;
+ }
+ l.rolling_mean = calloc(n, sizeof(float));
+ l.rolling_variance = calloc(n, sizeof(float));
+ return l;
+}
+
+void normalize_net(char *cfgfile, char *weightfile, char *outfile)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ int i;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == CONVOLUTIONAL && !l.batch_normalize){
+ net->layers[i] = normalize_layer(l, l.n);
+ }
+ if (l.type == CONNECTED && !l.batch_normalize) {
+ net->layers[i] = normalize_layer(l, l.outputs);
+ }
+ if (l.type == GRU && l.batch_normalize) {
+ *l.input_z_layer = normalize_layer(*l.input_z_layer, l.input_z_layer->outputs);
+ *l.input_r_layer = normalize_layer(*l.input_r_layer, l.input_r_layer->outputs);
+ *l.input_h_layer = normalize_layer(*l.input_h_layer, l.input_h_layer->outputs);
+ *l.state_z_layer = normalize_layer(*l.state_z_layer, l.state_z_layer->outputs);
+ *l.state_r_layer = normalize_layer(*l.state_r_layer, l.state_r_layer->outputs);
+ *l.state_h_layer = normalize_layer(*l.state_h_layer, l.state_h_layer->outputs);
+ net->layers[i].batch_normalize=1;
+ }
+ }
+ save_weights(net, outfile);
+}
+
+void statistics_net(char *cfgfile, char *weightfile)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ int i;
+ for (i = 0; i < net->n; ++i) {
+ layer l = net->layers[i];
+ if (l.type == CONNECTED && l.batch_normalize) {
+ printf("Connected Layer %d\n", i);
+ statistics_connected_layer(l);
+ }
+ if (l.type == GRU && l.batch_normalize) {
+ printf("GRU Layer %d\n", i);
+ printf("Input Z\n");
+ statistics_connected_layer(*l.input_z_layer);
+ printf("Input R\n");
+ statistics_connected_layer(*l.input_r_layer);
+ printf("Input H\n");
+ statistics_connected_layer(*l.input_h_layer);
+ printf("State Z\n");
+ statistics_connected_layer(*l.state_z_layer);
+ printf("State R\n");
+ statistics_connected_layer(*l.state_r_layer);
+ printf("State H\n");
+ statistics_connected_layer(*l.state_h_layer);
+ }
+ printf("\n");
+ }
+}
+
+void denormalize_net(char *cfgfile, char *weightfile, char *outfile)
+{
+ gpu_index = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ int i;
+ for (i = 0; i < net->n; ++i) {
+ layer l = net->layers[i];
+ if ((l.type == DECONVOLUTIONAL || l.type == CONVOLUTIONAL) && l.batch_normalize) {
+ denormalize_convolutional_layer(l);
+ net->layers[i].batch_normalize=0;
+ }
+ if (l.type == CONNECTED && l.batch_normalize) {
+ denormalize_connected_layer(l);
+ net->layers[i].batch_normalize=0;
+ }
+ if (l.type == GRU && l.batch_normalize) {
+ denormalize_connected_layer(*l.input_z_layer);
+ denormalize_connected_layer(*l.input_r_layer);
+ denormalize_connected_layer(*l.input_h_layer);
+ denormalize_connected_layer(*l.state_z_layer);
+ denormalize_connected_layer(*l.state_r_layer);
+ denormalize_connected_layer(*l.state_h_layer);
+ l.input_z_layer->batch_normalize = 0;
+ l.input_r_layer->batch_normalize = 0;
+ l.input_h_layer->batch_normalize = 0;
+ l.state_z_layer->batch_normalize = 0;
+ l.state_r_layer->batch_normalize = 0;
+ l.state_h_layer->batch_normalize = 0;
+ net->layers[i].batch_normalize=0;
+ }
+ }
+ save_weights(net, outfile);
+}
+
+void mkimg(char *cfgfile, char *weightfile, int h, int w, int num, char *prefix)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ image *ims = get_weights(net->layers[0]);
+ int n = net->layers[0].n;
+ int z;
+ for(z = 0; z < num; ++z){
+ image im = make_image(h, w, 3);
+ fill_image(im, .5);
+ int i;
+ for(i = 0; i < 100; ++i){
+ image r = copy_image(ims[rand()%n]);
+ rotate_image_cw(r, rand()%4);
+ random_distort_image(r, 1, 1.5, 1.5);
+ int dx = rand()%(w-r.w);
+ int dy = rand()%(h-r.h);
+ ghost_image(r, im, dx, dy);
+ free_image(r);
+ }
+ char buff[256];
+ sprintf(buff, "%s/gen_%d", prefix, z);
+ save_image(im, buff);
+ free_image(im);
+ }
+}
+
+void visualize(char *cfgfile, char *weightfile)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ visualize_network(net);
+}
+
+int main(int argc, char **argv)
+{
+ //test_resize("data/bad.jpg");
+ //test_box();
+ //test_convolutional_layer();
+ if(argc < 2){
+ fprintf(stderr, "usage: %s \n", argv[0]);
+ return 0;
+ }
+ gpu_index = find_int_arg(argc, argv, "-i", 0);
+ if(find_arg(argc, argv, "-nogpu")) {
+ gpu_index = -1;
+ }
+
+#ifndef GPU
+ gpu_index = -1;
+#else
+ if(gpu_index >= 0){
+ cuda_set_device(gpu_index);
+ }
+#endif
+
+ if (0 == strcmp(argv[1], "average")){
+ average(argc, argv);
+ } else if (0 == strcmp(argv[1], "yolo")){
+ run_yolo(argc, argv);
+ } else if (0 == strcmp(argv[1], "super")){
+ run_super(argc, argv);
+ } else if (0 == strcmp(argv[1], "lsd")){
+ run_lsd(argc, argv);
+ } else if (0 == strcmp(argv[1], "detector")){
+ run_detector(argc, argv);
+ } else if (0 == strcmp(argv[1], "detect")){
+ float thresh = find_float_arg(argc, argv, "-thresh", .5);
+ char *filename = (argc > 4) ? argv[4]: 0;
+ char *outfile = find_char_arg(argc, argv, "-out", 0);
+ int fullscreen = find_arg(argc, argv, "-fullscreen");
+ test_detector("cfg/coco.data", argv[2], argv[3], filename, thresh, .5, outfile, fullscreen);
+ } else if (0 == strcmp(argv[1], "cifar")){
+ run_cifar(argc, argv);
+ } else if (0 == strcmp(argv[1], "go")){
+ run_go(argc, argv);
+ } else if (0 == strcmp(argv[1], "rnn")){
+ run_char_rnn(argc, argv);
+ } else if (0 == strcmp(argv[1], "coco")){
+ run_coco(argc, argv);
+ } else if (0 == strcmp(argv[1], "classify")){
+ predict_classifier("cfg/imagenet1k.data", argv[2], argv[3], argv[4], 5);
+ } else if (0 == strcmp(argv[1], "classifier")){
+ run_classifier(argc, argv);
+ } else if (0 == strcmp(argv[1], "regressor")){
+ run_regressor(argc, argv);
+ } else if (0 == strcmp(argv[1], "isegmenter")){
+ run_isegmenter(argc, argv);
+ } else if (0 == strcmp(argv[1], "segmenter")){
+ run_segmenter(argc, argv);
+ } else if (0 == strcmp(argv[1], "art")){
+ run_art(argc, argv);
+ } else if (0 == strcmp(argv[1], "tag")){
+ run_tag(argc, argv);
+ } else if (0 == strcmp(argv[1], "3d")){
+ composite_3d(argv[2], argv[3], argv[4], (argc > 5) ? atof(argv[5]) : 0);
+ } else if (0 == strcmp(argv[1], "test")){
+ test_resize(argv[2]);
+ } else if (0 == strcmp(argv[1], "nightmare")){
+ run_nightmare(argc, argv);
+ } else if (0 == strcmp(argv[1], "rgbgr")){
+ rgbgr_net(argv[2], argv[3], argv[4]);
+ } else if (0 == strcmp(argv[1], "reset")){
+ reset_normalize_net(argv[2], argv[3], argv[4]);
+ } else if (0 == strcmp(argv[1], "denormalize")){
+ denormalize_net(argv[2], argv[3], argv[4]);
+ } else if (0 == strcmp(argv[1], "statistics")){
+ statistics_net(argv[2], argv[3]);
+ } else if (0 == strcmp(argv[1], "normalize")){
+ normalize_net(argv[2], argv[3], argv[4]);
+ } else if (0 == strcmp(argv[1], "rescale")){
+ rescale_net(argv[2], argv[3], argv[4]);
+ } else if (0 == strcmp(argv[1], "ops")){
+ operations(argv[2]);
+ } else if (0 == strcmp(argv[1], "speed")){
+ speed(argv[2], (argc > 3 && argv[3]) ? atoi(argv[3]) : 0);
+ } else if (0 == strcmp(argv[1], "oneoff")){
+ oneoff(argv[2], argv[3], argv[4]);
+ } else if (0 == strcmp(argv[1], "oneoff2")){
+ oneoff2(argv[2], argv[3], argv[4], atoi(argv[5]));
+ } else if (0 == strcmp(argv[1], "print")){
+ print_weights(argv[2], argv[3], atoi(argv[4]));
+ } else if (0 == strcmp(argv[1], "partial")){
+ partial(argv[2], argv[3], argv[4], atoi(argv[5]));
+ } else if (0 == strcmp(argv[1], "average")){
+ average(argc, argv);
+ } else if (0 == strcmp(argv[1], "visualize")){
+ visualize(argv[2], (argc > 3) ? argv[3] : 0);
+ } else if (0 == strcmp(argv[1], "mkimg")){
+ mkimg(argv[2], argv[3], atoi(argv[4]), atoi(argv[5]), atoi(argv[6]), argv[7]);
+ } else if (0 == strcmp(argv[1], "imtest")){
+ test_resize(argv[2]);
+ } else {
+ fprintf(stderr, "Not an option: %s\n", argv[1]);
+ }
+ return 0;
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector-scipy-opencv.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector-scipy-opencv.py"
new file mode 100644
index 00000000..3bfc5913
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector-scipy-opencv.py"
@@ -0,0 +1,56 @@
+# Stupid python path shit.
+# Instead just add darknet.py to somewhere in your python path
+# OK actually that might not be a great idea, idk, work in progress
+# Use at your own risk. or don't, i don't care
+
+from scipy.misc import imread
+import cv2
+
+def array_to_image(arr):
+ arr = arr.transpose(2,0,1)
+ c = arr.shape[0]
+ h = arr.shape[1]
+ w = arr.shape[2]
+ arr = (arr/255.0).flatten()
+ data = dn.c_array(dn.c_float, arr)
+ im = dn.IMAGE(w,h,c,data)
+ return im
+
+def detect2(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45):
+ boxes = dn.make_boxes(net)
+ probs = dn.make_probs(net)
+ num = dn.num_boxes(net)
+ dn.network_detect(net, image, thresh, hier_thresh, nms, boxes, probs)
+ res = []
+ for j in range(num):
+ for i in range(meta.classes):
+ if probs[j][i] > 0:
+ res.append((meta.names[i], probs[j][i], (boxes[j].x, boxes[j].y, boxes[j].w, boxes[j].h)))
+ res = sorted(res, key=lambda x: -x[1])
+ dn.free_ptrs(dn.cast(probs, dn.POINTER(dn.c_void_p)), num)
+ return res
+
+import sys, os
+sys.path.append(os.path.join(os.getcwd(),'python/'))
+
+import darknet as dn
+
+# Darknet
+net = dn.load_net("cfg/tiny-yolo.cfg", "tiny-yolo.weights", 0)
+meta = dn.load_meta("cfg/coco.data")
+r = dn.detect(net, meta, "data/dog.jpg")
+print r
+
+# scipy
+arr= imread('data/dog.jpg')
+im = array_to_image(arr)
+r = detect2(net, meta, im)
+print r
+
+# OpenCV
+arr = cv2.imread('data/dog.jpg')
+im = array_to_image(arr)
+dn.rgbgr_image(im)
+r = detect2(net, meta, im)
+print r
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector.c"
new file mode 100644
index 00000000..318f7fbb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector.c"
@@ -0,0 +1,850 @@
+#include "darknet.h"
+
+static int coco_ids[] = {1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,25,27,28,31,32,33,34,35,36,37,38,39,40,41,42,43,44,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,67,70,72,73,74,75,76,77,78,79,80,81,82,84,85,86,87,88,89,90};
+
+
+void train_detector(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear)
+{
+ list *options = read_data_cfg(datacfg);
+ char *train_images = option_find_str(options, "train", "data/train.list");
+ char *backup_directory = option_find_str(options, "backup", "/backup/");
+
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network **nets = calloc(ngpus, sizeof(network));
+
+ srand(time(0));
+ int seed = rand();
+ int i;
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ srand(time(0));
+ network *net = nets[0];
+
+ int imgs = net->batch * net->subdivisions * ngpus;
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ data train, buffer;
+
+ layer l = net->layers[net->n - 1];
+
+ int classes = l.classes;
+ float jitter = l.jitter;
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = get_base_args(net);
+ args.coords = l.coords;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.classes = classes;
+ args.jitter = jitter;
+ args.num_boxes = l.max_boxes;
+ args.d = &buffer;
+ args.type = DETECTION_DATA;
+ //args.type = INSTANCE_DATA;
+ args.threads = 64;
+
+ pthread_t load_thread = load_data(args);
+ double time;
+ int count = 0;
+ //while(i*imgs < N*120){
+ while(get_current_batch(net) < net->max_batches){
+ if(l.random && count++%10 == 0){
+ printf("Resizing\n");
+ int dim = (rand() % 10 + 10) * 32;
+ if (get_current_batch(net)+200 > net->max_batches) dim = 608;
+ //int dim = (rand() % 4 + 16) * 32;
+ printf("%d\n", dim);
+ args.w = dim;
+ args.h = dim;
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ free_data(train);
+ load_thread = load_data(args);
+
+ #pragma omp parallel for
+ for(i = 0; i < ngpus; ++i){
+ resize_network(nets[i], dim, dim);
+ }
+ net = nets[0];
+ }
+ time=what_time_is_it_now();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data(args);
+
+ /*
+ int k;
+ for(k = 0; k < l.max_boxes; ++k){
+ box b = float_to_box(train.y.vals[10] + 1 + k*5);
+ if(!b.x) break;
+ printf("loaded: %f %f %f %f\n", b.x, b.y, b.w, b.h);
+ }
+ */
+ /*
+ int zz;
+ for(zz = 0; zz < train.X.cols; ++zz){
+ image im = float_to_image(net->w, net->h, 3, train.X.vals[zz]);
+ int k;
+ for(k = 0; k < l.max_boxes; ++k){
+ box b = float_to_box(train.y.vals[zz] + k*5, 1);
+ printf("%f %f %f %f\n", b.x, b.y, b.w, b.h);
+ draw_bbox(im, b, 1, 1,0,0);
+ }
+ show_image(im, "truth11");
+ cvWaitKey(0);
+ save_image(im, "truth11");
+ }
+ */
+
+ printf("Loaded: %lf seconds\n", what_time_is_it_now()-time);
+
+ time=what_time_is_it_now();
+ float loss = 0;
+#ifdef GPU
+ if(ngpus == 1){
+ loss = train_network(net, train);
+ } else {
+ loss = train_networks(nets, ngpus, train, 4);
+ }
+#else
+ loss = train_network(net, train);
+#endif
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ i = get_current_batch(net);
+ printf("%ld: %f, %f avg, %f rate, %lf seconds, %d images\n", get_current_batch(net), loss, avg_loss, get_current_rate(net), what_time_is_it_now()-time, i*imgs);
+ if(i%100==0){
+#ifdef GPU
+ if(ngpus != 1) sync_nets(nets, ngpus, 0);
+#endif
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ }
+ if(i%10000==0 || (i < 1000 && i%100 == 0)){
+#ifdef GPU
+ if(ngpus != 1) sync_nets(nets, ngpus, 0);
+#endif
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ free_data(train);
+ }
+#ifdef GPU
+ if(ngpus != 1) sync_nets(nets, ngpus, 0);
+#endif
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+
+static int get_coco_image_id(char *filename)
+{
+ char *p = strrchr(filename, '/');
+ char *c = strrchr(filename, '_');
+ if(c) p = c;
+ return atoi(p+1);
+}
+
+static void print_cocos(FILE *fp, char *image_path, detection *dets, int num_boxes, int classes, int w, int h)
+{
+ int i, j;
+ int image_id = get_coco_image_id(image_path);
+ for(i = 0; i < num_boxes; ++i){
+ float xmin = dets[i].bbox.x - dets[i].bbox.w/2.;
+ float xmax = dets[i].bbox.x + dets[i].bbox.w/2.;
+ float ymin = dets[i].bbox.y - dets[i].bbox.h/2.;
+ float ymax = dets[i].bbox.y + dets[i].bbox.h/2.;
+
+ if (xmin < 0) xmin = 0;
+ if (ymin < 0) ymin = 0;
+ if (xmax > w) xmax = w;
+ if (ymax > h) ymax = h;
+
+ float bx = xmin;
+ float by = ymin;
+ float bw = xmax - xmin;
+ float bh = ymax - ymin;
+
+ for(j = 0; j < classes; ++j){
+ if (dets[i].prob[j]) fprintf(fp, "{\"image_id\":%d, \"category_id\":%d, \"bbox\":[%f, %f, %f, %f], \"score\":%f},\n", image_id, coco_ids[j], bx, by, bw, bh, dets[i].prob[j]);
+ }
+ }
+}
+
+void print_detector_detections(FILE **fps, char *id, detection *dets, int total, int classes, int w, int h)
+{
+ int i, j;
+ for(i = 0; i < total; ++i){
+ float xmin = dets[i].bbox.x - dets[i].bbox.w/2. + 1;
+ float xmax = dets[i].bbox.x + dets[i].bbox.w/2. + 1;
+ float ymin = dets[i].bbox.y - dets[i].bbox.h/2. + 1;
+ float ymax = dets[i].bbox.y + dets[i].bbox.h/2. + 1;
+
+ if (xmin < 1) xmin = 1;
+ if (ymin < 1) ymin = 1;
+ if (xmax > w) xmax = w;
+ if (ymax > h) ymax = h;
+
+ for(j = 0; j < classes; ++j){
+ if (dets[i].prob[j]) fprintf(fps[j], "%s %f %f %f %f %f\n", id, dets[i].prob[j],
+ xmin, ymin, xmax, ymax);
+ }
+ }
+}
+
+void print_imagenet_detections(FILE *fp, int id, detection *dets, int total, int classes, int w, int h)
+{
+ int i, j;
+ for(i = 0; i < total; ++i){
+ float xmin = dets[i].bbox.x - dets[i].bbox.w/2.;
+ float xmax = dets[i].bbox.x + dets[i].bbox.w/2.;
+ float ymin = dets[i].bbox.y - dets[i].bbox.h/2.;
+ float ymax = dets[i].bbox.y + dets[i].bbox.h/2.;
+
+ if (xmin < 0) xmin = 0;
+ if (ymin < 0) ymin = 0;
+ if (xmax > w) xmax = w;
+ if (ymax > h) ymax = h;
+
+ for(j = 0; j < classes; ++j){
+ int class = j;
+ if (dets[i].prob[class]) fprintf(fp, "%d %d %f %f %f %f %f\n", id, j+1, dets[i].prob[class],
+ xmin, ymin, xmax, ymax);
+ }
+ }
+}
+
+void validate_detector_flip(char *datacfg, char *cfgfile, char *weightfile, char *outfile)
+{
+ int j;
+ list *options = read_data_cfg(datacfg);
+ char *valid_images = option_find_str(options, "valid", "data/train.list");
+ char *name_list = option_find_str(options, "names", "data/names.list");
+ char *prefix = option_find_str(options, "results", "results");
+ char **names = get_labels(name_list);
+ char *mapf = option_find_str(options, "map", 0);
+ int *map = 0;
+ if (mapf) map = read_map(mapf);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 2);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ list *plist = get_paths(valid_images);
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+ int classes = l.classes;
+
+ char buff[1024];
+ char *type = option_find_str(options, "eval", "voc");
+ FILE *fp = 0;
+ FILE **fps = 0;
+ int coco = 0;
+ int imagenet = 0;
+ if(0==strcmp(type, "coco")){
+ if(!outfile) outfile = "coco_results";
+ snprintf(buff, 1024, "%s/%s.json", prefix, outfile);
+ fp = fopen(buff, "w");
+ fprintf(fp, "[\n");
+ coco = 1;
+ } else if(0==strcmp(type, "imagenet")){
+ if(!outfile) outfile = "imagenet-detection";
+ snprintf(buff, 1024, "%s/%s.txt", prefix, outfile);
+ fp = fopen(buff, "w");
+ imagenet = 1;
+ classes = 200;
+ } else {
+ if(!outfile) outfile = "comp4_det_test_";
+ fps = calloc(classes, sizeof(FILE *));
+ for(j = 0; j < classes; ++j){
+ snprintf(buff, 1024, "%s/%s%s.txt", prefix, outfile, names[j]);
+ fps[j] = fopen(buff, "w");
+ }
+ }
+
+ int m = plist->size;
+ int i=0;
+ int t;
+
+ float thresh = .005;
+ float nms = .45;
+
+ int nthreads = 4;
+ image *val = calloc(nthreads, sizeof(image));
+ image *val_resized = calloc(nthreads, sizeof(image));
+ image *buf = calloc(nthreads, sizeof(image));
+ image *buf_resized = calloc(nthreads, sizeof(image));
+ pthread_t *thr = calloc(nthreads, sizeof(pthread_t));
+
+ image input = make_image(net->w, net->h, net->c*2);
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ //args.type = IMAGE_DATA;
+ args.type = LETTERBOX_DATA;
+
+ for(t = 0; t < nthreads; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ double start = what_time_is_it_now();
+ for(i = nthreads; i < m+nthreads; i += nthreads){
+ fprintf(stderr, "%d\n", i);
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ pthread_join(thr[t], 0);
+ val[t] = buf[t];
+ val_resized[t] = buf_resized[t];
+ }
+ for(t = 0; t < nthreads && i+t < m; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ char *path = paths[i+t-nthreads];
+ char *id = basecfg(path);
+ copy_cpu(net->w*net->h*net->c, val_resized[t].data, 1, input.data, 1);
+ flip_image(val_resized[t]);
+ copy_cpu(net->w*net->h*net->c, val_resized[t].data, 1, input.data + net->w*net->h*net->c, 1);
+
+ network_predict(net, input.data);
+ int w = val[t].w;
+ int h = val[t].h;
+ int num = 0;
+ detection *dets = get_network_boxes(net, w, h, thresh, .5, map, 0, &num);
+ if (nms) do_nms_sort(dets, num, classes, nms);
+ if (coco){
+ print_cocos(fp, path, dets, num, classes, w, h);
+ } else if (imagenet){
+ print_imagenet_detections(fp, i+t-nthreads+1, dets, num, classes, w, h);
+ } else {
+ print_detector_detections(fps, id, dets, num, classes, w, h);
+ }
+ free_detections(dets, num);
+ free(id);
+ free_image(val[t]);
+ free_image(val_resized[t]);
+ }
+ }
+ for(j = 0; j < classes; ++j){
+ if(fps) fclose(fps[j]);
+ }
+ if(coco){
+ fseek(fp, -2, SEEK_CUR);
+ fprintf(fp, "\n]\n");
+ fclose(fp);
+ }
+ fprintf(stderr, "Total Detection Time: %f Seconds\n", what_time_is_it_now() - start);
+}
+
+
+void validate_detector(char *datacfg, char *cfgfile, char *weightfile, char *outfile)
+{
+ int j;
+ list *options = read_data_cfg(datacfg);
+ char *valid_images = option_find_str(options, "valid", "data/train.list");
+ char *name_list = option_find_str(options, "names", "data/names.list");
+ char *prefix = option_find_str(options, "results", "results");
+ char **names = get_labels(name_list);
+ char *mapf = option_find_str(options, "map", 0);
+ int *map = 0;
+ if (mapf) map = read_map(mapf);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ list *plist = get_paths(valid_images);
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+ int classes = l.classes;
+
+ char buff[1024];
+ char *type = option_find_str(options, "eval", "voc");
+ FILE *fp = 0;
+ FILE **fps = 0;
+ int coco = 0;
+ int imagenet = 0;
+ if(0==strcmp(type, "coco")){
+ if(!outfile) outfile = "coco_results";
+ snprintf(buff, 1024, "%s/%s.json", prefix, outfile);
+ fp = fopen(buff, "w");
+ fprintf(fp, "[\n");
+ coco = 1;
+ } else if(0==strcmp(type, "imagenet")){
+ if(!outfile) outfile = "imagenet-detection";
+ snprintf(buff, 1024, "%s/%s.txt", prefix, outfile);
+ fp = fopen(buff, "w");
+ imagenet = 1;
+ classes = 200;
+ } else {
+ if(!outfile) outfile = "comp4_det_test_";
+ fps = calloc(classes, sizeof(FILE *));
+ for(j = 0; j < classes; ++j){
+ snprintf(buff, 1024, "%s/%s%s.txt", prefix, outfile, names[j]);
+ fps[j] = fopen(buff, "w");
+ }
+ }
+
+
+ int m = plist->size;
+ int i=0;
+ int t;
+
+ float thresh = .005;
+ float nms = .45;
+
+ int nthreads = 4;
+ image *val = calloc(nthreads, sizeof(image));
+ image *val_resized = calloc(nthreads, sizeof(image));
+ image *buf = calloc(nthreads, sizeof(image));
+ image *buf_resized = calloc(nthreads, sizeof(image));
+ pthread_t *thr = calloc(nthreads, sizeof(pthread_t));
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ //args.type = IMAGE_DATA;
+ args.type = LETTERBOX_DATA;
+
+ for(t = 0; t < nthreads; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ double start = what_time_is_it_now();
+ for(i = nthreads; i < m+nthreads; i += nthreads){
+ fprintf(stderr, "%d\n", i);
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ pthread_join(thr[t], 0);
+ val[t] = buf[t];
+ val_resized[t] = buf_resized[t];
+ }
+ for(t = 0; t < nthreads && i+t < m; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ char *path = paths[i+t-nthreads];
+ char *id = basecfg(path);
+ float *X = val_resized[t].data;
+ network_predict(net, X);
+ int w = val[t].w;
+ int h = val[t].h;
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, w, h, thresh, .5, map, 0, &nboxes);
+ if (nms) do_nms_sort(dets, nboxes, classes, nms);
+ if (coco){
+ print_cocos(fp, path, dets, nboxes, classes, w, h);
+ } else if (imagenet){
+ print_imagenet_detections(fp, i+t-nthreads+1, dets, nboxes, classes, w, h);
+ } else {
+ print_detector_detections(fps, id, dets, nboxes, classes, w, h);
+ }
+ free_detections(dets, nboxes);
+ free(id);
+ free_image(val[t]);
+ free_image(val_resized[t]);
+ }
+ }
+ for(j = 0; j < classes; ++j){
+ if(fps) fclose(fps[j]);
+ }
+ if(coco){
+ fseek(fp, -2, SEEK_CUR);
+ fprintf(fp, "\n]\n");
+ fclose(fp);
+ }
+ fprintf(stderr, "Total Detection Time: %f Seconds\n", what_time_is_it_now() - start);
+}
+
+void validate_detector_recall(char *cfgfile, char *weightfile)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ list *plist = get_paths("data/coco_val_5k.list");
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+
+ int j, k;
+
+ int m = plist->size;
+ int i=0;
+
+ float thresh = .001;
+ float iou_thresh = .5;
+ float nms = .4;
+
+ int total = 0;
+ int correct = 0;
+ int proposals = 0;
+ float avg_iou = 0;
+
+ for(i = 0; i < m; ++i){
+ char *path = paths[i];
+ image orig = load_image_color(path, 0, 0);
+ image sized = resize_image(orig, net->w, net->h);
+ char *id = basecfg(path);
+ network_predict(net, sized.data);
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, sized.w, sized.h, thresh, .5, 0, 1, &nboxes);
+ if (nms) do_nms_obj(dets, nboxes, 1, nms);
+
+ char labelpath[4096];
+ find_replace(path, "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+
+ int num_labels = 0;
+ box_label *truth = read_boxes(labelpath, &num_labels);
+ for(k = 0; k < nboxes; ++k){
+ if(dets[k].objectness > thresh){
+ ++proposals;
+ }
+ }
+ for (j = 0; j < num_labels; ++j) {
+ ++total;
+ box t = {truth[j].x, truth[j].y, truth[j].w, truth[j].h};
+ float best_iou = 0;
+ for(k = 0; k < l.w*l.h*l.n; ++k){
+ float iou = box_iou(dets[k].bbox, t);
+ if(dets[k].objectness > thresh && iou > best_iou){
+ best_iou = iou;
+ }
+ }
+ avg_iou += best_iou;
+ if(best_iou > iou_thresh){
+ ++correct;
+ }
+ }
+
+ fprintf(stderr, "%5d %5d %5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\n", i, correct, total, (float)proposals/(i+1), avg_iou*100/total, 100.*correct/total);
+ free(id);
+ free_image(orig);
+ free_image(sized);
+ }
+}
+
+
+void test_detector(char *datacfg, char *cfgfile, char *weightfile, char *filename, float thresh, float hier_thresh, char *outfile, int fullscreen)
+{
+ list *options = read_data_cfg(datacfg);
+ char *name_list = option_find_str(options, "names", "data/names.list");
+ char **names = get_labels(name_list);
+
+ image **alphabet = load_alphabet();
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+ double time;
+ char buff[256];
+ char *input = buff;
+ float nms=.45;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ } else {
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input,0,0);
+ image sized = letterbox_image(im, net->w, net->h);
+ //image sized = resize_image(im, net->w, net->h);
+ //image sized2 = resize_max(im, net->w);
+ //image sized = crop_image(sized2, -((net->w - sized2.w)/2), -((net->h - sized2.h)/2), net->w, net->h);
+ //resize_network(net, sized.w, sized.h);
+ layer l = net->layers[net->n-1];
+
+
+ float *X = sized.data;
+ time=what_time_is_it_now();
+ network_predict(net, X);
+ printf("%s: Predicted in %f seconds.\n", input, what_time_is_it_now()-time);
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, im.w, im.h, thresh, hier_thresh, 0, 1, &nboxes);
+ //printf("%d\n", nboxes);
+ //if (nms) do_nms_obj(boxes, probs, l.w*l.h*l.n, l.classes, nms);
+ if (nms) do_nms_sort(dets, nboxes, l.classes, nms);
+ draw_detections(im, dets, nboxes, thresh, names, alphabet, l.classes);
+ free_detections(dets, nboxes);
+ if(outfile){
+ save_image(im, outfile);
+ }
+ else{
+ save_image(im, "predictions");
+#ifdef OPENCV
+ make_window("predictions", 512, 512, 0);
+ show_image(im, "predictions", 0);
+#endif
+ }
+
+ free_image(im);
+ free_image(sized);
+ if (filename) break;
+ }
+}
+
+/*
+void censor_detector(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename, int class, float thresh, int skip)
+{
+#ifdef OPENCV
+ char *base = basecfg(cfgfile);
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+
+ srand(2222222);
+ CvCapture * cap;
+
+ int w = 1280;
+ int h = 720;
+
+ if(filename){
+ cap = cvCaptureFromFile(filename);
+ }else{
+ cap = cvCaptureFromCAM(cam_index);
+ }
+
+ if(w){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH, w);
+ }
+ if(h){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT, h);
+ }
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ cvNamedWindow(base, CV_WINDOW_NORMAL);
+ cvResizeWindow(base, 512, 512);
+ float fps = 0;
+ int i;
+ float nms = .45;
+
+ while(1){
+ image in = get_image_from_stream(cap);
+ //image in_s = resize_image(in, net->w, net->h);
+ image in_s = letterbox_image(in, net->w, net->h);
+ layer l = net->layers[net->n-1];
+
+ float *X = in_s.data;
+ network_predict(net, X);
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, in.w, in.h, thresh, 0, 0, 0, &nboxes);
+ //if (nms) do_nms_obj(boxes, probs, l.w*l.h*l.n, l.classes, nms);
+ if (nms) do_nms_sort(dets, nboxes, l.classes, nms);
+
+ for(i = 0; i < nboxes; ++i){
+ if(dets[i].prob[class] > thresh){
+ box b = dets[i].bbox;
+ int left = b.x-b.w/2.;
+ int top = b.y-b.h/2.;
+ censor_image(in, left, top, b.w, b.h);
+ }
+ }
+ show_image(in, base);
+ cvWaitKey(10);
+ free_detections(dets, nboxes);
+
+
+ free_image(in_s);
+ free_image(in);
+
+
+ float curr = 0;
+ fps = .9*fps + .1*curr;
+ for(i = 0; i < skip; ++i){
+ image in = get_image_from_stream(cap);
+ free_image(in);
+ }
+ }
+ #endif
+}
+
+void extract_detector(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename, int class, float thresh, int skip)
+{
+#ifdef OPENCV
+ char *base = basecfg(cfgfile);
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+
+ srand(2222222);
+ CvCapture * cap;
+
+ int w = 1280;
+ int h = 720;
+
+ if(filename){
+ cap = cvCaptureFromFile(filename);
+ }else{
+ cap = cvCaptureFromCAM(cam_index);
+ }
+
+ if(w){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH, w);
+ }
+ if(h){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT, h);
+ }
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ cvNamedWindow(base, CV_WINDOW_NORMAL);
+ cvResizeWindow(base, 512, 512);
+ float fps = 0;
+ int i;
+ int count = 0;
+ float nms = .45;
+
+ while(1){
+ image in = get_image_from_stream(cap);
+ //image in_s = resize_image(in, net->w, net->h);
+ image in_s = letterbox_image(in, net->w, net->h);
+ layer l = net->layers[net->n-1];
+
+ show_image(in, base);
+
+ int nboxes = 0;
+ float *X = in_s.data;
+ network_predict(net, X);
+ detection *dets = get_network_boxes(net, in.w, in.h, thresh, 0, 0, 1, &nboxes);
+ //if (nms) do_nms_obj(boxes, probs, l.w*l.h*l.n, l.classes, nms);
+ if (nms) do_nms_sort(dets, nboxes, l.classes, nms);
+
+ for(i = 0; i < nboxes; ++i){
+ if(dets[i].prob[class] > thresh){
+ box b = dets[i].bbox;
+ int size = b.w*in.w > b.h*in.h ? b.w*in.w : b.h*in.h;
+ int dx = b.x*in.w-size/2.;
+ int dy = b.y*in.h-size/2.;
+ image bim = crop_image(in, dx, dy, size, size);
+ char buff[2048];
+ sprintf(buff, "results/extract/%07d", count);
+ ++count;
+ save_image(bim, buff);
+ free_image(bim);
+ }
+ }
+ free_detections(dets, nboxes);
+
+
+ free_image(in_s);
+ free_image(in);
+
+
+ float curr = 0;
+ fps = .9*fps + .1*curr;
+ for(i = 0; i < skip; ++i){
+ image in = get_image_from_stream(cap);
+ free_image(in);
+ }
+ }
+ #endif
+}
+*/
+
+/*
+void network_detect(network *net, image im, float thresh, float hier_thresh, float nms, detection *dets)
+{
+ network_predict_image(net, im);
+ layer l = net->layers[net->n-1];
+ int nboxes = num_boxes(net);
+ fill_network_boxes(net, im.w, im.h, thresh, hier_thresh, 0, 0, dets);
+ if (nms) do_nms_sort(dets, nboxes, l.classes, nms);
+}
+*/
+
+void run_detector(int argc, char **argv)
+{
+ char *prefix = find_char_arg(argc, argv, "-prefix", 0);
+ float thresh = find_float_arg(argc, argv, "-thresh", .5);
+ float hier_thresh = find_float_arg(argc, argv, "-hier", .5);
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int frame_skip = find_int_arg(argc, argv, "-s", 0);
+ int avg = find_int_arg(argc, argv, "-avg", 3);
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ char *outfile = find_char_arg(argc, argv, "-out", 0);
+ int *gpus = 0;
+ int gpu = 0;
+ int ngpus = 0;
+ if(gpu_list){
+ printf("%s\n", gpu_list);
+ int len = strlen(gpu_list);
+ ngpus = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (gpu_list[i] == ',') ++ngpus;
+ }
+ gpus = calloc(ngpus, sizeof(int));
+ for(i = 0; i < ngpus; ++i){
+ gpus[i] = atoi(gpu_list);
+ gpu_list = strchr(gpu_list, ',')+1;
+ }
+ } else {
+ gpu = gpu_index;
+ gpus = &gpu;
+ ngpus = 1;
+ }
+
+ int clear = find_arg(argc, argv, "-clear");
+ int fullscreen = find_arg(argc, argv, "-fullscreen");
+ int width = find_int_arg(argc, argv, "-w", 0);
+ int height = find_int_arg(argc, argv, "-h", 0);
+ int fps = find_int_arg(argc, argv, "-fps", 0);
+ //int class = find_int_arg(argc, argv, "-class", 0);
+
+ char *datacfg = argv[3];
+ char *cfg = argv[4];
+ char *weights = (argc > 5) ? argv[5] : 0;
+ char *filename = (argc > 6) ? argv[6]: 0;
+ if(0==strcmp(argv[2], "test")) test_detector(datacfg, cfg, weights, filename, thresh, hier_thresh, outfile, fullscreen);
+ else if(0==strcmp(argv[2], "train")) train_detector(datacfg, cfg, weights, gpus, ngpus, clear);
+ else if(0==strcmp(argv[2], "valid")) validate_detector(datacfg, cfg, weights, outfile);
+ else if(0==strcmp(argv[2], "valid2")) validate_detector_flip(datacfg, cfg, weights, outfile);
+ else if(0==strcmp(argv[2], "recall")) validate_detector_recall(cfg, weights);
+ else if(0==strcmp(argv[2], "demo")) {
+ list *options = read_data_cfg(datacfg);
+ int classes = option_find_int(options, "classes", 20);
+ char *name_list = option_find_str(options, "names", "data/names.list");
+ char **names = get_labels(name_list);
+ demo(cfg, weights, thresh, cam_index, filename, names, classes, frame_skip, prefix, avg, hier_thresh, width, height, fps, fullscreen);
+ }
+ //else if(0==strcmp(argv[2], "extract")) extract_detector(datacfg, cfg, weights, cam_index, filename, class, thresh, frame_skip);
+ //else if(0==strcmp(argv[2], "censor")) censor_detector(datacfg, cfg, weights, cam_index, filename, class, thresh, frame_skip);
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector.py"
new file mode 100644
index 00000000..40bb365e
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/detector.py"
@@ -0,0 +1,27 @@
+# Stupid python path shit.
+# Instead just add darknet.py to somewhere in your python path
+# OK actually that might not be a great idea, idk, work in progress
+# Use at your own risk. or don't, i don't care
+
+import sys, os
+sys.path.append(os.path.join(os.getcwd(),'python/'))
+
+import darknet as dn
+import pdb
+
+dn.set_gpu(0)
+net = dn.load_net("cfg/yolo-thor.cfg", "/home/pjreddie/backup/yolo-thor_final.weights", 0)
+meta = dn.load_meta("cfg/thor.data")
+r = dn.detect(net, meta, "data/bedroom.jpg")
+print r
+
+# And then down here you could detect a lot more images like:
+r = dn.detect(net, meta, "data/eagle.jpg")
+print r
+r = dn.detect(net, meta, "data/giraffe.jpg")
+print r
+r = dn.detect(net, meta, "data/horses.jpg")
+print r
+r = dn.detect(net, meta, "data/person.jpg")
+print r
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/dice.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/dice.c"
new file mode 100644
index 00000000..f56d76c0
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/dice.c"
@@ -0,0 +1,116 @@
+#include "darknet.h"
+
+char *dice_labels[] = {"face1","face2","face3","face4","face5","face6"};
+
+void train_dice(char *cfgfile, char *weightfile)
+{
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ char *backup_directory = "/home/pjreddie/backup/";
+ printf("%s\n", base);
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
+ int imgs = 1024;
+ int i = *net.seen/imgs;
+ char **labels = dice_labels;
+ list *plist = get_paths("data/dice/dice.train.list");
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ clock_t time;
+ while(1){
+ ++i;
+ time=clock();
+ data train = load_data_old(paths, imgs, plist->size, labels, 6, net.w, net.h);
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ time=clock();
+ float loss = train_network(net, train);
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%d: %f, %f avg, %lf seconds, %ld images\n", i, loss, avg_loss, sec(clock()-time), *net.seen);
+ free_data(train);
+ if((i % 100) == 0) net.learning_rate *= .1;
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, i);
+ save_weights(net, buff);
+ }
+ }
+}
+
+void validate_dice(char *filename, char *weightfile)
+{
+ network net = parse_network_cfg(filename);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ srand(time(0));
+
+ char **labels = dice_labels;
+ list *plist = get_paths("data/dice/dice.val.list");
+
+ char **paths = (char **)list_to_array(plist);
+ int m = plist->size;
+ free_list(plist);
+
+ data val = load_data_old(paths, m, 0, labels, 6, net.w, net.h);
+ float *acc = network_accuracies(net, val, 2);
+ printf("Validation Accuracy: %f, %d images\n", acc[0], m);
+ free_data(val);
+}
+
+void test_dice(char *cfgfile, char *weightfile, char *filename)
+{
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ set_batch_network(&net, 1);
+ srand(2222222);
+ int i = 0;
+ char **names = dice_labels;
+ char buff[256];
+ char *input = buff;
+ int indexes[6];
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, net.w, net.h);
+ float *X = im.data;
+ float *predictions = network_predict(net, X);
+ top_predictions(net, 6, indexes);
+ for(i = 0; i < 6; ++i){
+ int index = indexes[i];
+ printf("%s: %f\n", names[index], predictions[index]);
+ }
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+void run_dice(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5]: 0;
+ if(0==strcmp(argv[2], "test")) test_dice(cfg, weights, filename);
+ else if(0==strcmp(argv[2], "train")) train_dice(cfg, weights);
+ else if(0==strcmp(argv[2], "valid")) validate_dice(cfg, weights);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/go.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/go.c"
new file mode 100644
index 00000000..688579dc
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/go.c"
@@ -0,0 +1,1370 @@
+#include "darknet.h"
+
+#include
+#include
+#include
+
+int inverted = 1;
+int noi = 1;
+static const int nind = 10;
+int legal_go(float *b, float *ko, int p, int r, int c);
+int check_ko(float *x, float *ko);
+
+typedef struct {
+ char **data;
+ int n;
+} moves;
+
+char *fgetgo(FILE *fp)
+{
+ if(feof(fp)) return 0;
+ size_t size = 96;
+ char *line = malloc(size*sizeof(char));
+ if(size != fread(line, sizeof(char), size, fp)){
+ free(line);
+ return 0;
+ }
+
+ return line;
+}
+
+moves load_go_moves(char *filename)
+{
+ moves m;
+ m.n = 128;
+ m.data = calloc(128, sizeof(char*));
+ FILE *fp = fopen(filename, "rb");
+ int count = 0;
+ char *line = 0;
+ while ((line = fgetgo(fp))) {
+ if (count >= m.n) {
+ m.n *= 2;
+ m.data = realloc(m.data, m.n*sizeof(char*));
+ }
+ m.data[count] = line;
+ ++count;
+ }
+ printf("%d\n", count);
+ m.n = count;
+ m.data = realloc(m.data, count*sizeof(char*));
+ return m;
+}
+
+void string_to_board(char *s, float *board)
+{
+ int i, j;
+ memset(board, 0, 2*19*19*sizeof(float));
+ int count = 0;
+ for(i = 0; i < 91; ++i){
+ char c = s[i];
+ for(j = 0; j < 4; ++j){
+ int me = (c >> (2*j)) & 1;
+ int you = (c >> (2*j + 1)) & 1;
+ if (me) board[count] = 1;
+ else if (you) board[count + 19*19] = 1;
+ ++count;
+ if(count >= 19*19) break;
+ }
+ }
+}
+
+void board_to_string(char *s, float *board)
+{
+ int i, j;
+ memset(s, 0, (19*19/4+1)*sizeof(char));
+ int count = 0;
+ for(i = 0; i < 91; ++i){
+ for(j = 0; j < 4; ++j){
+ int me = (board[count] == 1);
+ int you = (board[count + 19*19] == 1);
+ if (me) s[i] = s[i] | (1<<(2*j));
+ if (you) s[i] = s[i] | (1<<(2*j + 1));
+ ++count;
+ if(count >= 19*19) break;
+ }
+ }
+}
+
+static int occupied(float *b, int i)
+{
+ if (b[i]) return 1;
+ if (b[i+19*19]) return -1;
+ return 0;
+}
+
+data random_go_moves(moves m, int n)
+{
+ data d = {0};
+ d.X = make_matrix(n, 19*19*3);
+ d.y = make_matrix(n, 19*19+2);
+ int i, j;
+ for(i = 0; i < n; ++i){
+ float *board = d.X.vals[i];
+ float *label = d.y.vals[i];
+ char *b = m.data[rand()%m.n];
+ int player = b[0] - '0';
+ int result = b[1] - '0';
+ int row = b[2];
+ int col = b[3];
+ string_to_board(b+4, board);
+ if(player > 0) for(j = 0; j < 19*19; ++j) board[19*19*2 + j] = 1;
+ label[19*19+1] = (player==result);
+ if(row >= 19 || col >= 19){
+ label[19*19] = 1;
+ } else {
+ label[col + 19*row] = 1;
+ if(occupied(board, col + 19*row)) printf("hey\n");
+ }
+
+ int flip = rand()%2;
+ int rotate = rand()%4;
+ image in = float_to_image(19, 19, 3, board);
+ image out = float_to_image(19, 19, 1, label);
+ if(flip){
+ flip_image(in);
+ flip_image(out);
+ }
+ rotate_image_cw(in, rotate);
+ rotate_image_cw(out, rotate);
+ }
+ return d;
+}
+
+
+void train_go(char *cfgfile, char *weightfile, char *filename, int *gpus, int ngpus, int clear)
+{
+ int i;
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ printf("%d\n", ngpus);
+ network **nets = calloc(ngpus, sizeof(network*));
+
+ srand(time(0));
+ int seed = rand();
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ network *net = nets[0];
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+
+ char *backup_directory = "/home/pjreddie/backup/";
+
+ char buff[256];
+ moves m = load_go_moves(filename);
+ //moves m = load_go_moves("games.txt");
+
+ int N = m.n;
+ printf("Moves: %d\n", N);
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ double time=what_time_is_it_now();
+
+ data train = random_go_moves(m, net->batch*net->subdivisions*ngpus);
+ printf("Loaded: %lf seconds\n", what_time_is_it_now() - time);
+ time=what_time_is_it_now();
+
+ float loss = 0;
+#ifdef GPU
+ if(ngpus == 1){
+ loss = train_network(net, train);
+ } else {
+ loss = train_networks(nets, ngpus, train, 10);
+ }
+#else
+ loss = train_network(net, train);
+#endif
+ free_data(train);
+
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.95 + loss*.05;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), what_time_is_it_now()-time, *net->seen);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory,base, epoch);
+ save_weights(net, buff);
+
+ }
+ if(get_current_batch(net)%1000 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%10000 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%ld.backup",backup_directory,base,get_current_batch(net));
+ save_weights(net, buff);
+ }
+ }
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ free_network(net);
+ free(base);
+}
+
+static void propagate_liberty(float *board, int *lib, int *visited, int row, int col, int side)
+{
+ if (row < 0 || row > 18 || col < 0 || col > 18) return;
+ int index = row*19 + col;
+ if (occupied(board,index) != side) return;
+ if (visited[index]) return;
+ visited[index] = 1;
+ lib[index] += 1;
+ propagate_liberty(board, lib, visited, row+1, col, side);
+ propagate_liberty(board, lib, visited, row-1, col, side);
+ propagate_liberty(board, lib, visited, row, col+1, side);
+ propagate_liberty(board, lib, visited, row, col-1, side);
+}
+
+
+static int *calculate_liberties(float *board)
+{
+ int *lib = calloc(19*19, sizeof(int));
+ int visited[19*19];
+ int i, j;
+ for(j = 0; j < 19; ++j){
+ for(i = 0; i < 19; ++i){
+ memset(visited, 0, 19*19*sizeof(int));
+ int index = j*19 + i;
+ if(!occupied(board,index)){
+ if ((i > 0) && occupied(board,index - 1)) propagate_liberty(board, lib, visited, j, i-1, occupied(board,index-1));
+ if ((i < 18) && occupied(board,index + 1)) propagate_liberty(board, lib, visited, j, i+1, occupied(board,index+1));
+ if ((j > 0) && occupied(board,index - 19)) propagate_liberty(board, lib, visited, j-1, i, occupied(board,index-19));
+ if ((j < 18) && occupied(board,index + 19)) propagate_liberty(board, lib, visited, j+1, i, occupied(board,index+19));
+ }
+ }
+ }
+ return lib;
+}
+
+void print_board(FILE *stream, float *board, int player, int *indexes)
+{
+ int i,j,n;
+ fprintf(stream, " ");
+ for(i = 0; i < 19; ++i){
+ fprintf(stream, "%c ", 'A' + i + 1*(i > 7 && noi));
+ }
+ fprintf(stream, "\n");
+ for(j = 0; j < 19; ++j){
+ fprintf(stream, "%2d", (inverted) ? 19-j : j+1);
+ for(i = 0; i < 19; ++i){
+ int index = j*19 + i;
+ if(indexes){
+ int found = 0;
+ for(n = 0; n < nind; ++n){
+ if(index == indexes[n]){
+ found = 1;
+ /*
+ if(n == 0) fprintf(stream, "\uff11");
+ else if(n == 1) fprintf(stream, "\uff12");
+ else if(n == 2) fprintf(stream, "\uff13");
+ else if(n == 3) fprintf(stream, "\uff14");
+ else if(n == 4) fprintf(stream, "\uff15");
+ */
+ fprintf(stream, " %d", n+1);
+ }
+ }
+ if(found) continue;
+ }
+ //if(board[index]*-swap > 0) fprintf(stream, "\u25C9 ");
+ //else if(board[index]*-swap < 0) fprintf(stream, "\u25EF ");
+ if (occupied(board, index) == player) fprintf(stream, " X");
+ else if (occupied(board, index) ==-player) fprintf(stream, " O");
+ else fprintf(stream, " .");
+ }
+ fprintf(stream, "\n");
+ }
+}
+
+void flip_board(float *board)
+{
+ int i;
+ for(i = 0; i < 19*19; ++i){
+ float swap = board[i];
+ board[i] = board[i+19*19];
+ board[i+19*19] = swap;
+ board[i+19*19*2] = 1-board[i+19*19*2];
+ }
+}
+
+float predict_move2(network *net, float *board, float *move, int multi)
+{
+ float *output = network_predict(net, board);
+ copy_cpu(19*19+1, output, 1, move, 1);
+ float result = output[19*19 + 1];
+ int i;
+ if(multi){
+ image bim = float_to_image(19, 19, 3, board);
+ for(i = 1; i < 8; ++i){
+ rotate_image_cw(bim, i);
+ if(i >= 4) flip_image(bim);
+
+ float *output = network_predict(net, board);
+ image oim = float_to_image(19, 19, 1, output);
+ result += output[19*19 + 1];
+
+ if(i >= 4) flip_image(oim);
+ rotate_image_cw(oim, -i);
+
+ axpy_cpu(19*19+1, 1, output, 1, move, 1);
+
+ if(i >= 4) flip_image(bim);
+ rotate_image_cw(bim, -i);
+ }
+ result = result/8;
+ scal_cpu(19*19+1, 1./8., move, 1);
+ }
+ for(i = 0; i < 19*19; ++i){
+ if(board[i] || board[i+19*19]) move[i] = 0;
+ }
+ return result;
+}
+
+static void remove_connected(float *b, int *lib, int p, int r, int c)
+{
+ if (r < 0 || r >= 19 || c < 0 || c >= 19) return;
+ if (occupied(b, r*19 + c) != p) return;
+ if (lib[r*19 + c] != 1) return;
+ b[r*19 + c] = 0;
+ b[19*19 + r*19 + c] = 0;
+ remove_connected(b, lib, p, r+1, c);
+ remove_connected(b, lib, p, r-1, c);
+ remove_connected(b, lib, p, r, c+1);
+ remove_connected(b, lib, p, r, c-1);
+}
+
+
+void move_go(float *b, int p, int r, int c)
+{
+ int *l = calculate_liberties(b);
+ if(p > 0) b[r*19 + c] = 1;
+ else b[19*19 + r*19 + c] = 1;
+ remove_connected(b, l, -p, r+1, c);
+ remove_connected(b, l, -p, r-1, c);
+ remove_connected(b, l, -p, r, c+1);
+ remove_connected(b, l, -p, r, c-1);
+ free(l);
+}
+
+int compare_board(float *a, float *b)
+{
+ if(memcmp(a, b, 19*19*3*sizeof(float)) == 0) return 1;
+ return 0;
+}
+
+typedef struct mcts_tree{
+ float *board;
+ struct mcts_tree **children;
+ float *prior;
+ int *visit_count;
+ float *value;
+ float *mean;
+ float *prob;
+ int total_count;
+ float result;
+ int done;
+ int pass;
+} mcts_tree;
+
+void free_mcts(mcts_tree *root)
+{
+ if(!root) return;
+ int i;
+ free(root->board);
+ for(i = 0; i < 19*19+1; ++i){
+ if(root->children[i]) free_mcts(root->children[i]);
+ }
+ free(root->children);
+ free(root->prior);
+ free(root->visit_count);
+ free(root->value);
+ free(root->mean);
+ free(root->prob);
+ free(root);
+}
+
+float *network_predict_rotations(network *net, float *next)
+{
+ int n = net->batch;
+ float *in = calloc(19*19*3*n, sizeof(float));
+ image im = float_to_image(19, 19, 3, next);
+ int i,j;
+ int *inds = random_index_order(0, 8);
+ for(j = 0; j < n; ++j){
+ i = inds[j];
+ rotate_image_cw(im, i);
+ if(i >= 4) flip_image(im);
+ memcpy(in + 19*19*3*j, im.data, 19*19*3*sizeof(float));
+ if(i >= 4) flip_image(im);
+ rotate_image_cw(im, -i);
+ }
+ float *pred = network_predict(net, in);
+ for(j = 0; j < n; ++j){
+ i = inds[j];
+ image im = float_to_image(19, 19, 1, pred + j*(19*19 + 2));
+ if(i >= 4) flip_image(im);
+ rotate_image_cw(im, -i);
+ if(j > 0){
+ axpy_cpu(19*19+2, 1, im.data, 1, pred, 1);
+ }
+ }
+ free(in);
+ free(inds);
+ scal_cpu(19*19+2, 1./n, pred, 1);
+ return pred;
+}
+
+mcts_tree *expand(float *next, float *ko, network *net)
+{
+ mcts_tree *root = calloc(1, sizeof(mcts_tree));
+ root->board = next;
+ root->children = calloc(19*19+1, sizeof(mcts_tree*));
+ root->prior = calloc(19*19 + 1, sizeof(float));
+ root->prob = calloc(19*19 + 1, sizeof(float));
+ root->mean = calloc(19*19 + 1, sizeof(float));
+ root->value = calloc(19*19 + 1, sizeof(float));
+ root->visit_count = calloc(19*19 + 1, sizeof(int));
+ root->total_count = 1;
+ int i;
+ float *pred = network_predict_rotations(net, next);
+ copy_cpu(19*19+1, pred, 1, root->prior, 1);
+ float val = 2*pred[19*19 + 1] - 1;
+ root->result = val;
+ for(i = 0; i < 19*19+1; ++i) {
+ root->visit_count[i] = 0;
+ root->value[i] = 0;
+ root->mean[i] = val;
+ if(i < 19*19 && occupied(next, i)){
+ root->value[i] = -1;
+ root->mean[i] = -1;
+ root->prior[i] = 0;
+ }
+ }
+ //print_board(stderr, next, flip?-1:1, 0);
+ return root;
+}
+
+float *copy_board(float *board)
+{
+ float *next = calloc(19*19*3, sizeof(float));
+ copy_cpu(19*19*3, board, 1, next, 1);
+ return next;
+}
+
+float select_mcts(mcts_tree *root, network *net, float *prev, float cpuct)
+{
+ if(root->done) return -root->result;
+ int i;
+ float max = -1000;
+ int max_i = 0;
+ for(i = 0; i < 19*19+1; ++i){
+ root->prob[i] = root->mean[i] + cpuct*root->prior[i] * sqrt(root->total_count) / (1. + root->visit_count[i]);
+ if(root->prob[i] > max){
+ max = root->prob[i];
+ max_i = i;
+ }
+ }
+ float val;
+ i = max_i;
+ root->visit_count[i]++;
+ root->total_count++;
+ if (root->children[i]) {
+ val = select_mcts(root->children[i], net, root->board, cpuct);
+ } else {
+ if(max_i < 19*19 && !legal_go(root->board, prev, 1, max_i/19, max_i%19)) {
+ root->mean[i] = -1;
+ root->value[i] = -1;
+ root->prior[i] = 0;
+ --root->total_count;
+ return select_mcts(root, net, prev, cpuct);
+ //printf("Detected ko\n");
+ //getchar();
+ } else {
+ float *next = copy_board(root->board);
+ if (max_i < 19*19) {
+ move_go(next, 1, max_i / 19, max_i % 19);
+ }
+ flip_board(next);
+ root->children[i] = expand(next, root->board, net);
+ val = -root->children[i]->result;
+ if(max_i == 19*19){
+ root->children[i]->pass = 1;
+ if (root->pass){
+ root->children[i]->done = 1;
+ }
+ }
+ }
+ }
+ root->value[i] += val;
+ root->mean[i] = root->value[i]/root->visit_count[i];
+ return -val;
+}
+
+mcts_tree *run_mcts(mcts_tree *tree, network *net, float *board, float *ko, int player, int n, float cpuct, float secs)
+{
+ int i;
+ double t = what_time_is_it_now();
+ if(player < 0) flip_board(board);
+ if(!tree) tree = expand(copy_board(board), ko, net);
+ assert(compare_board(tree->board, board));
+ for(i = 0; i < n; ++i){
+ if (secs > 0 && (what_time_is_it_now() - t) > secs) break;
+ int max_i = max_int_index(tree->visit_count, 19*19+1);
+ if (tree->visit_count[max_i] >= n) break;
+ select_mcts(tree, net, ko, cpuct);
+ }
+ if(player < 0) flip_board(board);
+ //fprintf(stderr, "%f Seconds\n", what_time_is_it_now() - t);
+ return tree;
+}
+
+mcts_tree *move_mcts(mcts_tree *tree, int index)
+{
+ if(index < 0 || index > 19*19 || !tree || !tree->children[index]) {
+ free_mcts(tree);
+ tree = 0;
+ } else {
+ mcts_tree *swap = tree;
+ tree = tree->children[index];
+ swap->children[index] = 0;
+ free_mcts(swap);
+ }
+ return tree;
+}
+
+typedef struct {
+ float value;
+ float mcts;
+ int row;
+ int col;
+} move;
+
+move pick_move(mcts_tree *tree, float temp, int player)
+{
+ int i;
+ float probs[19*19+1] = {0};
+ move m = {0};
+ double sum = 0;
+ /*
+ for(i = 0; i < 19*19+1; ++i){
+ probs[i] = tree->visit_count[i];
+ }
+ */
+ //softmax(probs, 19*19+1, temp, 1, probs);
+ for(i = 0; i < 19*19+1; ++i){
+ sum += pow(tree->visit_count[i], 1./temp);
+ }
+ for(i = 0; i < 19*19+1; ++i){
+ probs[i] = pow(tree->visit_count[i], 1./temp) / sum;
+ }
+
+ int index = sample_array(probs, 19*19+1);
+ m.row = index / 19;
+ m.col = index % 19;
+ m.value = (tree->result+1.)/2.;
+ m.mcts = (tree->mean[index]+1.)/2.;
+
+ int indexes[nind];
+ top_k(probs, 19*19+1, nind, indexes);
+ print_board(stderr, tree->board, player, indexes);
+
+ fprintf(stderr, "%d %d, Result: %f, Prior: %f, Prob: %f, Mean Value: %f, Child Result: %f, Visited: %d\n", index/19, index%19, tree->result, tree->prior[index], probs[index], tree->mean[index], (tree->children[index])?tree->children[index]->result:0, tree->visit_count[index]);
+ int ind = max_index(probs, 19*19+1);
+ fprintf(stderr, "%d %d, Result: %f, Prior: %f, Prob: %f, Mean Value: %f, Child Result: %f, Visited: %d\n", ind/19, ind%19, tree->result, tree->prior[ind], probs[ind], tree->mean[ind], (tree->children[ind])?tree->children[ind]->result:0, tree->visit_count[ind]);
+ ind = max_index(tree->prior, 19*19+1);
+ fprintf(stderr, "%d %d, Result: %f, Prior: %f, Prob: %f, Mean Value: %f, Child Result: %f, Visited: %d\n", ind/19, ind%19, tree->result, tree->prior[ind], probs[ind], tree->mean[ind], (tree->children[ind])?tree->children[ind]->result:0, tree->visit_count[ind]);
+ return m;
+}
+
+/*
+ float predict_move(network *net, float *board, float *move, int multi, float *ko, float temp)
+ {
+
+ int i;
+
+ int max_v = 0;
+ int max_i = 0;
+ for(i = 0; i < 19*19+1; ++i){
+ if(root->visit_count[i] > max_v){
+ max_v = root->visit_count[i];
+ max_i = i;
+ }
+ }
+ fprintf(stderr, "%f Seconds\n", what_time_is_it_now() - t);
+ int ind = max_index(root->mean, 19*19+1);
+ fprintf(stderr, "%d %d, Result: %f, Prior: %f, Prob: %f, Mean Value: %f, Child Result: %f, Visited: %d\n", max_i/19, max_i%19, root->result, root->prior[max_i], root->prob[max_i], root->mean[max_i], (root->children[max_i])?root->children[max_i]->result:0, root->visit_count[max_i]);
+ fprintf(stderr, "%d %d, Result: %f, Prior: %f, Prob: %f, Mean Value: %f, Child Result: %f, Visited: %d\n", ind/19, ind%19, root->result, root->prior[ind], root->prob[ind], root->mean[ind], (root->children[ind])?root->children[ind]->result:0, root->visit_count[ind]);
+ ind = max_index(root->prior, 19*19+1);
+ fprintf(stderr, "%d %d, Result: %f, Prior: %f, Prob: %f, Mean Value: %f, Child Result: %f, Visited: %d\n", ind/19, ind%19, root->result, root->prior[ind], root->prob[ind], root->mean[ind], (root->children[ind])?root->children[ind]->result:0, root->visit_count[ind]);
+ if(root->result < -.9 && root->mean[max_i] < -.9) return -1000.f;
+
+ float val = root->result;
+ free_mcts(root);
+ return val;
+ }
+ */
+
+static int makes_safe_go(float *b, int *lib, int p, int r, int c){
+ if (r < 0 || r >= 19 || c < 0 || c >= 19) return 0;
+ if (occupied(b,r*19 + c) == -p){
+ if (lib[r*19 + c] > 1) return 0;
+ else return 1;
+ }
+ if (!occupied(b,r*19 + c)) return 1;
+ if (lib[r*19 + c] > 1) return 1;
+ return 0;
+}
+
+int suicide_go(float *b, int p, int r, int c)
+{
+ int *l = calculate_liberties(b);
+ int safe = 0;
+ safe = safe || makes_safe_go(b, l, p, r+1, c);
+ safe = safe || makes_safe_go(b, l, p, r-1, c);
+ safe = safe || makes_safe_go(b, l, p, r, c+1);
+ safe = safe || makes_safe_go(b, l, p, r, c-1);
+ free(l);
+ return !safe;
+}
+
+int check_ko(float *x, float *ko)
+{
+ if(!ko) return 0;
+ float curr[19*19*3];
+ copy_cpu(19*19*3, x, 1, curr, 1);
+ if(curr[19*19*2] != ko[19*19*2]) flip_board(curr);
+ if(compare_board(curr, ko)) return 1;
+ return 0;
+}
+
+int legal_go(float *b, float *ko, int p, int r, int c)
+{
+ if (occupied(b, r*19+c)) return 0;
+ float curr[19*19*3];
+ copy_cpu(19*19*3, b, 1, curr, 1);
+ move_go(curr, p, r, c);
+ if(check_ko(curr, ko)) return 0;
+ if(suicide_go(b, p, r, c)) return 0;
+ return 1;
+}
+
+/*
+ move generate_move(mcts_tree *root, network *net, int player, float *board, int multi, float temp, float *ko, int print)
+ {
+ move m = {0};
+//root = run_mcts(tree, network *net, float *board, float *ko, int n, float cpuct)
+int i, j;
+int empty = 1;
+for(i = 0; i < 19*19; ++i){
+if (occupied(board, i)) {
+empty = 0;
+break;
+}
+}
+if(empty) {
+m.value = .5;
+m.mcts = .5;
+m.row = 3;
+m.col = 15;
+return m;
+}
+
+float move[362];
+if (player < 0) flip_board(board);
+float result = predict_move(net, board, move, multi, ko, temp);
+if (player < 0) flip_board(board);
+if(result == -1000.f) return -2;
+
+for(i = 0; i < 19; ++i){
+for(j = 0; j < 19; ++j){
+if (!legal_go(board, ko, player, i, j)) move[i*19 + j] = 0;
+}
+}
+
+int indexes[nind];
+top_k(move, 19*19+1, nind, indexes);
+
+
+int max = max_index(move, 19*19+1);
+int row = max / 19;
+int col = max % 19;
+int index = sample_array(move, 19*19+1);
+
+if(print){
+top_k(move, 19*19+1, nind, indexes);
+for(i = 0; i < nind; ++i){
+if (!move[indexes[i]]) indexes[i] = -1;
+}
+print_board(stderr, board, 1, indexes);
+fprintf(stderr, "%s To Move\n", player > 0 ? "X" : "O");
+fprintf(stderr, "%.2f%% Win Chance\n", (result+1)/2*100);
+for(i = 0; i < nind; ++i){
+int index = indexes[i];
+int row = index / 19;
+int col = index % 19;
+if(row == 19){
+fprintf(stderr, "%d: Pass, %.2f%%\n", i+1, move[index]*100);
+} else {
+fprintf(stderr, "%d: %c %d, %.2f%%\n", i+1, col + 'A' + 1*(col > 7 && noi), (inverted)?19 - row : row+1, move[index]*100);
+}
+}
+}
+if (row == 19) return -1;
+
+if (suicide_go(board, player, row, col)){
+return -1;
+}
+
+if (suicide_go(board, player, index/19, index%19)){
+index = max;
+}
+if (index == 19*19) return -1;
+return index;
+}
+*/
+
+void valid_go(char *cfgfile, char *weightfile, int multi, char *filename)
+{
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+
+ float *board = calloc(19*19*3, sizeof(float));
+ float *move = calloc(19*19+2, sizeof(float));
+ // moves m = load_go_moves("/home/pjreddie/backup/go.test");
+ moves m = load_go_moves(filename);
+
+ int N = m.n;
+ int i,j;
+ int correct = 0;
+ for (i = 0; i 0) for(j = 0; j < 19*19; ++j) board[19*19*2 + j] = 1;
+ predict_move2(net, board, move, multi);
+ int index = max_index(move, 19*19+1);
+ if(index == truth) ++correct;
+ printf("%d Accuracy %f\n", i, (float) correct/(i+1));
+ }
+}
+
+int print_game(float *board, FILE *fp)
+{
+ int i, j;
+ int count = 3;
+ fprintf(fp, "komi 6.5\n");
+ fprintf(fp, "boardsize 19\n");
+ fprintf(fp, "clear_board\n");
+ for(j = 0; j < 19; ++j){
+ for(i = 0; i < 19; ++i){
+ if(occupied(board,j*19 + i) == 1) fprintf(fp, "play black %c%d\n", 'A'+i+(i>=8), 19-j);
+ if(occupied(board,j*19 + i) == -1) fprintf(fp, "play white %c%d\n", 'A'+i+(i>=8), 19-j);
+ if(occupied(board,j*19 + i)) ++count;
+ }
+ }
+ return count;
+}
+
+
+int stdin_ready()
+{
+ fd_set readfds;
+ FD_ZERO(&readfds);
+
+ struct timeval timeout;
+ timeout.tv_sec = 0;
+ timeout.tv_usec = 0;
+ FD_SET(STDIN_FILENO, &readfds);
+
+ if (select(1, &readfds, NULL, NULL, &timeout)){
+ return 1;
+ }
+ return 0;
+}
+
+mcts_tree *ponder(mcts_tree *tree, network *net, float *b, float *ko, int player, float cpuct)
+{
+ double t = what_time_is_it_now();
+ int count = 0;
+ if (tree) count = tree->total_count;
+ while(!stdin_ready()){
+ if (what_time_is_it_now() - t > 120) break;
+ tree = run_mcts(tree, net, b, ko, player, 100000, cpuct, .1);
+ }
+ fprintf(stderr, "Pondered %d moves...\n", tree->total_count - count);
+ return tree;
+}
+
+void engine_go(char *filename, char *weightfile, int mcts_iters, float secs, float temp, float cpuct, int anon, int resign)
+{
+ mcts_tree *root = 0;
+ network *net = load_network(filename, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+ float *board = calloc(19*19*3, sizeof(float));
+ flip_board(board);
+ float *one = calloc(19*19*3, sizeof(float));
+ float *two = calloc(19*19*3, sizeof(float));
+ int ponder_player = 0;
+ int passed = 0;
+ int move_num = 0;
+ int main_time = 0;
+ int byo_yomi_time = 0;
+ int byo_yomi_stones = 0;
+ int black_time_left = 0;
+ int black_stones_left = 0;
+ int white_time_left = 0;
+ int white_stones_left = 0;
+ float orig_time = secs;
+ int old_ponder = 0;
+ while(1){
+ if(ponder_player){
+ root = ponder(root, net, board, two, ponder_player, cpuct);
+ }
+ old_ponder = ponder_player;
+ ponder_player = 0;
+ char buff[256];
+ int id = 0;
+ int has_id = (scanf("%d", &id) == 1);
+ scanf("%s", buff);
+ if (feof(stdin)) break;
+ fprintf(stderr, "%s\n", buff);
+ char ids[256];
+ sprintf(ids, "%d", id);
+ //fprintf(stderr, "%s\n", buff);
+ if (!has_id) ids[0] = 0;
+ if (!strcmp(buff, "protocol_version")){
+ printf("=%s 2\n\n", ids);
+ } else if (!strcmp(buff, "name")){
+ if(anon){
+ printf("=%s The Fool!\n\n", ids);
+ }else{
+ printf("=%s DarkGo\n\n", ids);
+ }
+ } else if (!strcmp(buff, "time_settings")){
+ ponder_player = old_ponder;
+ scanf("%d %d %d", &main_time, &byo_yomi_time, &byo_yomi_stones);
+ printf("=%s \n\n", ids);
+ } else if (!strcmp(buff, "time_left")){
+ ponder_player = old_ponder;
+ char color[256];
+ int time = 0, stones = 0;
+ scanf("%s %d %d", color, &time, &stones);
+ if (color[0] == 'b' || color[0] == 'B'){
+ black_time_left = time;
+ black_stones_left = stones;
+ } else {
+ white_time_left = time;
+ white_stones_left = stones;
+ }
+ printf("=%s \n\n", ids);
+ } else if (!strcmp(buff, "version")){
+ if(anon){
+ printf("=%s :-DDDD\n\n", ids);
+ }else {
+ printf("=%s 1.0. Want more DarkGo? You can find me on OGS, unlimited games, no waiting! https://online-go.com/user/view/434218\n\n", ids);
+ }
+ } else if (!strcmp(buff, "known_command")){
+ char comm[256];
+ scanf("%s", comm);
+ int known = (!strcmp(comm, "protocol_version") ||
+ !strcmp(comm, "name") ||
+ !strcmp(comm, "version") ||
+ !strcmp(comm, "known_command") ||
+ !strcmp(comm, "list_commands") ||
+ !strcmp(comm, "quit") ||
+ !strcmp(comm, "boardsize") ||
+ !strcmp(comm, "clear_board") ||
+ !strcmp(comm, "komi") ||
+ !strcmp(comm, "final_status_list") ||
+ !strcmp(comm, "play") ||
+ !strcmp(comm, "genmove_white") ||
+ !strcmp(comm, "genmove_black") ||
+ !strcmp(comm, "fixed_handicap") ||
+ !strcmp(comm, "genmove"));
+ if(known) printf("=%s true\n\n", ids);
+ else printf("=%s false\n\n", ids);
+ } else if (!strcmp(buff, "list_commands")){
+ printf("=%s protocol_version\nshowboard\nname\nversion\nknown_command\nlist_commands\nquit\nboardsize\nclear_board\nkomi\nplay\ngenmove_black\ngenmove_white\ngenmove\nfinal_status_list\nfixed_handicap\n\n", ids);
+ } else if (!strcmp(buff, "quit")){
+ break;
+ } else if (!strcmp(buff, "boardsize")){
+ int boardsize = 0;
+ scanf("%d", &boardsize);
+ //fprintf(stderr, "%d\n", boardsize);
+ if(boardsize != 19){
+ printf("?%s unacceptable size\n\n", ids);
+ } else {
+ root = move_mcts(root, -1);
+ memset(board, 0, 3*19*19*sizeof(float));
+ flip_board(board);
+ move_num = 0;
+ printf("=%s \n\n", ids);
+ }
+ } else if (!strcmp(buff, "fixed_handicap")){
+ int handicap = 0;
+ scanf("%d", &handicap);
+ int indexes[] = {72, 288, 300, 60, 180, 174, 186, 66, 294};
+ int i;
+ for(i = 0; i < handicap; ++i){
+ board[indexes[i]] = 1;
+ ++move_num;
+ }
+ root = move_mcts(root, -1);
+ } else if (!strcmp(buff, "clear_board")){
+ passed = 0;
+ memset(board, 0, 3*19*19*sizeof(float));
+ flip_board(board);
+ move_num = 0;
+ root = move_mcts(root, -1);
+ printf("=%s \n\n", ids);
+ } else if (!strcmp(buff, "komi")){
+ float komi = 0;
+ scanf("%f", &komi);
+ printf("=%s \n\n", ids);
+ } else if (!strcmp(buff, "showboard")){
+ printf("=%s \n", ids);
+ print_board(stdout, board, 1, 0);
+ printf("\n");
+ } else if (!strcmp(buff, "play") || !strcmp(buff, "black") || !strcmp(buff, "white")){
+ ++move_num;
+ char color[256];
+ if(!strcmp(buff, "play"))
+ {
+ scanf("%s ", color);
+ } else {
+ scanf(" ");
+ color[0] = buff[0];
+ }
+ char c;
+ int r;
+ int count = scanf("%c%d", &c, &r);
+ int player = (color[0] == 'b' || color[0] == 'B') ? 1 : -1;
+ if((c == 'p' || c == 'P') && count < 2) {
+ passed = 1;
+ printf("=%s \n\n", ids);
+ char *line = fgetl(stdin);
+ free(line);
+ fflush(stdout);
+ fflush(stderr);
+ root = move_mcts(root, 19*19);
+ continue;
+ } else {
+ passed = 0;
+ }
+ if(c >= 'A' && c <= 'Z') c = c - 'A';
+ if(c >= 'a' && c <= 'z') c = c - 'a';
+ if(c >= 8) --c;
+ r = 19 - r;
+ fprintf(stderr, "move: %d %d\n", r, c);
+
+ float *swap = two;
+ two = one;
+ one = swap;
+ move_go(board, player, r, c);
+ copy_cpu(19*19*3, board, 1, one, 1);
+ if(root) fprintf(stderr, "Prior: %f\n", root->prior[r*19 + c]);
+ if(root) fprintf(stderr, "Mean: %f\n", root->mean[r*19 + c]);
+ if(root) fprintf(stderr, "Result: %f\n", root->result);
+ root = move_mcts(root, r*19 + c);
+ if(root) fprintf(stderr, "Visited: %d\n", root->total_count);
+ else fprintf(stderr, "NOT VISITED\n");
+
+ printf("=%s \n\n", ids);
+ //print_board(stderr, board, 1, 0);
+ } else if (!strcmp(buff, "genmove") || !strcmp(buff, "genmove_black") || !strcmp(buff, "genmove_white")){
+ ++move_num;
+ int player = 0;
+ if(!strcmp(buff, "genmove")){
+ char color[256];
+ scanf("%s", color);
+ player = (color[0] == 'b' || color[0] == 'B') ? 1 : -1;
+ } else if (!strcmp(buff, "genmove_black")){
+ player = 1;
+ } else {
+ player = -1;
+ }
+ if(player > 0){
+ if(black_time_left <= 30) secs = 2.5;
+ else secs = orig_time;
+ } else {
+ if(white_time_left <= 30) secs = 2.5;
+ else secs = orig_time;
+ }
+ ponder_player = -player;
+
+ //tree = generate_move(net, player, board, multi, .1, two, 1);
+ double t = what_time_is_it_now();
+ root = run_mcts(root, net, board, two, player, mcts_iters, cpuct, secs);
+ fprintf(stderr, "%f Seconds\n", what_time_is_it_now() - t);
+ move m = pick_move(root, temp, player);
+ root = move_mcts(root, m.row*19 + m.col);
+
+
+ if(move_num > resign && m.value < .1 && m.mcts < .1){
+ printf("=%s resign\n\n", ids);
+ } else if(m.row == 19){
+ printf("=%s pass\n\n", ids);
+ passed = 0;
+ } else {
+ int row = m.row;
+ int col = m.col;
+
+ float *swap = two;
+ two = one;
+ one = swap;
+
+ move_go(board, player, row, col);
+ copy_cpu(19*19*3, board, 1, one, 1);
+ row = 19 - row;
+ if (col >= 8) ++col;
+ printf("=%s %c%d\n\n", ids, 'A' + col, row);
+ }
+
+ } else if (!strcmp(buff, "p")){
+ //print_board(board, 1, 0);
+ } else if (!strcmp(buff, "final_status_list")){
+ char type[256];
+ scanf("%s", type);
+ fprintf(stderr, "final_status\n");
+ char *line = fgetl(stdin);
+ free(line);
+ if(type[0] == 'd' || type[0] == 'D'){
+ int i;
+ FILE *f = fopen("game.txt", "w");
+ int count = print_game(board, f);
+ fprintf(f, "%s final_status_list dead\n", ids);
+ fclose(f);
+ FILE *p = popen("./gnugo --mode gtp < game.txt", "r");
+ for(i = 0; i < count; ++i){
+ free(fgetl(p));
+ free(fgetl(p));
+ }
+ char *l = 0;
+ while((l = fgetl(p))){
+ printf("%s\n", l);
+ free(l);
+ }
+ } else {
+ printf("?%s unknown command\n\n", ids);
+ }
+ } else if (!strcmp(buff, "kgs-genmove_cleanup")){
+ char type[256];
+ scanf("%s", type);
+ fprintf(stderr, "kgs-genmove_cleanup\n");
+ char *line = fgetl(stdin);
+ free(line);
+ int i;
+ FILE *f = fopen("game.txt", "w");
+ int count = print_game(board, f);
+ fprintf(f, "%s kgs-genmove_cleanup %s\n", ids, type);
+ fclose(f);
+ FILE *p = popen("./gnugo --mode gtp < game.txt", "r");
+ for(i = 0; i < count; ++i){
+ free(fgetl(p));
+ free(fgetl(p));
+ }
+ char *l = 0;
+ while((l = fgetl(p))){
+ printf("%s\n", l);
+ free(l);
+ }
+ } else {
+ char *line = fgetl(stdin);
+ free(line);
+ printf("?%s unknown command\n\n", ids);
+ }
+ fflush(stdout);
+ fflush(stderr);
+ }
+ printf("%d %d %d\n",passed, black_stones_left, white_stones_left);
+}
+
+void test_go(char *cfg, char *weights, int multi)
+{
+ int i;
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ srand(time(0));
+ float *board = calloc(19*19*3, sizeof(float));
+ flip_board(board);
+ float *move = calloc(19*19+1, sizeof(float));
+ int color = 1;
+ while(1){
+ float result = predict_move2(net, board, move, multi);
+ printf("%.2f%% Win Chance\n", (result+1)/2*100);
+
+ int indexes[nind];
+ int row, col;
+ top_k(move, 19*19+1, nind, indexes);
+ print_board(stderr, board, color, indexes);
+ for(i = 0; i < nind; ++i){
+ int index = indexes[i];
+ row = index / 19;
+ col = index % 19;
+ if(row == 19){
+ printf("%d: Pass, %.2f%%\n", i+1, move[index]*100);
+ } else {
+ printf("%d: %c %d, %.2f%%\n", i+1, col + 'A' + 1*(col > 7 && noi), (inverted)?19 - row : row+1, move[index]*100);
+ }
+ }
+ //if(color == 1) printf("\u25EF Enter move: ");
+ //else printf("\u25C9 Enter move: ");
+ if(color == 1) printf("X Enter move: ");
+ else printf("O Enter move: ");
+
+ char c;
+ char *line = fgetl(stdin);
+ int picked = 1;
+ int dnum = sscanf(line, "%d", &picked);
+ int cnum = sscanf(line, "%c", &c);
+ if (strlen(line) == 0 || dnum) {
+ --picked;
+ if (picked < nind){
+ int index = indexes[picked];
+ row = index / 19;
+ col = index % 19;
+ if(row < 19){
+ move_go(board, 1, row, col);
+ }
+ }
+ } else if (cnum){
+ if (c <= 'T' && c >= 'A'){
+ int num = sscanf(line, "%c %d", &c, &row);
+ row = (inverted)?19 - row : row-1;
+ col = c - 'A';
+ if (col > 7 && noi) col -= 1;
+ if (num == 2) move_go(board, 1, row, col);
+ } else if (c == 'p') {
+ // Pass
+ } else if(c=='b' || c == 'w'){
+ char g;
+ int num = sscanf(line, "%c %c %d", &g, &c, &row);
+ row = (inverted)?19 - row : row-1;
+ col = c - 'A';
+ if (col > 7 && noi) col -= 1;
+ if (num == 3) {
+ int mc = (g == 'b') ? 1 : -1;
+ if (mc == color) {
+ board[row*19 + col] = 1;
+ } else {
+ board[19*19 + row*19 + col] = 1;
+ }
+ }
+ } else if(c == 'c'){
+ char g;
+ int num = sscanf(line, "%c %c %d", &g, &c, &row);
+ row = (inverted)?19 - row : row-1;
+ col = c - 'A';
+ if (col > 7 && noi) col -= 1;
+ if (num == 3) {
+ board[row*19 + col] = 0;
+ board[19*19 + row*19 + col] = 0;
+ }
+ }
+ }
+ free(line);
+ flip_board(board);
+ color = -color;
+ }
+}
+
+float score_game(float *board)
+{
+ int i;
+ FILE *f = fopen("game.txt", "w");
+ int count = print_game(board, f);
+ fprintf(f, "final_score\n");
+ fclose(f);
+ FILE *p = popen("./gnugo --mode gtp < game.txt", "r");
+ for(i = 0; i < count; ++i){
+ free(fgetl(p));
+ free(fgetl(p));
+ }
+ char *l = 0;
+ float score = 0;
+ char player = 0;
+ while((l = fgetl(p))){
+ fprintf(stderr, "%s \t", l);
+ int n = sscanf(l, "= %c+%f", &player, &score);
+ free(l);
+ if (n == 2) break;
+ }
+ if(player == 'W') score = -score;
+ pclose(p);
+ return score;
+}
+
+void self_go(char *filename, char *weightfile, char *f2, char *w2, int multi)
+{
+ mcts_tree *tree1 = 0;
+ mcts_tree *tree2 = 0;
+ network *net = load_network(filename, weightfile, 0);
+ //set_batch_network(net, 1);
+
+ network *net2;
+ if (f2) {
+ net2 = parse_network_cfg(f2);
+ if(w2){
+ load_weights(net2, w2);
+ }
+ } else {
+ net2 = calloc(1, sizeof(network));
+ *net2 = *net;
+ }
+ srand(time(0));
+ char boards[600][93];
+ int count = 0;
+ //set_batch_network(net, 1);
+ //set_batch_network(net2, 1);
+ float *board = calloc(19*19*3, sizeof(float));
+ flip_board(board);
+ float *one = calloc(19*19*3, sizeof(float));
+ float *two = calloc(19*19*3, sizeof(float));
+ int done = 0;
+ int player = 1;
+ int p1 = 0;
+ int p2 = 0;
+ int total = 0;
+ float temp = .1;
+ int mcts_iters = 500;
+ float cpuct = 5;
+ while(1){
+ if (done){
+ tree1 = move_mcts(tree1, -1);
+ tree2 = move_mcts(tree2, -1);
+ float score = score_game(board);
+ if((score > 0) == (total%2==0)) ++p1;
+ else ++p2;
+ ++total;
+ fprintf(stderr, "Total: %d, Player 1: %f, Player 2: %f\n", total, (float)p1/total, (float)p2/total);
+ sleep(1);
+ /*
+ int i = (score > 0)? 0 : 1;
+ int j;
+ for(; i < count; i += 2){
+ for(j = 0; j < 93; ++j){
+ printf("%c", boards[i][j]);
+ }
+ printf("\n");
+ }
+ */
+ memset(board, 0, 3*19*19*sizeof(float));
+ flip_board(board);
+ player = 1;
+ done = 0;
+ count = 0;
+ fflush(stdout);
+ fflush(stderr);
+ }
+ //print_board(stderr, board, 1, 0);
+ //sleep(1);
+
+ if ((total%2==0) == (player==1)){
+ //mcts_iters = 4500;
+ cpuct = 5;
+ } else {
+ //mcts_iters = 500;
+ cpuct = 1;
+ }
+ network *use = ((total%2==0) == (player==1)) ? net : net2;
+ mcts_tree *t = ((total%2==0) == (player==1)) ? tree1 : tree2;
+ t = run_mcts(t, use, board, two, player, mcts_iters, cpuct, 0);
+ move m = pick_move(t, temp, player);
+ if(((total%2==0) == (player==1))) tree1 = t;
+ else tree2 = t;
+
+ tree1 = move_mcts(tree1, m.row*19 + m.col);
+ tree2 = move_mcts(tree2, m.row*19 + m.col);
+
+ if(m.row == 19){
+ done = 1;
+ continue;
+ }
+ int row = m.row;
+ int col = m.col;
+
+ float *swap = two;
+ two = one;
+ one = swap;
+
+ if(player < 0) flip_board(board);
+ boards[count][0] = row;
+ boards[count][1] = col;
+ board_to_string(boards[count] + 2, board);
+ if(player < 0) flip_board(board);
+ ++count;
+
+ move_go(board, player, row, col);
+ copy_cpu(19*19*3, board, 1, one, 1);
+
+ player = -player;
+ }
+}
+
+void run_go(int argc, char **argv)
+{
+ //boards_go();
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ int *gpus = 0;
+ int gpu = 0;
+ int ngpus = 0;
+ if(gpu_list){
+ printf("%s\n", gpu_list);
+ int len = strlen(gpu_list);
+ ngpus = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (gpu_list[i] == ',') ++ngpus;
+ }
+ gpus = calloc(ngpus, sizeof(int));
+ for(i = 0; i < ngpus; ++i){
+ gpus[i] = atoi(gpu_list);
+ gpu_list = strchr(gpu_list, ',')+1;
+ }
+ } else {
+ gpu = gpu_index;
+ gpus = &gpu;
+ ngpus = 1;
+ }
+ int clear = find_arg(argc, argv, "-clear");
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *c2 = (argc > 5) ? argv[5] : 0;
+ char *w2 = (argc > 6) ? argv[6] : 0;
+ int multi = find_arg(argc, argv, "-multi");
+ int anon = find_arg(argc, argv, "-anon");
+ int iters = find_int_arg(argc, argv, "-iters", 500);
+ int resign = find_int_arg(argc, argv, "-resign", 175);
+ float cpuct = find_float_arg(argc, argv, "-cpuct", 5);
+ float temp = find_float_arg(argc, argv, "-temp", .1);
+ float time = find_float_arg(argc, argv, "-time", 0);
+ if(0==strcmp(argv[2], "train")) train_go(cfg, weights, c2, gpus, ngpus, clear);
+ else if(0==strcmp(argv[2], "valid")) valid_go(cfg, weights, multi, c2);
+ else if(0==strcmp(argv[2], "self")) self_go(cfg, weights, c2, w2, multi);
+ else if(0==strcmp(argv[2], "test")) test_go(cfg, weights, multi);
+ else if(0==strcmp(argv[2], "engine")) engine_go(cfg, weights, iters, time, temp, cpuct, anon, resign);
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/instance-segmenter.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/instance-segmenter.c"
new file mode 100644
index 00000000..664e7142
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/instance-segmenter.c"
@@ -0,0 +1,267 @@
+#include "darknet.h"
+#include
+#include
+
+void normalize_image2(image p);
+void train_isegmenter(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear, int display)
+{
+ int i;
+
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ printf("%d\n", ngpus);
+ network **nets = calloc(ngpus, sizeof(network*));
+
+ srand(time(0));
+ int seed = rand();
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ srand(time(0));
+ network *net = nets[0];
+ image pred = get_network_image(net);
+
+ image embed = pred;
+ embed.c = 3;
+ embed.data += embed.w*embed.h*80;
+
+ int div = net->w/pred.w;
+ assert(pred.w * div == net->w);
+ assert(pred.h * div == net->h);
+
+ int imgs = net->batch * net->subdivisions * ngpus;
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ list *options = read_data_cfg(datacfg);
+
+ char *backup_directory = option_find_str(options, "backup", "/backup/");
+ char *train_list = option_find_str(options, "train", "data/train.list");
+
+ list *plist = get_paths(train_list);
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ int N = plist->size;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.threads = 32;
+ args.scale = div;
+ args.num_boxes = 90;
+
+ args.min = net->min_crop;
+ args.max = net->max_crop;
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+ args.size = net->w;
+ args.classes = 80;
+
+ args.paths = paths;
+ args.n = imgs;
+ args.m = N;
+ args.type = ISEG_DATA;
+
+ data train;
+ data buffer;
+ pthread_t load_thread;
+ args.d = &buffer;
+ load_thread = load_data(args);
+
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ double time = what_time_is_it_now();
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data(args);
+
+ printf("Loaded: %lf seconds\n", what_time_is_it_now()-time);
+ time = what_time_is_it_now();
+
+ float loss = 0;
+#ifdef GPU
+ if(ngpus == 1){
+ loss = train_network(net, train);
+ } else {
+ loss = train_networks(nets, ngpus, train, 4);
+ }
+#else
+ loss = train_network(net, train);
+#endif
+ if(display){
+ image tr = float_to_image(net->w/div, net->h/div, 80, train.y.vals[net->batch*(net->subdivisions-1)]);
+ image im = float_to_image(net->w, net->h, net->c, train.X.vals[net->batch*(net->subdivisions-1)]);
+ pred.c = 80;
+ image mask = mask_to_rgb(tr);
+ image prmask = mask_to_rgb(pred);
+ image ecopy = copy_image(embed);
+ normalize_image2(ecopy);
+ show_image(ecopy, "embed", 1);
+ free_image(ecopy);
+
+ show_image(im, "input", 1);
+ show_image(prmask, "pred", 1);
+ show_image(mask, "truth", 100);
+ free_image(mask);
+ free_image(prmask);
+ }
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), what_time_is_it_now()-time, *net->seen);
+ free_data(train);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ free_network(net);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void predict_isegmenter(char *datafile, char *cfg, char *weights, char *filename)
+{
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image sized = letterbox_image(im, net->w, net->h);
+
+ float *X = sized.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+ image pred = get_network_image(net);
+ image prmask = mask_to_rgb(pred);
+ printf("Predicted: %f\n", predictions[0]);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ show_image(sized, "orig", 1);
+ show_image(prmask, "pred", 0);
+ free_image(im);
+ free_image(sized);
+ free_image(prmask);
+ if (filename) break;
+ }
+}
+
+
+void demo_isegmenter(char *datacfg, char *cfg, char *weights, int cam_index, const char *filename)
+{
+#ifdef OPENCV
+ printf("Classifier Demo\n");
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+
+ srand(2222222);
+ void * cap = open_video_stream(filename, cam_index, 0,0,0);
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ float fps = 0;
+
+ while(1){
+ struct timeval tval_before, tval_after, tval_result;
+ gettimeofday(&tval_before, NULL);
+
+ image in = get_image_from_stream(cap);
+ image in_s = letterbox_image(in, net->w, net->h);
+
+ network_predict(net, in_s.data);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+ printf("\nFPS:%.0f\n",fps);
+
+ image pred = get_network_image(net);
+ image prmask = mask_to_rgb(pred);
+ show_image(prmask, "Segmenter", 10);
+
+ free_image(in_s);
+ free_image(in);
+ free_image(prmask);
+
+ gettimeofday(&tval_after, NULL);
+ timersub(&tval_after, &tval_before, &tval_result);
+ float curr = 1000000.f/((long int)tval_result.tv_usec);
+ fps = .9*fps + .1*curr;
+ }
+#endif
+}
+
+
+void run_isegmenter(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ int *gpus = 0;
+ int gpu = 0;
+ int ngpus = 0;
+ if(gpu_list){
+ printf("%s\n", gpu_list);
+ int len = strlen(gpu_list);
+ ngpus = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (gpu_list[i] == ',') ++ngpus;
+ }
+ gpus = calloc(ngpus, sizeof(int));
+ for(i = 0; i < ngpus; ++i){
+ gpus[i] = atoi(gpu_list);
+ gpu_list = strchr(gpu_list, ',')+1;
+ }
+ } else {
+ gpu = gpu_index;
+ gpus = &gpu;
+ ngpus = 1;
+ }
+
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int clear = find_arg(argc, argv, "-clear");
+ int display = find_arg(argc, argv, "-display");
+ char *data = argv[3];
+ char *cfg = argv[4];
+ char *weights = (argc > 5) ? argv[5] : 0;
+ char *filename = (argc > 6) ? argv[6]: 0;
+ if(0==strcmp(argv[2], "test")) predict_isegmenter(data, cfg, weights, filename);
+ else if(0==strcmp(argv[2], "train")) train_isegmenter(data, cfg, weights, gpus, ngpus, clear, display);
+ else if(0==strcmp(argv[2], "demo")) demo_isegmenter(data, cfg, weights, cam_index, filename);
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/lsd.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/lsd.c"
new file mode 100644
index 00000000..4ab944c8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/lsd.c"
@@ -0,0 +1,1378 @@
+#include
+#include "darknet.h"
+
+/*
+void train_lsd3(char *fcfg, char *fweight, char *gcfg, char *gweight, char *acfg, char *aweight, int clear)
+{
+#ifdef GPU
+ //char *train_images = "/home/pjreddie/data/coco/trainvalno5k.txt";
+ char *train_images = "/home/pjreddie/data/imagenet/imagenet1k.train.list";
+ //char *style_images = "/home/pjreddie/data/coco/trainvalno5k.txt";
+ char *style_images = "/home/pjreddie/zelda.txt";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ network fnet = load_network(fcfg, fweight, clear);
+ network gnet = load_network(gcfg, gweight, clear);
+ network anet = load_network(acfg, aweight, clear);
+ char *gbase = basecfg(gcfg);
+ char *abase = basecfg(acfg);
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", gnet->learning_rate, gnet->momentum, gnet->decay);
+ int imgs = gnet->batch*gnet->subdivisions;
+ int i = *gnet->seen/imgs;
+ data train, tbuffer;
+ data style, sbuffer;
+
+
+ list *slist = get_paths(style_images);
+ char **spaths = (char **)list_to_array(slist);
+
+ list *tlist = get_paths(train_images);
+ char **tpaths = (char **)list_to_array(tlist);
+
+ load_args targs= get_base_args(gnet);
+ targs.paths = tpaths;
+ targs.n = imgs;
+ targs.m = tlist->size;
+ targs.d = &tbuffer;
+ targs.type = CLASSIFICATION_DATA;
+ targs.classes = 1;
+ char *ls[1] = {"zelda"};
+ targs.labels = ls;
+
+ load_args sargs = get_base_args(gnet);
+ sargs.paths = spaths;
+ sargs.n = imgs;
+ sargs.m = slist->size;
+ sargs.d = &sbuffer;
+ sargs.type = CLASSIFICATION_DATA;
+ sargs.classes = 1;
+ sargs.labels = ls;
+
+ pthread_t tload_thread = load_data_in_thread(targs);
+ pthread_t sload_thread = load_data_in_thread(sargs);
+ clock_t time;
+
+ float aloss_avg = -1;
+ float floss_avg = -1;
+
+ fnet->train=1;
+ int x_size = fnet->inputs*fnet->batch;
+ int y_size = fnet->truths*fnet->batch;
+ float *X = calloc(x_size, sizeof(float));
+ float *y = calloc(y_size, sizeof(float));
+
+
+ int ax_size = anet->inputs*anet->batch;
+ int ay_size = anet->truths*anet->batch;
+ fill_gpu(ay_size, .9, anet->truth_gpu, 1);
+ anet->delta_gpu = cuda_make_array(0, ax_size);
+ anet->train = 1;
+
+ int gx_size = gnet->inputs*gnet->batch;
+ int gy_size = gnet->truths*gnet->batch;
+ gstate.input = cuda_make_array(0, gx_size);
+ gstate.truth = 0;
+ gstate.delta = 0;
+ gstate.train = 1;
+
+ while (get_current_batch(gnet) < gnet->max_batches) {
+ i += 1;
+ time=clock();
+ pthread_join(tload_thread, 0);
+ pthread_join(sload_thread, 0);
+ train = tbuffer;
+ style = sbuffer;
+ tload_thread = load_data_in_thread(targs);
+ sload_thread = load_data_in_thread(sargs);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ data generated = copy_data(train);
+ time=clock();
+
+ int j, k;
+ float floss = 0;
+ for(j = 0; j < fnet->subdivisions; ++j){
+ layer imlayer = gnet->layers[gnet->n - 1];
+ get_next_batch(train, fnet->batch, j*fnet->batch, X, y);
+
+ cuda_push_array(fstate.input, X, x_size);
+ cuda_push_array(gstate.input, X, gx_size);
+ *gnet->seen += gnet->batch;
+
+ forward_network_gpu(fnet, fstate);
+ float *feats = fnet->layers[fnet->n - 2].output_gpu;
+ copy_gpu(y_size, feats, 1, fstate.truth, 1);
+
+ forward_network_gpu(gnet, gstate);
+ float *gen = gnet->layers[gnet->n-1].output_gpu;
+ copy_gpu(x_size, gen, 1, fstate.input, 1);
+
+ fill_gpu(x_size, 0, fstate.delta, 1);
+ forward_network_gpu(fnet, fstate);
+ backward_network_gpu(fnet, fstate);
+ //HERE
+
+ astate.input = gen;
+ fill_gpu(ax_size, 0, astate.delta, 1);
+ forward_network_gpu(anet, astate);
+ backward_network_gpu(anet, astate);
+
+ float *delta = imlayer.delta_gpu;
+ fill_gpu(x_size, 0, delta, 1);
+ scal_gpu(x_size, 100, astate.delta, 1);
+ scal_gpu(x_size, .001, fstate.delta, 1);
+ axpy_gpu(x_size, 1, fstate.delta, 1, delta, 1);
+ axpy_gpu(x_size, 1, astate.delta, 1, delta, 1);
+
+ //fill_gpu(x_size, 0, delta, 1);
+ //cuda_push_array(delta, X, x_size);
+ //axpy_gpu(x_size, -1, imlayer.output_gpu, 1, delta, 1);
+ //printf("pix error: %f\n", cuda_mag_array(delta, x_size));
+ printf("fea error: %f\n", cuda_mag_array(fstate.delta, x_size));
+ printf("adv error: %f\n", cuda_mag_array(astate.delta, x_size));
+ //axpy_gpu(x_size, 1, astate.delta, 1, delta, 1);
+
+ backward_network_gpu(gnet, gstate);
+
+ floss += get_network_cost(fnet) /(fnet->subdivisions*fnet->batch);
+
+ cuda_pull_array(imlayer.output_gpu, imlayer.output, imlayer.outputs*imlayer.batch);
+ for(k = 0; k < gnet->batch; ++k){
+ int index = j*gnet->batch + k;
+ copy_cpu(imlayer.outputs, imlayer.output + k*imlayer.outputs, 1, generated.X.vals[index], 1);
+ generated.y.vals[index][0] = .1;
+ style.y.vals[index][0] = .9;
+ }
+ }
+
+*/
+/*
+ image sim = float_to_image(anet->w, anet->h, anet->c, style.X.vals[j]);
+ show_image(sim, "style");
+ cvWaitKey(0);
+ */
+ /*
+
+ harmless_update_network_gpu(anet);
+
+ data merge = concat_data(style, generated);
+ randomize_data(merge);
+ float aloss = train_network(anet, merge);
+
+ update_network_gpu(gnet);
+
+ free_data(merge);
+ free_data(train);
+ free_data(generated);
+ free_data(style);
+ if (aloss_avg < 0) aloss_avg = aloss;
+ if (floss_avg < 0) floss_avg = floss;
+ aloss_avg = aloss_avg*.9 + aloss*.1;
+ floss_avg = floss_avg*.9 + floss*.1;
+
+ printf("%d: gen: %f, adv: %f | gen_avg: %f, adv_avg: %f, %f rate, %lf seconds, %d images\n", i, floss, aloss, floss_avg, aloss_avg, get_current_rate(gnet), sec(clock()-time), i*imgs);
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, gbase, i);
+ save_weights(gnet, buff);
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, abase, i);
+ save_weights(anet, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, gbase);
+ save_weights(gnet, buff);
+ sprintf(buff, "%s/%s.backup", backup_directory, abase);
+ save_weights(anet, buff);
+ }
+ }
+#endif
+}
+*/
+
+/*
+void train_pix2pix(char *cfg, char *weight, char *acfg, char *aweight, int clear)
+{
+#ifdef GPU
+ //char *train_images = "/home/pjreddie/data/coco/train1.txt";
+ //char *train_images = "/home/pjreddie/data/coco/trainvalno5k.txt";
+ char *train_images = "/home/pjreddie/data/imagenet/imagenet1k.train.list";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfg);
+ char *abase = basecfg(acfg);
+ printf("%s\n", base);
+ network net = load_network(cfg, weight, clear);
+ network anet = load_network(acfg, aweight, clear);
+
+ int i, j, k;
+ layer imlayer = {0};
+ for (i = 0; i < net->n; ++i) {
+ if (net->layers[i].out_c == 3) {
+ imlayer = net->layers[i];
+ break;
+ }
+ }
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = net->batch*net->subdivisions;
+ i = *net->seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.d = &buffer;
+
+ args.min = net->min_crop;
+ args.max = net->max_crop;
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+ args.size = net->w;
+ args.type = CLASSIFICATION_DATA;
+ args.classes = 1;
+ char *ls[1] = {"coco"};
+ args.labels = ls;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+
+ network_state gstate = {0};
+ gstate.index = 0;
+ gstate.net = net;
+ int x_size = get_network_input_size(net)*net->batch;
+ int y_size = x_size;
+ gstate.input = cuda_make_array(0, x_size);
+ gstate.truth = cuda_make_array(0, y_size);
+ gstate.delta = 0;
+ gstate.train = 1;
+ float *pixs = calloc(x_size, sizeof(float));
+ float *graypixs = calloc(x_size, sizeof(float));
+ float *y = calloc(y_size, sizeof(float));
+
+ network_state astate = {0};
+ astate.index = 0;
+ astate.net = anet;
+ int ay_size = get_network_output_size(anet)*anet->batch;
+ astate.input = 0;
+ astate.truth = 0;
+ astate.delta = 0;
+ astate.train = 1;
+
+ float *imerror = cuda_make_array(0, imlayer.outputs);
+ float *ones_gpu = cuda_make_array(0, ay_size);
+ fill_gpu(ay_size, .9, ones_gpu, 1);
+
+ float aloss_avg = -1;
+ float gloss_avg = -1;
+
+ //data generated = copy_data(train);
+
+ while (get_current_batch(net) < net->max_batches) {
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ data gray = copy_data(train);
+ for(j = 0; j < imgs; ++j){
+ image gim = float_to_image(net->w, net->h, net->c, gray.X.vals[j]);
+ grayscale_image_3c(gim);
+ train.y.vals[j][0] = .9;
+
+ image yim = float_to_image(net->w, net->h, net->c, train.X.vals[j]);
+ //rgb_to_yuv(yim);
+ }
+ time=clock();
+ float gloss = 0;
+
+ for(j = 0; j < net->subdivisions; ++j){
+ get_next_batch(train, net->batch, j*net->batch, pixs, y);
+ get_next_batch(gray, net->batch, j*net->batch, graypixs, y);
+ cuda_push_array(gstate.input, graypixs, x_size);
+ cuda_push_array(gstate.truth, pixs, y_size);
+ */
+ /*
+ image origi = float_to_image(net->w, net->h, 3, pixs);
+ image grayi = float_to_image(net->w, net->h, 3, graypixs);
+ show_image(grayi, "gray");
+ show_image(origi, "orig");
+ cvWaitKey(0);
+ */
+ /*
+ *net->seen += net->batch;
+ forward_network_gpu(net, gstate);
+
+ fill_gpu(imlayer.outputs, 0, imerror, 1);
+ astate.input = imlayer.output_gpu;
+ astate.delta = imerror;
+ astate.truth = ones_gpu;
+ forward_network_gpu(anet, astate);
+ backward_network_gpu(anet, astate);
+
+ scal_gpu(imlayer.outputs, .1, net->layers[net->n-1].delta_gpu, 1);
+
+ backward_network_gpu(net, gstate);
+
+ scal_gpu(imlayer.outputs, 1000, imerror, 1);
+
+ printf("realness %f\n", cuda_mag_array(imerror, imlayer.outputs));
+ printf("features %f\n", cuda_mag_array(net->layers[net->n-1].delta_gpu, imlayer.outputs));
+
+ axpy_gpu(imlayer.outputs, 1, imerror, 1, imlayer.delta_gpu, 1);
+
+ gloss += get_network_cost(net) /(net->subdivisions*net->batch);
+
+ cuda_pull_array(imlayer.output_gpu, imlayer.output, imlayer.outputs*imlayer.batch);
+ for(k = 0; k < net->batch; ++k){
+ int index = j*net->batch + k;
+ copy_cpu(imlayer.outputs, imlayer.output + k*imlayer.outputs, 1, gray.X.vals[index], 1);
+ gray.y.vals[index][0] = .1;
+ }
+ }
+ harmless_update_network_gpu(anet);
+
+ data merge = concat_data(train, gray);
+ randomize_data(merge);
+ float aloss = train_network(anet, merge);
+
+ update_network_gpu(net);
+ update_network_gpu(anet);
+ free_data(merge);
+ free_data(train);
+ free_data(gray);
+ if (aloss_avg < 0) aloss_avg = aloss;
+ aloss_avg = aloss_avg*.9 + aloss*.1;
+ gloss_avg = gloss_avg*.9 + gloss*.1;
+
+ printf("%d: gen: %f, adv: %f | gen_avg: %f, adv_avg: %f, %f rate, %lf seconds, %d images\n", i, gloss, aloss, gloss_avg, aloss_avg, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, abase, i);
+ save_weights(anet, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ sprintf(buff, "%s/%s.backup", backup_directory, abase);
+ save_weights(anet, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+#endif
+}
+*/
+
+void slerp(float *start, float *end, float s, int n, float *out)
+{
+ float omega = acos(dot_cpu(n, start, 1, end, 1));
+ float so = sin(omega);
+ fill_cpu(n, 0, out, 1);
+ axpy_cpu(n, sin((1-s)*omega)/so, start, 1, out, 1);
+ axpy_cpu(n, sin(s*omega)/so, end, 1, out, 1);
+
+ float mag = mag_array(out, n);
+ scale_array(out, n, 1./mag);
+}
+
+image random_unit_vector_image(int w, int h, int c)
+{
+ image im = make_image(w, h, c);
+ int i;
+ for(i = 0; i < im.w*im.h*im.c; ++i){
+ im.data[i] = rand_normal();
+ }
+ float mag = mag_array(im.data, im.w*im.h*im.c);
+ scale_array(im.data, im.w*im.h*im.c, 1./mag);
+ return im;
+}
+
+void inter_dcgan(char *cfgfile, char *weightfile)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ int i, imlayer = 0;
+
+ for (i = 0; i < net->n; ++i) {
+ if (net->layers[i].out_c == 3) {
+ imlayer = i;
+ printf("%d\n", i);
+ break;
+ }
+ }
+ image start = random_unit_vector_image(net->w, net->h, net->c);
+ image end = random_unit_vector_image(net->w, net->h, net->c);
+ image im = make_image(net->w, net->h, net->c);
+ image orig = copy_image(start);
+
+ int c = 0;
+ int count = 0;
+ int max_count = 15;
+ while(1){
+ ++c;
+
+ if(count == max_count){
+ count = 0;
+ free_image(start);
+ start = end;
+ end = random_unit_vector_image(net->w, net->h, net->c);
+ if(c > 300){
+ end = orig;
+ }
+ if(c>300 + max_count) return;
+ }
+ ++count;
+
+ slerp(start.data, end.data, (float)count / max_count, im.w*im.h*im.c, im.data);
+
+ float *X = im.data;
+ time=clock();
+ network_predict(net, X);
+ image out = get_network_image_layer(net, imlayer);
+ //yuv_to_rgb(out);
+ normalize_image(out);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ //char buff[256];
+ sprintf(buff, "out%05d", c);
+ save_image(out, "out");
+ save_image(out, buff);
+ show_image(out, "out", 0);
+ }
+}
+
+void test_dcgan(char *cfgfile, char *weightfile)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ int imlayer = 0;
+
+ imlayer = net->n-1;
+
+ while(1){
+ image im = make_image(net->w, net->h, net->c);
+ int i;
+ for(i = 0; i < im.w*im.h*im.c; ++i){
+ im.data[i] = rand_normal();
+ }
+ //float mag = mag_array(im.data, im.w*im.h*im.c);
+ //scale_array(im.data, im.w*im.h*im.c, 1./mag);
+
+ float *X = im.data;
+ time=clock();
+ network_predict(net, X);
+ image out = get_network_image_layer(net, imlayer);
+ //yuv_to_rgb(out);
+ normalize_image(out);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ save_image(out, "out");
+ show_image(out, "out", 0);
+
+ free_image(im);
+ }
+}
+
+void set_network_alpha_beta(network *net, float alpha, float beta)
+{
+ int i;
+ for(i = 0; i < net->n; ++i){
+ if(net->layers[i].type == SHORTCUT){
+ net->layers[i].alpha = alpha;
+ net->layers[i].beta = beta;
+ }
+ }
+}
+
+void train_prog(char *cfg, char *weight, char *acfg, char *aweight, int clear, int display, char *train_images, int maxbatch)
+{
+#ifdef GPU
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfg);
+ char *abase = basecfg(acfg);
+ printf("%s\n", base);
+ network *gnet = load_network(cfg, weight, clear);
+ network *anet = load_network(acfg, aweight, clear);
+
+ int i, j, k;
+ layer imlayer = gnet->layers[gnet->n-1];
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", gnet->learning_rate, gnet->momentum, gnet->decay);
+ int imgs = gnet->batch*gnet->subdivisions;
+ i = *gnet->seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args= get_base_args(anet);
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.d = &buffer;
+ args.type = CLASSIFICATION_DATA;
+ args.threads=16;
+ args.classes = 1;
+ char *ls[2] = {"imagenet", "zzzzzzzz"};
+ args.labels = ls;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+
+ gnet->train = 1;
+ anet->train = 1;
+
+ int x_size = gnet->inputs*gnet->batch;
+ int y_size = gnet->truths*gnet->batch;
+ float *imerror = cuda_make_array(0, y_size);
+
+ float aloss_avg = -1;
+
+ if (maxbatch == 0) maxbatch = gnet->max_batches;
+ while (get_current_batch(gnet) < maxbatch) {
+ {
+ int cb = get_current_batch(gnet);
+ float alpha = (float) cb / (maxbatch/2);
+ if(alpha > 1) alpha = 1;
+ float beta = 1 - alpha;
+ printf("%f %f\n", alpha, beta);
+ set_network_alpha_beta(gnet, alpha, beta);
+ set_network_alpha_beta(anet, beta, alpha);
+ }
+
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ data gen = copy_data(train);
+ for (j = 0; j < imgs; ++j) {
+ train.y.vals[j][0] = 1;
+ gen.y.vals[j][0] = 0;
+ }
+ time=clock();
+
+ for (j = 0; j < gnet->subdivisions; ++j) {
+ get_next_batch(train, gnet->batch, j*gnet->batch, gnet->truth, 0);
+ int z;
+ for(z = 0; z < x_size; ++z){
+ gnet->input[z] = rand_normal();
+ }
+ /*
+ for(z = 0; z < gnet->batch; ++z){
+ float mag = mag_array(gnet->input + z*gnet->inputs, gnet->inputs);
+ scale_array(gnet->input + z*gnet->inputs, gnet->inputs, 1./mag);
+ }
+ */
+ *gnet->seen += gnet->batch;
+ forward_network(gnet);
+
+ fill_gpu(imlayer.outputs*imlayer.batch, 0, imerror, 1);
+ fill_cpu(anet->truths*anet->batch, 1, anet->truth, 1);
+ copy_cpu(anet->inputs*anet->batch, imlayer.output, 1, anet->input, 1);
+ anet->delta_gpu = imerror;
+ forward_network(anet);
+ backward_network(anet);
+
+ //float genaloss = *anet->cost / anet->batch;
+
+ scal_gpu(imlayer.outputs*imlayer.batch, 1, imerror, 1);
+ scal_gpu(imlayer.outputs*imlayer.batch, 0, gnet->layers[gnet->n-1].delta_gpu, 1);
+
+ axpy_gpu(imlayer.outputs*imlayer.batch, 1, imerror, 1, gnet->layers[gnet->n-1].delta_gpu, 1);
+
+ backward_network(gnet);
+
+ for(k = 0; k < gnet->batch; ++k){
+ int index = j*gnet->batch + k;
+ copy_cpu(gnet->outputs, gnet->output + k*gnet->outputs, 1, gen.X.vals[index], 1);
+ }
+ }
+ harmless_update_network_gpu(anet);
+
+ data merge = concat_data(train, gen);
+ float aloss = train_network(anet, merge);
+
+#ifdef OPENCV
+ if(display){
+ image im = float_to_image(anet->w, anet->h, anet->c, gen.X.vals[0]);
+ image im2 = float_to_image(anet->w, anet->h, anet->c, train.X.vals[0]);
+ show_image(im, "gen", 1);
+ show_image(im2, "train", 1);
+ save_image(im, "gen");
+ save_image(im2, "train");
+ }
+#endif
+
+ update_network_gpu(gnet);
+
+ free_data(merge);
+ free_data(train);
+ free_data(gen);
+ if (aloss_avg < 0) aloss_avg = aloss;
+ aloss_avg = aloss_avg*.9 + aloss*.1;
+
+ printf("%d: adv: %f | adv_avg: %f, %f rate, %lf seconds, %d images\n", i, aloss, aloss_avg, get_current_rate(gnet), sec(clock()-time), i*imgs);
+ if(i%10000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(gnet, buff);
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, abase, i);
+ save_weights(anet, buff);
+ }
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(gnet, buff);
+ sprintf(buff, "%s/%s.backup", backup_directory, abase);
+ save_weights(anet, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(gnet, buff);
+#endif
+}
+
+void train_dcgan(char *cfg, char *weight, char *acfg, char *aweight, int clear, int display, char *train_images, int maxbatch)
+{
+#ifdef GPU
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfg);
+ char *abase = basecfg(acfg);
+ printf("%s\n", base);
+ network *gnet = load_network(cfg, weight, clear);
+ network *anet = load_network(acfg, aweight, clear);
+ //float orig_rate = anet->learning_rate;
+
+ int i, j, k;
+ layer imlayer = {0};
+ for (i = 0; i < gnet->n; ++i) {
+ if (gnet->layers[i].out_c == 3) {
+ imlayer = gnet->layers[i];
+ break;
+ }
+ }
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", gnet->learning_rate, gnet->momentum, gnet->decay);
+ int imgs = gnet->batch*gnet->subdivisions;
+ i = *gnet->seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args= get_base_args(anet);
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.d = &buffer;
+ args.type = CLASSIFICATION_DATA;
+ args.threads=16;
+ args.classes = 1;
+ char *ls[2] = {"imagenet", "zzzzzzzz"};
+ args.labels = ls;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+
+ gnet->train = 1;
+ anet->train = 1;
+
+ int x_size = gnet->inputs*gnet->batch;
+ int y_size = gnet->truths*gnet->batch;
+ float *imerror = cuda_make_array(0, y_size);
+
+ //int ay_size = anet->truths*anet->batch;
+
+ float aloss_avg = -1;
+
+ //data generated = copy_data(train);
+
+ if (maxbatch == 0) maxbatch = gnet->max_batches;
+ while (get_current_batch(gnet) < maxbatch) {
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+
+ //translate_data_rows(train, -.5);
+ //scale_data_rows(train, 2);
+
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ data gen = copy_data(train);
+ for (j = 0; j < imgs; ++j) {
+ train.y.vals[j][0] = 1;
+ gen.y.vals[j][0] = 0;
+ }
+ time=clock();
+
+ for(j = 0; j < gnet->subdivisions; ++j){
+ get_next_batch(train, gnet->batch, j*gnet->batch, gnet->truth, 0);
+ int z;
+ for(z = 0; z < x_size; ++z){
+ gnet->input[z] = rand_normal();
+ }
+ for(z = 0; z < gnet->batch; ++z){
+ float mag = mag_array(gnet->input + z*gnet->inputs, gnet->inputs);
+ scale_array(gnet->input + z*gnet->inputs, gnet->inputs, 1./mag);
+ }
+ /*
+ for(z = 0; z < 100; ++z){
+ printf("%f, ", gnet->input[z]);
+ }
+ printf("\n");
+ printf("input: %f %f\n", mean_array(gnet->input, x_size), variance_array(gnet->input, x_size));
+ */
+
+ //cuda_push_array(gnet->input_gpu, gnet->input, x_size);
+ //cuda_push_array(gnet->truth_gpu, gnet->truth, y_size);
+ *gnet->seen += gnet->batch;
+ forward_network(gnet);
+
+ fill_gpu(imlayer.outputs*imlayer.batch, 0, imerror, 1);
+ fill_cpu(anet->truths*anet->batch, 1, anet->truth, 1);
+ copy_cpu(anet->inputs*anet->batch, imlayer.output, 1, anet->input, 1);
+ anet->delta_gpu = imerror;
+ forward_network(anet);
+ backward_network(anet);
+
+ //float genaloss = *anet->cost / anet->batch;
+ //printf("%f\n", genaloss);
+
+ scal_gpu(imlayer.outputs*imlayer.batch, 1, imerror, 1);
+ scal_gpu(imlayer.outputs*imlayer.batch, 0, gnet->layers[gnet->n-1].delta_gpu, 1);
+
+ //printf("realness %f\n", cuda_mag_array(imerror, imlayer.outputs*imlayer.batch));
+ //printf("features %f\n", cuda_mag_array(gnet->layers[gnet->n-1].delta_gpu, imlayer.outputs*imlayer.batch));
+
+ axpy_gpu(imlayer.outputs*imlayer.batch, 1, imerror, 1, gnet->layers[gnet->n-1].delta_gpu, 1);
+
+ backward_network(gnet);
+
+ /*
+ for(k = 0; k < gnet->n; ++k){
+ layer l = gnet->layers[k];
+ cuda_pull_array(l.output_gpu, l.output, l.outputs*l.batch);
+ printf("%d: %f %f\n", k, mean_array(l.output, l.outputs*l.batch), variance_array(l.output, l.outputs*l.batch));
+ }
+ */
+
+ for(k = 0; k < gnet->batch; ++k){
+ int index = j*gnet->batch + k;
+ copy_cpu(gnet->outputs, gnet->output + k*gnet->outputs, 1, gen.X.vals[index], 1);
+ }
+ }
+ harmless_update_network_gpu(anet);
+
+ data merge = concat_data(train, gen);
+ //randomize_data(merge);
+ float aloss = train_network(anet, merge);
+
+ //translate_image(im, 1);
+ //scale_image(im, .5);
+ //translate_image(im2, 1);
+ //scale_image(im2, .5);
+#ifdef OPENCV
+ if(display){
+ image im = float_to_image(anet->w, anet->h, anet->c, gen.X.vals[0]);
+ image im2 = float_to_image(anet->w, anet->h, anet->c, train.X.vals[0]);
+ show_image(im, "gen", 1);
+ show_image(im2, "train", 1);
+ save_image(im, "gen");
+ save_image(im2, "train");
+ }
+#endif
+
+ /*
+ if(aloss < .1){
+ anet->learning_rate = 0;
+ } else if (aloss > .3){
+ anet->learning_rate = orig_rate;
+ }
+ */
+
+ update_network_gpu(gnet);
+
+ free_data(merge);
+ free_data(train);
+ free_data(gen);
+ if (aloss_avg < 0) aloss_avg = aloss;
+ aloss_avg = aloss_avg*.9 + aloss*.1;
+
+ printf("%d: adv: %f | adv_avg: %f, %f rate, %lf seconds, %d images\n", i, aloss, aloss_avg, get_current_rate(gnet), sec(clock()-time), i*imgs);
+ if(i%10000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(gnet, buff);
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, abase, i);
+ save_weights(anet, buff);
+ }
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(gnet, buff);
+ sprintf(buff, "%s/%s.backup", backup_directory, abase);
+ save_weights(anet, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(gnet, buff);
+#endif
+}
+
+void train_colorizer(char *cfg, char *weight, char *acfg, char *aweight, int clear, int display)
+{
+#ifdef GPU
+ //char *train_images = "/home/pjreddie/data/coco/train1.txt";
+ //char *train_images = "/home/pjreddie/data/coco/trainvalno5k.txt";
+ char *train_images = "/home/pjreddie/data/imagenet/imagenet1k.train.list";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfg);
+ char *abase = basecfg(acfg);
+ printf("%s\n", base);
+ network *net = load_network(cfg, weight, clear);
+ network *anet = load_network(acfg, aweight, clear);
+
+ int i, j, k;
+ layer imlayer = {0};
+ for (i = 0; i < net->n; ++i) {
+ if (net->layers[i].out_c == 3) {
+ imlayer = net->layers[i];
+ break;
+ }
+ }
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = net->batch*net->subdivisions;
+ i = *net->seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args= get_base_args(net);
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.d = &buffer;
+
+ args.type = CLASSIFICATION_DATA;
+ args.classes = 1;
+ char *ls[2] = {"imagenet"};
+ args.labels = ls;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+
+ int x_size = net->inputs*net->batch;
+ //int y_size = x_size;
+ net->delta = 0;
+ net->train = 1;
+ float *pixs = calloc(x_size, sizeof(float));
+ float *graypixs = calloc(x_size, sizeof(float));
+ //float *y = calloc(y_size, sizeof(float));
+
+ //int ay_size = anet->outputs*anet->batch;
+ anet->delta = 0;
+ anet->train = 1;
+
+ float *imerror = cuda_make_array(0, imlayer.outputs*imlayer.batch);
+
+ float aloss_avg = -1;
+ float gloss_avg = -1;
+
+ //data generated = copy_data(train);
+
+ while (get_current_batch(net) < net->max_batches) {
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ data gray = copy_data(train);
+ for(j = 0; j < imgs; ++j){
+ image gim = float_to_image(net->w, net->h, net->c, gray.X.vals[j]);
+ grayscale_image_3c(gim);
+ train.y.vals[j][0] = .95;
+ gray.y.vals[j][0] = .05;
+ }
+ time=clock();
+ float gloss = 0;
+
+ for(j = 0; j < net->subdivisions; ++j){
+ get_next_batch(train, net->batch, j*net->batch, pixs, 0);
+ get_next_batch(gray, net->batch, j*net->batch, graypixs, 0);
+ cuda_push_array(net->input_gpu, graypixs, net->inputs*net->batch);
+ cuda_push_array(net->truth_gpu, pixs, net->truths*net->batch);
+ /*
+ image origi = float_to_image(net->w, net->h, 3, pixs);
+ image grayi = float_to_image(net->w, net->h, 3, graypixs);
+ show_image(grayi, "gray");
+ show_image(origi, "orig");
+ cvWaitKey(0);
+ */
+ *net->seen += net->batch;
+ forward_network_gpu(net);
+
+ fill_gpu(imlayer.outputs*imlayer.batch, 0, imerror, 1);
+ copy_gpu(anet->inputs*anet->batch, imlayer.output_gpu, 1, anet->input_gpu, 1);
+ fill_gpu(anet->inputs*anet->batch, .95, anet->truth_gpu, 1);
+ anet->delta_gpu = imerror;
+ forward_network_gpu(anet);
+ backward_network_gpu(anet);
+
+ scal_gpu(imlayer.outputs*imlayer.batch, 1./100., net->layers[net->n-1].delta_gpu, 1);
+
+ scal_gpu(imlayer.outputs*imlayer.batch, 1, imerror, 1);
+
+ printf("realness %f\n", cuda_mag_array(imerror, imlayer.outputs*imlayer.batch));
+ printf("features %f\n", cuda_mag_array(net->layers[net->n-1].delta_gpu, imlayer.outputs*imlayer.batch));
+
+ axpy_gpu(imlayer.outputs*imlayer.batch, 1, imerror, 1, net->layers[net->n-1].delta_gpu, 1);
+
+ backward_network_gpu(net);
+
+
+ gloss += *net->cost /(net->subdivisions*net->batch);
+
+ for(k = 0; k < net->batch; ++k){
+ int index = j*net->batch + k;
+ copy_cpu(imlayer.outputs, imlayer.output + k*imlayer.outputs, 1, gray.X.vals[index], 1);
+ }
+ }
+ harmless_update_network_gpu(anet);
+
+ data merge = concat_data(train, gray);
+ //randomize_data(merge);
+ float aloss = train_network(anet, merge);
+
+ update_network_gpu(net);
+
+#ifdef OPENCV
+ if(display){
+ image im = float_to_image(anet->w, anet->h, anet->c, gray.X.vals[0]);
+ image im2 = float_to_image(anet->w, anet->h, anet->c, train.X.vals[0]);
+ show_image(im, "gen", 1);
+ show_image(im2, "train", 1);
+ }
+#endif
+ free_data(merge);
+ free_data(train);
+ free_data(gray);
+ if (aloss_avg < 0) aloss_avg = aloss;
+ aloss_avg = aloss_avg*.9 + aloss*.1;
+ gloss_avg = gloss_avg*.9 + gloss*.1;
+
+ printf("%d: gen: %f, adv: %f | gen_avg: %f, adv_avg: %f, %f rate, %lf seconds, %d images\n", i, gloss, aloss, gloss_avg, aloss_avg, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, abase, i);
+ save_weights(anet, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ sprintf(buff, "%s/%s.backup", backup_directory, abase);
+ save_weights(anet, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+#endif
+}
+
+/*
+ void train_lsd2(char *cfgfile, char *weightfile, char *acfgfile, char *aweightfile, int clear)
+ {
+#ifdef GPU
+char *train_images = "/home/pjreddie/data/coco/trainvalno5k.txt";
+char *backup_directory = "/home/pjreddie/backup/";
+srand(time(0));
+char *base = basecfg(cfgfile);
+printf("%s\n", base);
+network net = parse_network_cfg(cfgfile);
+if(weightfile){
+load_weights(&net, weightfile);
+}
+if(clear) *net->seen = 0;
+
+char *abase = basecfg(acfgfile);
+network anet = parse_network_cfg(acfgfile);
+if(aweightfile){
+load_weights(&anet, aweightfile);
+}
+if(clear) *anet->seen = 0;
+
+int i, j, k;
+layer imlayer = {0};
+for (i = 0; i < net->n; ++i) {
+if (net->layers[i].out_c == 3) {
+imlayer = net->layers[i];
+break;
+}
+}
+
+printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+int imgs = net->batch*net->subdivisions;
+i = *net->seen/imgs;
+data train, buffer;
+
+
+list *plist = get_paths(train_images);
+//int N = plist->size;
+char **paths = (char **)list_to_array(plist);
+
+load_args args = {0};
+args.w = net->w;
+args.h = net->h;
+args.paths = paths;
+args.n = imgs;
+args.m = plist->size;
+args.d = &buffer;
+
+args.min = net->min_crop;
+args.max = net->max_crop;
+args.angle = net->angle;
+args.aspect = net->aspect;
+args.exposure = net->exposure;
+args.saturation = net->saturation;
+args.hue = net->hue;
+args.size = net->w;
+args.type = CLASSIFICATION_DATA;
+args.classes = 1;
+char *ls[1] = {"coco"};
+args.labels = ls;
+
+pthread_t load_thread = load_data_in_thread(args);
+clock_t time;
+
+network_state gstate = {0};
+gstate.index = 0;
+gstate.net = net;
+int x_size = get_network_input_size(net)*net->batch;
+int y_size = 1*net->batch;
+gstate.input = cuda_make_array(0, x_size);
+gstate.truth = 0;
+gstate.delta = 0;
+gstate.train = 1;
+float *X = calloc(x_size, sizeof(float));
+float *y = calloc(y_size, sizeof(float));
+
+network_state astate = {0};
+astate.index = 0;
+astate.net = anet;
+int ay_size = get_network_output_size(anet)*anet->batch;
+astate.input = 0;
+astate.truth = 0;
+astate.delta = 0;
+astate.train = 1;
+
+float *imerror = cuda_make_array(0, imlayer.outputs);
+float *ones_gpu = cuda_make_array(0, ay_size);
+fill_gpu(ay_size, 1, ones_gpu, 1);
+
+float aloss_avg = -1;
+float gloss_avg = -1;
+
+//data generated = copy_data(train);
+
+while (get_current_batch(net) < net->max_batches) {
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ data generated = copy_data(train);
+ time=clock();
+ float gloss = 0;
+
+ for(j = 0; j < net->subdivisions; ++j){
+ get_next_batch(train, net->batch, j*net->batch, X, y);
+ cuda_push_array(gstate.input, X, x_size);
+ *net->seen += net->batch;
+ forward_network_gpu(net, gstate);
+
+ fill_gpu(imlayer.outputs, 0, imerror, 1);
+ astate.input = imlayer.output_gpu;
+ astate.delta = imerror;
+ astate.truth = ones_gpu;
+ forward_network_gpu(anet, astate);
+ backward_network_gpu(anet, astate);
+
+ scal_gpu(imlayer.outputs, 1, imerror, 1);
+ axpy_gpu(imlayer.outputs, 1, imerror, 1, imlayer.delta_gpu, 1);
+
+ backward_network_gpu(net, gstate);
+
+ printf("features %f\n", cuda_mag_array(imlayer.delta_gpu, imlayer.outputs));
+ printf("realness %f\n", cuda_mag_array(imerror, imlayer.outputs));
+
+ gloss += get_network_cost(net) /(net->subdivisions*net->batch);
+
+ cuda_pull_array(imlayer.output_gpu, imlayer.output, imlayer.outputs*imlayer.batch);
+ for(k = 0; k < net->batch; ++k){
+ int index = j*net->batch + k;
+ copy_cpu(imlayer.outputs, imlayer.output + k*imlayer.outputs, 1, generated.X.vals[index], 1);
+ generated.y.vals[index][0] = 0;
+ }
+ }
+ harmless_update_network_gpu(anet);
+
+ data merge = concat_data(train, generated);
+ randomize_data(merge);
+ float aloss = train_network(anet, merge);
+
+ update_network_gpu(net);
+ update_network_gpu(anet);
+ free_data(merge);
+ free_data(train);
+ free_data(generated);
+ if (aloss_avg < 0) aloss_avg = aloss;
+ aloss_avg = aloss_avg*.9 + aloss*.1;
+ gloss_avg = gloss_avg*.9 + gloss*.1;
+
+ printf("%d: gen: %f, adv: %f | gen_avg: %f, adv_avg: %f, %f rate, %lf seconds, %d images\n", i, gloss, aloss, gloss_avg, aloss_avg, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, abase, i);
+ save_weights(anet, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ sprintf(buff, "%s/%s.backup", backup_directory, abase);
+ save_weights(anet, buff);
+ }
+}
+char buff[256];
+sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+save_weights(net, buff);
+#endif
+}
+*/
+
+/*
+ void train_lsd(char *cfgfile, char *weightfile, int clear)
+ {
+ char *train_images = "/home/pjreddie/data/coco/trainvalno5k.txt";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ if(clear) *net->seen = 0;
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = net->batch*net->subdivisions;
+ int i = *net->seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+//int N = plist->size;
+char **paths = (char **)list_to_array(plist);
+
+load_args args = {0};
+args.w = net->w;
+args.h = net->h;
+args.paths = paths;
+args.n = imgs;
+args.m = plist->size;
+args.d = &buffer;
+
+args.min = net->min_crop;
+args.max = net->max_crop;
+args.angle = net->angle;
+args.aspect = net->aspect;
+args.exposure = net->exposure;
+args.saturation = net->saturation;
+args.hue = net->hue;
+args.size = net->w;
+args.type = CLASSIFICATION_DATA;
+args.classes = 1;
+char *ls[1] = {"coco"};
+args.labels = ls;
+
+pthread_t load_thread = load_data_in_thread(args);
+clock_t time;
+//while(i*imgs < N*120){
+while(get_current_batch(net) < net->max_batches){
+i += 1;
+time=clock();
+pthread_join(load_thread, 0);
+train = buffer;
+load_thread = load_data_in_thread(args);
+
+printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+time=clock();
+float loss = train_network(net, train);
+if (avg_loss < 0) avg_loss = loss;
+avg_loss = avg_loss*.9 + loss*.1;
+
+printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs);
+if(i%1000==0){
+char buff[256];
+sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+save_weights(net, buff);
+}
+if(i%100==0){
+char buff[256];
+sprintf(buff, "%s/%s.backup", backup_directory, base);
+save_weights(net, buff);
+}
+free_data(train);
+}
+char buff[256];
+sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+save_weights(net, buff);
+}
+*/
+
+void test_lsd(char *cfg, char *weights, char *filename, int gray)
+{
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ int i, imlayer = 0;
+
+ for (i = 0; i < net->n; ++i) {
+ if (net->layers[i].out_c == 3) {
+ imlayer = i;
+ printf("%d\n", i);
+ break;
+ }
+ }
+
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image resized = resize_min(im, net->w);
+ image crop = crop_image(resized, (resized.w - net->w)/2, (resized.h - net->h)/2, net->w, net->h);
+ if(gray) grayscale_image_3c(crop);
+
+ float *X = crop.data;
+ time=clock();
+ network_predict(net, X);
+ image out = get_network_image_layer(net, imlayer);
+ //yuv_to_rgb(out);
+ constrain_image(out);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ save_image(out, "out");
+ show_image(out, "out", 1);
+ show_image(crop, "crop", 0);
+
+ free_image(im);
+ free_image(resized);
+ free_image(crop);
+ if (filename) break;
+ }
+}
+
+
+void run_lsd(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ int clear = find_arg(argc, argv, "-clear");
+ int display = find_arg(argc, argv, "-display");
+ int batches = find_int_arg(argc, argv, "-b", 0);
+ char *file = find_char_arg(argc, argv, "-file", "/home/pjreddie/data/imagenet/imagenet1k.train.list");
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5] : 0;
+ char *acfg = argv[5];
+ char *aweights = (argc > 6) ? argv[6] : 0;
+ //if(0==strcmp(argv[2], "train")) train_lsd(cfg, weights, clear);
+ //else if(0==strcmp(argv[2], "train2")) train_lsd2(cfg, weights, acfg, aweights, clear);
+ //else if(0==strcmp(argv[2], "traincolor")) train_colorizer(cfg, weights, acfg, aweights, clear);
+ //else if(0==strcmp(argv[2], "train3")) train_lsd3(argv[3], argv[4], argv[5], argv[6], argv[7], argv[8], clear);
+ if(0==strcmp(argv[2], "traingan")) train_dcgan(cfg, weights, acfg, aweights, clear, display, file, batches);
+ else if(0==strcmp(argv[2], "trainprog")) train_prog(cfg, weights, acfg, aweights, clear, display, file, batches);
+ else if(0==strcmp(argv[2], "traincolor")) train_colorizer(cfg, weights, acfg, aweights, clear, display);
+ else if(0==strcmp(argv[2], "gan")) test_dcgan(cfg, weights);
+ else if(0==strcmp(argv[2], "inter")) inter_dcgan(cfg, weights);
+ else if(0==strcmp(argv[2], "test")) test_lsd(cfg, weights, filename, 0);
+ else if(0==strcmp(argv[2], "color")) test_lsd(cfg, weights, filename, 1);
+ /*
+ else if(0==strcmp(argv[2], "valid")) validate_lsd(cfg, weights);
+ */
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/nightmare.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/nightmare.c"
new file mode 100644
index 00000000..2978eb61
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/nightmare.c"
@@ -0,0 +1,414 @@
+#include "darknet.h"
+
+#include
+
+// ./darknet nightmare cfg/extractor.recon.cfg ~/trained/yolo-coco.conv frame6.png -reconstruct -iters 500 -i 3 -lambda .1 -rate .01 -smooth 2
+
+float abs_mean(float *x, int n)
+{
+ int i;
+ float sum = 0;
+ for (i = 0; i < n; ++i){
+ sum += fabs(x[i]);
+ }
+ return sum/n;
+}
+
+void calculate_loss(float *output, float *delta, int n, float thresh)
+{
+ int i;
+ float mean = mean_array(output, n);
+ float var = variance_array(output, n);
+ for(i = 0; i < n; ++i){
+ if(delta[i] > mean + thresh*sqrt(var)) delta[i] = output[i];
+ else delta[i] = 0;
+ }
+}
+
+void optimize_picture(network *net, image orig, int max_layer, float scale, float rate, float thresh, int norm)
+{
+ //scale_image(orig, 2);
+ //translate_image(orig, -1);
+ net->n = max_layer + 1;
+
+ int dx = rand()%16 - 8;
+ int dy = rand()%16 - 8;
+ int flip = rand()%2;
+
+ image crop = crop_image(orig, dx, dy, orig.w, orig.h);
+ image im = resize_image(crop, (int)(orig.w * scale), (int)(orig.h * scale));
+ if(flip) flip_image(im);
+
+ resize_network(net, im.w, im.h);
+ layer last = net->layers[net->n-1];
+ //net->layers[net->n - 1].activation = LINEAR;
+
+ image delta = make_image(im.w, im.h, im.c);
+
+#ifdef GPU
+ net->delta_gpu = cuda_make_array(delta.data, im.w*im.h*im.c);
+ copy_cpu(net->inputs, im.data, 1, net->input, 1);
+
+ forward_network_gpu(net);
+ copy_gpu(last.outputs, last.output_gpu, 1, last.delta_gpu, 1);
+
+ cuda_pull_array(last.delta_gpu, last.delta, last.outputs);
+ calculate_loss(last.delta, last.delta, last.outputs, thresh);
+ cuda_push_array(last.delta_gpu, last.delta, last.outputs);
+
+ backward_network_gpu(net);
+
+ cuda_pull_array(net->delta_gpu, delta.data, im.w*im.h*im.c);
+ cuda_free(net->delta_gpu);
+ net->delta_gpu = 0;
+#else
+ printf("\nnet: %d %d %d im: %d %d %d\n", net->w, net->h, net->inputs, im.w, im.h, im.c);
+ copy_cpu(net->inputs, im.data, 1, net->input, 1);
+ net->delta = delta.data;
+ forward_network(net);
+ copy_cpu(last.outputs, last.output, 1, last.delta, 1);
+ calculate_loss(last.output, last.delta, last.outputs, thresh);
+ backward_network(net);
+#endif
+
+ if(flip) flip_image(delta);
+ //normalize_array(delta.data, delta.w*delta.h*delta.c);
+ image resized = resize_image(delta, orig.w, orig.h);
+ image out = crop_image(resized, -dx, -dy, orig.w, orig.h);
+
+ /*
+ image g = grayscale_image(out);
+ free_image(out);
+ out = g;
+ */
+
+ //rate = rate / abs_mean(out.data, out.w*out.h*out.c);
+ image gray = make_image(out.w, out.h, out.c);
+ fill_image(gray, .5);
+ axpy_cpu(orig.w*orig.h*orig.c, -1, orig.data, 1, gray.data, 1);
+ axpy_cpu(orig.w*orig.h*orig.c, .1, gray.data, 1, out.data, 1);
+
+ if(norm) normalize_array(out.data, out.w*out.h*out.c);
+ axpy_cpu(orig.w*orig.h*orig.c, rate, out.data, 1, orig.data, 1);
+
+ /*
+ normalize_array(orig.data, orig.w*orig.h*orig.c);
+ scale_image(orig, sqrt(var));
+ translate_image(orig, mean);
+ */
+
+ //translate_image(orig, 1);
+ //scale_image(orig, .5);
+ //normalize_image(orig);
+
+ constrain_image(orig);
+
+ free_image(crop);
+ free_image(im);
+ free_image(delta);
+ free_image(resized);
+ free_image(out);
+
+}
+
+void smooth(image recon, image update, float lambda, int num)
+{
+ int i, j, k;
+ int ii, jj;
+ for(k = 0; k < recon.c; ++k){
+ for(j = 0; j < recon.h; ++j){
+ for(i = 0; i < recon.w; ++i){
+ int out_index = i + recon.w*(j + recon.h*k);
+ for(jj = j-num; jj <= j + num && jj < recon.h; ++jj){
+ if (jj < 0) continue;
+ for(ii = i-num; ii <= i + num && ii < recon.w; ++ii){
+ if (ii < 0) continue;
+ int in_index = ii + recon.w*(jj + recon.h*k);
+ update.data[out_index] += lambda * (recon.data[in_index] - recon.data[out_index]);
+ }
+ }
+ }
+ }
+ }
+}
+
+void reconstruct_picture(network *net, float *features, image recon, image update, float rate, float momentum, float lambda, int smooth_size, int iters)
+{
+ int iter = 0;
+ for (iter = 0; iter < iters; ++iter) {
+ image delta = make_image(recon.w, recon.h, recon.c);
+
+#ifdef GPU
+ layer l = get_network_output_layer(net);
+ cuda_push_array(net->input_gpu, recon.data, recon.w*recon.h*recon.c);
+ //cuda_push_array(net->truth_gpu, features, net->truths);
+ net->delta_gpu = cuda_make_array(delta.data, delta.w*delta.h*delta.c);
+
+ forward_network_gpu(net);
+ cuda_push_array(l.delta_gpu, features, l.outputs);
+ axpy_gpu(l.outputs, -1, l.output_gpu, 1, l.delta_gpu, 1);
+ backward_network_gpu(net);
+
+ cuda_pull_array(net->delta_gpu, delta.data, delta.w*delta.h*delta.c);
+
+ cuda_free(net->delta_gpu);
+#else
+ net->input = recon.data;
+ net->delta = delta.data;
+ net->truth = features;
+
+ forward_network(net);
+ backward_network(net);
+#endif
+
+ //normalize_array(delta.data, delta.w*delta.h*delta.c);
+ axpy_cpu(recon.w*recon.h*recon.c, 1, delta.data, 1, update.data, 1);
+ //smooth(recon, update, lambda, smooth_size);
+
+ axpy_cpu(recon.w*recon.h*recon.c, rate, update.data, 1, recon.data, 1);
+ scal_cpu(recon.w*recon.h*recon.c, momentum, update.data, 1);
+
+ float mag = mag_array(delta.data, recon.w*recon.h*recon.c);
+ printf("mag: %f\n", mag);
+ //scal_cpu(recon.w*recon.h*recon.c, 600/mag, recon.data, 1);
+
+ constrain_image(recon);
+ free_image(delta);
+ }
+}
+
+/*
+void run_lsd(int argc, char **argv)
+{
+ srand(0);
+ if(argc < 3){
+ fprintf(stderr, "usage: %s %s [cfg] [weights] [image] [options! (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[2];
+ char *weights = argv[3];
+ char *input = argv[4];
+
+ int norm = find_int_arg(argc, argv, "-norm", 1);
+ int rounds = find_int_arg(argc, argv, "-rounds", 1);
+ int iters = find_int_arg(argc, argv, "-iters", 10);
+ float rate = find_float_arg(argc, argv, "-rate", .04);
+ float momentum = find_float_arg(argc, argv, "-momentum", .9);
+ float lambda = find_float_arg(argc, argv, "-lambda", .01);
+ char *prefix = find_char_arg(argc, argv, "-prefix", 0);
+ int reconstruct = find_arg(argc, argv, "-reconstruct");
+ int smooth_size = find_int_arg(argc, argv, "-smooth", 1);
+
+ network net = parse_network_cfg(cfg);
+ load_weights(&net, weights);
+ char *cfgbase = basecfg(cfg);
+ char *imbase = basecfg(input);
+
+ set_batch_network(&net, 1);
+ image im = load_image_color(input, 0, 0);
+
+ float *features = 0;
+ image update;
+ if (reconstruct){
+ im = letterbox_image(im, net->w, net->h);
+
+ int zz = 0;
+ network_predict(net, im.data);
+ image out_im = get_network_image(net);
+ image crop = crop_image(out_im, zz, zz, out_im.w-2*zz, out_im.h-2*zz);
+ //flip_image(crop);
+ image f_im = resize_image(crop, out_im.w, out_im.h);
+ free_image(crop);
+ printf("%d features\n", out_im.w*out_im.h*out_im.c);
+
+
+ im = resize_image(im, im.w, im.h);
+ f_im = resize_image(f_im, f_im.w, f_im.h);
+ features = f_im.data;
+
+ int i;
+ for(i = 0; i < 14*14*512; ++i){
+ features[i] += rand_uniform(-.19, .19);
+ }
+
+ free_image(im);
+ im = make_random_image(im.w, im.h, im.c);
+ update = make_image(im.w, im.h, im.c);
+
+ }
+
+ int e;
+ int n;
+ for(e = 0; e < rounds; ++e){
+ fprintf(stderr, "Iteration: ");
+ fflush(stderr);
+ for(n = 0; n < iters; ++n){
+ fprintf(stderr, "%d, ", n);
+ fflush(stderr);
+ if(reconstruct){
+ reconstruct_picture(net, features, im, update, rate, momentum, lambda, smooth_size, 1);
+ //if ((n+1)%30 == 0) rate *= .5;
+ show_image(im, "reconstruction");
+#ifdef OPENCV
+ cvWaitKey(10);
+#endif
+ }else{
+ int layer = max_layer + rand()%range - range/2;
+ int octave = rand()%octaves;
+ optimize_picture(&net, im, layer, 1/pow(1.33333333, octave), rate, thresh, norm);
+ }
+ }
+ fprintf(stderr, "done\n");
+ char buff[256];
+ if (prefix){
+ sprintf(buff, "%s/%s_%s_%d_%06d",prefix, imbase, cfgbase, max_layer, e);
+ }else{
+ sprintf(buff, "%s_%s_%d_%06d",imbase, cfgbase, max_layer, e);
+ }
+ printf("%d %s\n", e, buff);
+ save_image(im, buff);
+ //show_image(im, buff);
+ //cvWaitKey(0);
+
+ if(rotate){
+ image rot = rotate_image(im, rotate);
+ free_image(im);
+ im = rot;
+ }
+ image crop = crop_image(im, im.w * (1. - zoom)/2., im.h * (1.-zoom)/2., im.w*zoom, im.h*zoom);
+ image resized = resize_image(crop, im.w, im.h);
+ free_image(im);
+ free_image(crop);
+ im = resized;
+ }
+}
+*/
+
+void run_nightmare(int argc, char **argv)
+{
+ srand(0);
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [cfg] [weights] [image] [layer] [options! (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[2];
+ char *weights = argv[3];
+ char *input = argv[4];
+ int max_layer = atoi(argv[5]);
+
+ int range = find_int_arg(argc, argv, "-range", 1);
+ int norm = find_int_arg(argc, argv, "-norm", 1);
+ int rounds = find_int_arg(argc, argv, "-rounds", 1);
+ int iters = find_int_arg(argc, argv, "-iters", 10);
+ int octaves = find_int_arg(argc, argv, "-octaves", 4);
+ float zoom = find_float_arg(argc, argv, "-zoom", 1.);
+ float rate = find_float_arg(argc, argv, "-rate", .04);
+ float thresh = find_float_arg(argc, argv, "-thresh", 1.);
+ float rotate = find_float_arg(argc, argv, "-rotate", 0);
+ float momentum = find_float_arg(argc, argv, "-momentum", .9);
+ float lambda = find_float_arg(argc, argv, "-lambda", .01);
+ char *prefix = find_char_arg(argc, argv, "-prefix", 0);
+ int reconstruct = find_arg(argc, argv, "-reconstruct");
+ int smooth_size = find_int_arg(argc, argv, "-smooth", 1);
+
+ network *net = load_network(cfg, weights, 0);
+ char *cfgbase = basecfg(cfg);
+ char *imbase = basecfg(input);
+
+ set_batch_network(net, 1);
+ image im = load_image_color(input, 0, 0);
+ if(0){
+ float scale = 1;
+ if(im.w > 512 || im.h > 512){
+ if(im.w > im.h) scale = 512.0/im.w;
+ else scale = 512.0/im.h;
+ }
+ image resized = resize_image(im, scale*im.w, scale*im.h);
+ free_image(im);
+ im = resized;
+ }
+ //im = letterbox_image(im, net->w, net->h);
+
+ float *features = 0;
+ image update;
+ if (reconstruct){
+ net->n = max_layer;
+ im = letterbox_image(im, net->w, net->h);
+ //resize_network(&net, im.w, im.h);
+
+ network_predict(net, im.data);
+ if(net->layers[net->n-1].type == REGION){
+ printf("region!\n");
+ zero_objectness(net->layers[net->n-1]);
+ }
+ image out_im = copy_image(get_network_image(net));
+ /*
+ image crop = crop_image(out_im, zz, zz, out_im.w-2*zz, out_im.h-2*zz);
+ //flip_image(crop);
+ image f_im = resize_image(crop, out_im.w, out_im.h);
+ free_image(crop);
+ */
+ printf("%d features\n", out_im.w*out_im.h*out_im.c);
+
+ features = out_im.data;
+
+ /*
+ int i;
+ for(i = 0; i < 14*14*512; ++i){
+ //features[i] += rand_uniform(-.19, .19);
+ }
+ free_image(im);
+ im = make_random_image(im.w, im.h, im.c);
+ */
+ update = make_image(im.w, im.h, im.c);
+ }
+
+ int e;
+ int n;
+ for(e = 0; e < rounds; ++e){
+ fprintf(stderr, "Iteration: ");
+ fflush(stderr);
+ for(n = 0; n < iters; ++n){
+ fprintf(stderr, "%d, ", n);
+ fflush(stderr);
+ if(reconstruct){
+ reconstruct_picture(net, features, im, update, rate, momentum, lambda, smooth_size, 1);
+ //if ((n+1)%30 == 0) rate *= .5;
+ show_image(im, "reconstruction", 10);
+ }else{
+ int layer = max_layer + rand()%range - range/2;
+ int octave = rand()%octaves;
+ optimize_picture(net, im, layer, 1/pow(1.33333333, octave), rate, thresh, norm);
+ }
+ }
+ fprintf(stderr, "done\n");
+ if(0){
+ image g = grayscale_image(im);
+ free_image(im);
+ im = g;
+ }
+ char buff[256];
+ if (prefix){
+ sprintf(buff, "%s/%s_%s_%d_%06d",prefix, imbase, cfgbase, max_layer, e);
+ }else{
+ sprintf(buff, "%s_%s_%d_%06d",imbase, cfgbase, max_layer, e);
+ }
+ printf("%d %s\n", e, buff);
+ save_image(im, buff);
+ //show_image(im, buff, 0);
+
+ if(rotate){
+ image rot = rotate_image(im, rotate);
+ free_image(im);
+ im = rot;
+ }
+ image crop = crop_image(im, im.w * (1. - zoom)/2., im.h * (1.-zoom)/2., im.w*zoom, im.h*zoom);
+ image resized = resize_image(crop, im.w, im.h);
+ free_image(im);
+ free_image(crop);
+ im = resized;
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/regressor.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/regressor.c"
new file mode 100644
index 00000000..20cec0fa
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/regressor.c"
@@ -0,0 +1,240 @@
+#include "darknet.h"
+#include
+#include
+
+void train_regressor(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear)
+{
+ int i;
+
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ printf("%d\n", ngpus);
+ network **nets = calloc(ngpus, sizeof(network*));
+
+ srand(time(0));
+ int seed = rand();
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ srand(time(0));
+ network *net = nets[0];
+
+ int imgs = net->batch * net->subdivisions * ngpus;
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ list *options = read_data_cfg(datacfg);
+
+ char *backup_directory = option_find_str(options, "backup", "/backup/");
+ char *train_list = option_find_str(options, "train", "data/train.list");
+ int classes = option_find_int(options, "classes", 1);
+
+ list *plist = get_paths(train_list);
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ int N = plist->size;
+ clock_t time;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.threads = 32;
+ args.classes = classes;
+
+ args.min = net->min_ratio*net->w;
+ args.max = net->max_ratio*net->w;
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+ args.size = net->w;
+
+ args.paths = paths;
+ args.n = imgs;
+ args.m = N;
+ args.type = REGRESSION_DATA;
+
+ data train;
+ data buffer;
+ pthread_t load_thread;
+ args.d = &buffer;
+ load_thread = load_data(args);
+
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ time=clock();
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+ time=clock();
+
+ float loss = 0;
+#ifdef GPU
+ if(ngpus == 1){
+ loss = train_network(net, train);
+ } else {
+ loss = train_networks(nets, ngpus, train, 4);
+ }
+#else
+ loss = train_network(net, train);
+#endif
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), sec(clock()-time), *net->seen);
+ free_data(train);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ free_network(net);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void predict_regressor(char *cfgfile, char *weightfile, char *filename)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image sized = letterbox_image(im, net->w, net->h);
+
+ float *X = sized.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+ printf("Predicted: %f\n", predictions[0]);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ free_image(im);
+ free_image(sized);
+ if (filename) break;
+ }
+}
+
+
+void demo_regressor(char *datacfg, char *cfgfile, char *weightfile, int cam_index, const char *filename)
+{
+#ifdef OPENCV
+ printf("Regressor Demo\n");
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+
+ srand(2222222);
+ list *options = read_data_cfg(datacfg);
+ int classes = option_find_int(options, "classes", 1);
+ char *name_list = option_find_str(options, "names", 0);
+ char **names = get_labels(name_list);
+
+ void * cap = open_video_stream(filename, cam_index, 0,0,0);
+ if(!cap) error("Couldn't connect to webcam.\n");
+ float fps = 0;
+
+ while(1){
+ struct timeval tval_before, tval_after, tval_result;
+ gettimeofday(&tval_before, NULL);
+
+ image in = get_image_from_stream(cap);
+ image crop = center_crop_image(in, net->w, net->h);
+ grayscale_image_3c(crop);
+
+ float *predictions = network_predict(net, crop.data);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+ printf("\nFPS:%.0f\n",fps);
+
+ int i;
+ for(i = 0; i < classes; ++i){
+ printf("%s: %f\n", names[i], predictions[i]);
+ }
+
+ show_image(crop, "Regressor", 10);
+ free_image(in);
+ free_image(crop);
+
+ gettimeofday(&tval_after, NULL);
+ timersub(&tval_after, &tval_before, &tval_result);
+ float curr = 1000000.f/((long int)tval_result.tv_usec);
+ fps = .9*fps + .1*curr;
+ }
+#endif
+}
+
+
+void run_regressor(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ int *gpus = 0;
+ int gpu = 0;
+ int ngpus = 0;
+ if(gpu_list){
+ printf("%s\n", gpu_list);
+ int len = strlen(gpu_list);
+ ngpus = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (gpu_list[i] == ',') ++ngpus;
+ }
+ gpus = calloc(ngpus, sizeof(int));
+ for(i = 0; i < ngpus; ++i){
+ gpus[i] = atoi(gpu_list);
+ gpu_list = strchr(gpu_list, ',')+1;
+ }
+ } else {
+ gpu = gpu_index;
+ gpus = &gpu;
+ ngpus = 1;
+ }
+
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int clear = find_arg(argc, argv, "-clear");
+ char *data = argv[3];
+ char *cfg = argv[4];
+ char *weights = (argc > 5) ? argv[5] : 0;
+ char *filename = (argc > 6) ? argv[6]: 0;
+ if(0==strcmp(argv[2], "test")) predict_regressor(data, cfg, weights);
+ else if(0==strcmp(argv[2], "train")) train_regressor(data, cfg, weights, gpus, ngpus, clear);
+ else if(0==strcmp(argv[2], "demo")) demo_regressor(data, cfg, weights, cam_index, filename);
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/rnn.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/rnn.c"
new file mode 100644
index 00000000..5d49eaae
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/rnn.c"
@@ -0,0 +1,542 @@
+#include "darknet.h"
+
+#include
+
+typedef struct {
+ float *x;
+ float *y;
+} float_pair;
+
+unsigned char **load_files(char *filename, int *n)
+{
+ list *paths = get_paths(filename);
+ *n = paths->size;
+ unsigned char **contents = calloc(*n, sizeof(char *));
+ int i;
+ node *x = paths->front;
+ for(i = 0; i < *n; ++i){
+ contents[i] = read_file((char *)x->val);
+ x = x->next;
+ }
+ return contents;
+}
+
+int *read_tokenized_data(char *filename, size_t *read)
+{
+ size_t size = 512;
+ size_t count = 0;
+ FILE *fp = fopen(filename, "r");
+ int *d = calloc(size, sizeof(int));
+ int n, one;
+ one = fscanf(fp, "%d", &n);
+ while(one == 1){
+ ++count;
+ if(count > size){
+ size = size*2;
+ d = realloc(d, size*sizeof(int));
+ }
+ d[count-1] = n;
+ one = fscanf(fp, "%d", &n);
+ }
+ fclose(fp);
+ d = realloc(d, count*sizeof(int));
+ *read = count;
+ return d;
+}
+
+char **read_tokens(char *filename, size_t *read)
+{
+ size_t size = 512;
+ size_t count = 0;
+ FILE *fp = fopen(filename, "r");
+ char **d = calloc(size, sizeof(char *));
+ char *line;
+ while((line=fgetl(fp)) != 0){
+ ++count;
+ if(count > size){
+ size = size*2;
+ d = realloc(d, size*sizeof(char *));
+ }
+ if(0==strcmp(line, "")) line = "\n";
+ d[count-1] = line;
+ }
+ fclose(fp);
+ d = realloc(d, count*sizeof(char *));
+ *read = count;
+ return d;
+}
+
+
+float_pair get_rnn_token_data(int *tokens, size_t *offsets, int characters, size_t len, int batch, int steps)
+{
+ float *x = calloc(batch * steps * characters, sizeof(float));
+ float *y = calloc(batch * steps * characters, sizeof(float));
+ int i,j;
+ for(i = 0; i < batch; ++i){
+ for(j = 0; j < steps; ++j){
+ int curr = tokens[(offsets[i])%len];
+ int next = tokens[(offsets[i] + 1)%len];
+
+ x[(j*batch + i)*characters + curr] = 1;
+ y[(j*batch + i)*characters + next] = 1;
+
+ offsets[i] = (offsets[i] + 1) % len;
+
+ if(curr >= characters || curr < 0 || next >= characters || next < 0){
+ error("Bad char");
+ }
+ }
+ }
+ float_pair p;
+ p.x = x;
+ p.y = y;
+ return p;
+}
+
+float_pair get_seq2seq_data(char **source, char **dest, int n, int characters, size_t len, int batch, int steps)
+{
+ int i,j;
+ float *x = calloc(batch * steps * characters, sizeof(float));
+ float *y = calloc(batch * steps * characters, sizeof(float));
+ for(i = 0; i < batch; ++i){
+ int index = rand()%n;
+ //int slen = strlen(source[index]);
+ //int dlen = strlen(dest[index]);
+ for(j = 0; j < steps; ++j){
+ unsigned char curr = source[index][j];
+ unsigned char next = dest[index][j];
+
+ x[(j*batch + i)*characters + curr] = 1;
+ y[(j*batch + i)*characters + next] = 1;
+
+ if(curr > 255 || curr <= 0 || next > 255 || next <= 0){
+ /*text[(index+j+2)%len] = 0;
+ printf("%ld %d %d %d %d\n", index, j, len, (int)text[index+j], (int)text[index+j+1]);
+ printf("%s", text+index);
+ */
+ error("Bad char");
+ }
+ }
+ }
+ float_pair p;
+ p.x = x;
+ p.y = y;
+ return p;
+}
+
+float_pair get_rnn_data(unsigned char *text, size_t *offsets, int characters, size_t len, int batch, int steps)
+{
+ float *x = calloc(batch * steps * characters, sizeof(float));
+ float *y = calloc(batch * steps * characters, sizeof(float));
+ int i,j;
+ for(i = 0; i < batch; ++i){
+ for(j = 0; j < steps; ++j){
+ unsigned char curr = text[(offsets[i])%len];
+ unsigned char next = text[(offsets[i] + 1)%len];
+
+ x[(j*batch + i)*characters + curr] = 1;
+ y[(j*batch + i)*characters + next] = 1;
+
+ offsets[i] = (offsets[i] + 1) % len;
+
+ if(curr > 255 || curr <= 0 || next > 255 || next <= 0){
+ /*text[(index+j+2)%len] = 0;
+ printf("%ld %d %d %d %d\n", index, j, len, (int)text[index+j], (int)text[index+j+1]);
+ printf("%s", text+index);
+ */
+ error("Bad char");
+ }
+ }
+ }
+ float_pair p;
+ p.x = x;
+ p.y = y;
+ return p;
+}
+
+void train_char_rnn(char *cfgfile, char *weightfile, char *filename, int clear, int tokenized)
+{
+ srand(time(0));
+ unsigned char *text = 0;
+ int *tokens = 0;
+ size_t size;
+ if(tokenized){
+ tokens = read_tokenized_data(filename, &size);
+ } else {
+ text = read_file(filename);
+ size = strlen((const char*)text);
+ }
+
+ char *backup_directory = "/home/pjreddie/backup/";
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+ float avg_loss = -1;
+ network *net = load_network(cfgfile, weightfile, clear);
+
+ int inputs = net->inputs;
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g, Inputs: %d %d %d\n", net->learning_rate, net->momentum, net->decay, inputs, net->batch, net->time_steps);
+ int batch = net->batch;
+ int steps = net->time_steps;
+ if(clear) *net->seen = 0;
+ int i = (*net->seen)/net->batch;
+
+ int streams = batch/steps;
+ size_t *offsets = calloc(streams, sizeof(size_t));
+ int j;
+ for(j = 0; j < streams; ++j){
+ offsets[j] = rand_size_t()%size;
+ }
+
+ clock_t time;
+ while(get_current_batch(net) < net->max_batches){
+ i += 1;
+ time=clock();
+ float_pair p;
+ if(tokenized){
+ p = get_rnn_token_data(tokens, offsets, inputs, size, streams, steps);
+ }else{
+ p = get_rnn_data(text, offsets, inputs, size, streams, steps);
+ }
+
+ copy_cpu(net->inputs*net->batch, p.x, 1, net->input, 1);
+ copy_cpu(net->truths*net->batch, p.y, 1, net->truth, 1);
+ float loss = train_network_datum(net) / (batch);
+ free(p.x);
+ free(p.y);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ size_t chars = get_current_batch(net)*batch;
+ fprintf(stderr, "%d: %f, %f avg, %f rate, %lf seconds, %f epochs\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), (float) chars/size);
+
+ for(j = 0; j < streams; ++j){
+ //printf("%d\n", j);
+ if(rand()%64 == 0){
+ //fprintf(stderr, "Reset\n");
+ offsets[j] = rand_size_t()%size;
+ reset_network_state(net, j);
+ }
+ }
+
+ if(i%10000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+void print_symbol(int n, char **tokens){
+ if(tokens){
+ printf("%s ", tokens[n]);
+ } else {
+ printf("%c", n);
+ }
+}
+
+void test_char_rnn(char *cfgfile, char *weightfile, int num, char *seed, float temp, int rseed, char *token_file)
+{
+ char **tokens = 0;
+ if(token_file){
+ size_t n;
+ tokens = read_tokens(token_file, &n);
+ }
+
+ srand(rseed);
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ int inputs = net->inputs;
+
+ int i, j;
+ for(i = 0; i < net->n; ++i) net->layers[i].temperature = temp;
+ int c = 0;
+ int len = strlen(seed);
+ float *input = calloc(inputs, sizeof(float));
+
+ /*
+ fill_cpu(inputs, 0, input, 1);
+ for(i = 0; i < 10; ++i){
+ network_predict(net, input);
+ }
+ fill_cpu(inputs, 0, input, 1);
+ */
+
+ for(i = 0; i < len-1; ++i){
+ c = seed[i];
+ input[c] = 1;
+ network_predict(net, input);
+ input[c] = 0;
+ print_symbol(c, tokens);
+ }
+ if(len) c = seed[len-1];
+ print_symbol(c, tokens);
+ for(i = 0; i < num; ++i){
+ input[c] = 1;
+ float *out = network_predict(net, input);
+ input[c] = 0;
+ for(j = 32; j < 127; ++j){
+ //printf("%d %c %f\n",j, j, out[j]);
+ }
+ for(j = 0; j < inputs; ++j){
+ if (out[j] < .0001) out[j] = 0;
+ }
+ c = sample_array(out, inputs);
+ print_symbol(c, tokens);
+ }
+ printf("\n");
+}
+
+void test_tactic_rnn_multi(char *cfgfile, char *weightfile, int num, float temp, int rseed, char *token_file)
+{
+ char **tokens = 0;
+ if(token_file){
+ size_t n;
+ tokens = read_tokens(token_file, &n);
+ }
+
+ srand(rseed);
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ int inputs = net->inputs;
+
+ int i, j;
+ for(i = 0; i < net->n; ++i) net->layers[i].temperature = temp;
+ int c = 0;
+ float *input = calloc(inputs, sizeof(float));
+ float *out = 0;
+
+ while(1){
+ reset_network_state(net, 0);
+ while((c = getc(stdin)) != EOF && c != 0){
+ input[c] = 1;
+ out = network_predict(net, input);
+ input[c] = 0;
+ }
+ for(i = 0; i < num; ++i){
+ for(j = 0; j < inputs; ++j){
+ if (out[j] < .0001) out[j] = 0;
+ }
+ int next = sample_array(out, inputs);
+ if(c == '.' && next == '\n') break;
+ c = next;
+ print_symbol(c, tokens);
+
+ input[c] = 1;
+ out = network_predict(net, input);
+ input[c] = 0;
+ }
+ printf("\n");
+ }
+}
+
+void test_tactic_rnn(char *cfgfile, char *weightfile, int num, float temp, int rseed, char *token_file)
+{
+ char **tokens = 0;
+ if(token_file){
+ size_t n;
+ tokens = read_tokens(token_file, &n);
+ }
+
+ srand(rseed);
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ int inputs = net->inputs;
+
+ int i, j;
+ for(i = 0; i < net->n; ++i) net->layers[i].temperature = temp;
+ int c = 0;
+ float *input = calloc(inputs, sizeof(float));
+ float *out = 0;
+
+ while((c = getc(stdin)) != EOF){
+ input[c] = 1;
+ out = network_predict(net, input);
+ input[c] = 0;
+ }
+ for(i = 0; i < num; ++i){
+ for(j = 0; j < inputs; ++j){
+ if (out[j] < .0001) out[j] = 0;
+ }
+ int next = sample_array(out, inputs);
+ if(c == '.' && next == '\n') break;
+ c = next;
+ print_symbol(c, tokens);
+
+ input[c] = 1;
+ out = network_predict(net, input);
+ input[c] = 0;
+ }
+ printf("\n");
+}
+
+void valid_tactic_rnn(char *cfgfile, char *weightfile, char *seed)
+{
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ int inputs = net->inputs;
+
+ int count = 0;
+ int words = 1;
+ int c;
+ int len = strlen(seed);
+ float *input = calloc(inputs, sizeof(float));
+ int i;
+ for(i = 0; i < len; ++i){
+ c = seed[i];
+ input[(int)c] = 1;
+ network_predict(net, input);
+ input[(int)c] = 0;
+ }
+ float sum = 0;
+ c = getc(stdin);
+ float log2 = log(2);
+ int in = 0;
+ while(c != EOF){
+ int next = getc(stdin);
+ if(next == EOF) break;
+ if(next < 0 || next >= 255) error("Out of range character");
+
+ input[c] = 1;
+ float *out = network_predict(net, input);
+ input[c] = 0;
+
+ if(c == '.' && next == '\n') in = 0;
+ if(!in) {
+ if(c == '>' && next == '>'){
+ in = 1;
+ ++words;
+ }
+ c = next;
+ continue;
+ }
+ ++count;
+ sum += log(out[next])/log2;
+ c = next;
+ printf("%d %d Perplexity: %4.4f Word Perplexity: %4.4f\n", count, words, pow(2, -sum/count), pow(2, -sum/words));
+ }
+}
+
+void valid_char_rnn(char *cfgfile, char *weightfile, char *seed)
+{
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ int inputs = net->inputs;
+
+ int count = 0;
+ int words = 1;
+ int c;
+ int len = strlen(seed);
+ float *input = calloc(inputs, sizeof(float));
+ int i;
+ for(i = 0; i < len; ++i){
+ c = seed[i];
+ input[(int)c] = 1;
+ network_predict(net, input);
+ input[(int)c] = 0;
+ }
+ float sum = 0;
+ c = getc(stdin);
+ float log2 = log(2);
+ while(c != EOF){
+ int next = getc(stdin);
+ if(next == EOF) break;
+ if(next < 0 || next >= 255) error("Out of range character");
+ ++count;
+ if(next == ' ' || next == '\n' || next == '\t') ++words;
+ input[c] = 1;
+ float *out = network_predict(net, input);
+ input[c] = 0;
+ sum += log(out[next])/log2;
+ c = next;
+ printf("%d BPC: %4.4f Perplexity: %4.4f Word Perplexity: %4.4f\n", count, -sum/count, pow(2, -sum/count), pow(2, -sum/words));
+ }
+}
+
+void vec_char_rnn(char *cfgfile, char *weightfile, char *seed)
+{
+ char *base = basecfg(cfgfile);
+ fprintf(stderr, "%s\n", base);
+
+ network *net = load_network(cfgfile, weightfile, 0);
+ int inputs = net->inputs;
+
+ int c;
+ int seed_len = strlen(seed);
+ float *input = calloc(inputs, sizeof(float));
+ int i;
+ char *line;
+ while((line=fgetl(stdin)) != 0){
+ reset_network_state(net, 0);
+ for(i = 0; i < seed_len; ++i){
+ c = seed[i];
+ input[(int)c] = 1;
+ network_predict(net, input);
+ input[(int)c] = 0;
+ }
+ strip(line);
+ int str_len = strlen(line);
+ for(i = 0; i < str_len; ++i){
+ c = line[i];
+ input[(int)c] = 1;
+ network_predict(net, input);
+ input[(int)c] = 0;
+ }
+ c = ' ';
+ input[(int)c] = 1;
+ network_predict(net, input);
+ input[(int)c] = 0;
+
+ layer l = net->layers[0];
+ #ifdef GPU
+ cuda_pull_array(l.output_gpu, l.output, l.outputs);
+ #endif
+ printf("%s", line);
+ for(i = 0; i < l.outputs; ++i){
+ printf(",%g", l.output[i]);
+ }
+ printf("\n");
+ }
+}
+
+void run_char_rnn(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+ char *filename = find_char_arg(argc, argv, "-file", "data/shakespeare.txt");
+ char *seed = find_char_arg(argc, argv, "-seed", "\n\n");
+ int len = find_int_arg(argc, argv, "-len", 1000);
+ float temp = find_float_arg(argc, argv, "-temp", .7);
+ int rseed = find_int_arg(argc, argv, "-srand", time(0));
+ int clear = find_arg(argc, argv, "-clear");
+ int tokenized = find_arg(argc, argv, "-tokenized");
+ char *tokens = find_char_arg(argc, argv, "-tokens", 0);
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ if(0==strcmp(argv[2], "train")) train_char_rnn(cfg, weights, filename, clear, tokenized);
+ else if(0==strcmp(argv[2], "valid")) valid_char_rnn(cfg, weights, seed);
+ else if(0==strcmp(argv[2], "validtactic")) valid_tactic_rnn(cfg, weights, seed);
+ else if(0==strcmp(argv[2], "vec")) vec_char_rnn(cfg, weights, seed);
+ else if(0==strcmp(argv[2], "generate")) test_char_rnn(cfg, weights, len, seed, temp, rseed, tokens);
+ else if(0==strcmp(argv[2], "generatetactic")) test_tactic_rnn(cfg, weights, len, temp, rseed, tokens);
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/rnn_vid.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/rnn_vid.c"
new file mode 100644
index 00000000..e8879235
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/rnn_vid.c"
@@ -0,0 +1,208 @@
+#include "darknet.h"
+
+#ifdef OPENCV
+image get_image_from_stream(CvCapture *cap);
+image ipl_to_image(IplImage* src);
+
+void reconstruct_picture(network net, float *features, image recon, image update, float rate, float momentum, float lambda, int smooth_size, int iters);
+
+
+typedef struct {
+ float *x;
+ float *y;
+} float_pair;
+
+float_pair get_rnn_vid_data(network net, char **files, int n, int batch, int steps)
+{
+ int b;
+ assert(net.batch == steps + 1);
+ image out_im = get_network_image(net);
+ int output_size = out_im.w*out_im.h*out_im.c;
+ printf("%d %d %d\n", out_im.w, out_im.h, out_im.c);
+ float *feats = calloc(net.batch*batch*output_size, sizeof(float));
+ for(b = 0; b < batch; ++b){
+ int input_size = net.w*net.h*net.c;
+ float *input = calloc(input_size*net.batch, sizeof(float));
+ char *filename = files[rand()%n];
+ CvCapture *cap = cvCaptureFromFile(filename);
+ int frames = cvGetCaptureProperty(cap, CV_CAP_PROP_FRAME_COUNT);
+ int index = rand() % (frames - steps - 2);
+ if (frames < (steps + 4)){
+ --b;
+ free(input);
+ continue;
+ }
+
+ printf("frames: %d, index: %d\n", frames, index);
+ cvSetCaptureProperty(cap, CV_CAP_PROP_POS_FRAMES, index);
+
+ int i;
+ for(i = 0; i < net.batch; ++i){
+ IplImage* src = cvQueryFrame(cap);
+ image im = ipl_to_image(src);
+ rgbgr_image(im);
+ image re = resize_image(im, net.w, net.h);
+ //show_image(re, "loaded");
+ //cvWaitKey(10);
+ memcpy(input + i*input_size, re.data, input_size*sizeof(float));
+ free_image(im);
+ free_image(re);
+ }
+ float *output = network_predict(net, input);
+
+ free(input);
+
+ for(i = 0; i < net.batch; ++i){
+ memcpy(feats + (b + i*batch)*output_size, output + i*output_size, output_size*sizeof(float));
+ }
+
+ cvReleaseCapture(&cap);
+ }
+
+ //printf("%d %d %d\n", out_im.w, out_im.h, out_im.c);
+ float_pair p = {0};
+ p.x = feats;
+ p.y = feats + output_size*batch; //+ out_im.w*out_im.h*out_im.c;
+
+ return p;
+}
+
+
+void train_vid_rnn(char *cfgfile, char *weightfile)
+{
+ char *train_videos = "data/vid/train.txt";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
+ int imgs = net.batch*net.subdivisions;
+ int i = *net.seen/imgs;
+
+ list *plist = get_paths(train_videos);
+ int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+ clock_t time;
+ int steps = net.time_steps;
+ int batch = net.batch / net.time_steps;
+
+ network extractor = parse_network_cfg("cfg/extractor.cfg");
+ load_weights(&extractor, "/home/pjreddie/trained/yolo-coco.conv");
+
+ while(get_current_batch(net) < net.max_batches){
+ i += 1;
+ time=clock();
+ float_pair p = get_rnn_vid_data(extractor, paths, N, batch, steps);
+
+ copy_cpu(net.inputs*net.batch, p.x, 1, net.input, 1);
+ copy_cpu(net.truths*net.batch, p.y, 1, net.truth, 1);
+ float loss = train_network_datum(net) / (net.batch);
+
+
+ free(p.x);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ fprintf(stderr, "%d: %f, %f avg, %f rate, %lf seconds\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time));
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ if(i%10==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+
+image save_reconstruction(network net, image *init, float *feat, char *name, int i)
+{
+ image recon;
+ if (init) {
+ recon = copy_image(*init);
+ } else {
+ recon = make_random_image(net.w, net.h, 3);
+ }
+
+ image update = make_image(net.w, net.h, 3);
+ reconstruct_picture(net, feat, recon, update, .01, .9, .1, 2, 50);
+ char buff[256];
+ sprintf(buff, "%s%d", name, i);
+ save_image(recon, buff);
+ free_image(update);
+ return recon;
+}
+
+void generate_vid_rnn(char *cfgfile, char *weightfile)
+{
+ network extractor = parse_network_cfg("cfg/extractor.recon.cfg");
+ load_weights(&extractor, "/home/pjreddie/trained/yolo-coco.conv");
+
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ set_batch_network(&extractor, 1);
+ set_batch_network(&net, 1);
+
+ int i;
+ CvCapture *cap = cvCaptureFromFile("/extra/vid/ILSVRC2015/Data/VID/snippets/val/ILSVRC2015_val_00007030.mp4");
+ float *feat;
+ float *next;
+ image last;
+ for(i = 0; i < 25; ++i){
+ image im = get_image_from_stream(cap);
+ image re = resize_image(im, extractor.w, extractor.h);
+ feat = network_predict(extractor, re.data);
+ if(i > 0){
+ printf("%f %f\n", mean_array(feat, 14*14*512), variance_array(feat, 14*14*512));
+ printf("%f %f\n", mean_array(next, 14*14*512), variance_array(next, 14*14*512));
+ printf("%f\n", mse_array(feat, 14*14*512));
+ axpy_cpu(14*14*512, -1, feat, 1, next, 1);
+ printf("%f\n", mse_array(next, 14*14*512));
+ }
+ next = network_predict(net, feat);
+
+ free_image(im);
+
+ free_image(save_reconstruction(extractor, 0, feat, "feat", i));
+ free_image(save_reconstruction(extractor, 0, next, "next", i));
+ if (i==24) last = copy_image(re);
+ free_image(re);
+ }
+ for(i = 0; i < 30; ++i){
+ next = network_predict(net, next);
+ image new = save_reconstruction(extractor, &last, next, "new", i);
+ free_image(last);
+ last = new;
+ }
+}
+
+void run_vid_rnn(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ //char *filename = (argc > 5) ? argv[5]: 0;
+ if(0==strcmp(argv[2], "train")) train_vid_rnn(cfg, weights);
+ else if(0==strcmp(argv[2], "generate")) generate_vid_rnn(cfg, weights);
+}
+#else
+void run_vid_rnn(int argc, char **argv){}
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/segmenter.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/segmenter.c"
new file mode 100644
index 00000000..2e7cea0b
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/segmenter.c"
@@ -0,0 +1,255 @@
+#include "darknet.h"
+#include
+#include
+
+void train_segmenter(char *datacfg, char *cfgfile, char *weightfile, int *gpus, int ngpus, int clear, int display)
+{
+ int i;
+
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ printf("%d\n", ngpus);
+ network **nets = calloc(ngpus, sizeof(network*));
+
+ srand(time(0));
+ int seed = rand();
+ for(i = 0; i < ngpus; ++i){
+ srand(seed);
+#ifdef GPU
+ cuda_set_device(gpus[i]);
+#endif
+ nets[i] = load_network(cfgfile, weightfile, clear);
+ nets[i]->learning_rate *= ngpus;
+ }
+ srand(time(0));
+ network *net = nets[0];
+ image pred = get_network_image(net);
+
+ int div = net->w/pred.w;
+ assert(pred.w * div == net->w);
+ assert(pred.h * div == net->h);
+
+ int imgs = net->batch * net->subdivisions * ngpus;
+
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ list *options = read_data_cfg(datacfg);
+
+ char *backup_directory = option_find_str(options, "backup", "/backup/");
+ char *train_list = option_find_str(options, "train", "data/train.list");
+
+ list *plist = get_paths(train_list);
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ int N = plist->size;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.threads = 32;
+ args.scale = div;
+
+ args.min = net->min_crop;
+ args.max = net->max_crop;
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+ args.size = net->w;
+ args.classes = 80;
+
+ args.paths = paths;
+ args.n = imgs;
+ args.m = N;
+ args.type = SEGMENTATION_DATA;
+
+ data train;
+ data buffer;
+ pthread_t load_thread;
+ args.d = &buffer;
+ load_thread = load_data(args);
+
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ double time = what_time_is_it_now();
+
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data(args);
+
+ printf("Loaded: %lf seconds\n", what_time_is_it_now()-time);
+ time = what_time_is_it_now();
+
+ float loss = 0;
+#ifdef GPU
+ if(ngpus == 1){
+ loss = train_network(net, train);
+ } else {
+ loss = train_networks(nets, ngpus, train, 4);
+ }
+#else
+ loss = train_network(net, train);
+#endif
+ if(display){
+ image tr = float_to_image(net->w/div, net->h/div, 80, train.y.vals[net->batch*(net->subdivisions-1)]);
+ image im = float_to_image(net->w, net->h, net->c, train.X.vals[net->batch*(net->subdivisions-1)]);
+ image mask = mask_to_rgb(tr);
+ image prmask = mask_to_rgb(pred);
+ show_image(im, "input", 1);
+ show_image(prmask, "pred", 1);
+ show_image(mask, "truth", 100);
+ free_image(mask);
+ free_image(prmask);
+ }
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), what_time_is_it_now()-time, *net->seen);
+ free_data(train);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ free_network(net);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void predict_segmenter(char *datafile, char *cfg, char *weights, char *filename)
+{
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image sized = letterbox_image(im, net->w, net->h);
+
+ float *X = sized.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+ image pred = get_network_image(net);
+ image prmask = mask_to_rgb(pred);
+ printf("Predicted: %f\n", predictions[0]);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ show_image(sized, "orig", 1);
+ show_image(prmask, "pred", 0);
+ free_image(im);
+ free_image(sized);
+ free_image(prmask);
+ if (filename) break;
+ }
+}
+
+
+void demo_segmenter(char *datacfg, char *cfg, char *weights, int cam_index, const char *filename)
+{
+#ifdef OPENCV
+ printf("Classifier Demo\n");
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+
+ srand(2222222);
+ void * cap = open_video_stream(filename, cam_index, 0,0,0);
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+ float fps = 0;
+
+ while(1){
+ struct timeval tval_before, tval_after, tval_result;
+ gettimeofday(&tval_before, NULL);
+
+ image in = get_image_from_stream(cap);
+ image in_s = letterbox_image(in, net->w, net->h);
+
+ network_predict(net, in_s.data);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+ printf("\nFPS:%.0f\n",fps);
+
+ image pred = get_network_image(net);
+ image prmask = mask_to_rgb(pred);
+ show_image(prmask, "Segmenter", 10);
+
+ free_image(in_s);
+ free_image(in);
+ free_image(prmask);
+
+ gettimeofday(&tval_after, NULL);
+ timersub(&tval_after, &tval_before, &tval_result);
+ float curr = 1000000.f/((long int)tval_result.tv_usec);
+ fps = .9*fps + .1*curr;
+ }
+#endif
+}
+
+
+void run_segmenter(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *gpu_list = find_char_arg(argc, argv, "-gpus", 0);
+ int *gpus = 0;
+ int gpu = 0;
+ int ngpus = 0;
+ if(gpu_list){
+ printf("%s\n", gpu_list);
+ int len = strlen(gpu_list);
+ ngpus = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (gpu_list[i] == ',') ++ngpus;
+ }
+ gpus = calloc(ngpus, sizeof(int));
+ for(i = 0; i < ngpus; ++i){
+ gpus[i] = atoi(gpu_list);
+ gpu_list = strchr(gpu_list, ',')+1;
+ }
+ } else {
+ gpu = gpu_index;
+ gpus = &gpu;
+ ngpus = 1;
+ }
+
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int clear = find_arg(argc, argv, "-clear");
+ int display = find_arg(argc, argv, "-display");
+ char *data = argv[3];
+ char *cfg = argv[4];
+ char *weights = (argc > 5) ? argv[5] : 0;
+ char *filename = (argc > 6) ? argv[6]: 0;
+ if(0==strcmp(argv[2], "test")) predict_segmenter(data, cfg, weights, filename);
+ else if(0==strcmp(argv[2], "train")) train_segmenter(data, cfg, weights, gpus, ngpus, clear, display);
+ else if(0==strcmp(argv[2], "demo")) demo_segmenter(data, cfg, weights, cam_index, filename);
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/super.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/super.c"
new file mode 100644
index 00000000..d34406b1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/super.c"
@@ -0,0 +1,120 @@
+#include "darknet.h"
+
+void train_super(char *cfgfile, char *weightfile, int clear)
+{
+ char *train_images = "/data/imagenet/imagenet1k.train.list";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network *net = load_network(cfgfile, weightfile, clear);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = net->batch*net->subdivisions;
+ int i = *net->seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.scale = 4;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.d = &buffer;
+ args.type = SUPER_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+ //while(i*imgs < N*120){
+ while(get_current_batch(net) < net->max_batches){
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ time=clock();
+ float loss = train_network(net, train);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ }
+ free_data(train);
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+void test_super(char *cfgfile, char *weightfile, char *filename)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ resize_network(net, im.w, im.h);
+ printf("%d %d\n", im.w, im.h);
+
+ float *X = im.data;
+ time=clock();
+ network_predict(net, X);
+ image out = get_network_image(net);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ save_image(out, "out");
+ show_image(out, "out", 0);
+
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+
+void run_super(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5] : 0;
+ int clear = find_arg(argc, argv, "-clear");
+ if(0==strcmp(argv[2], "train")) train_super(cfg, weights, clear);
+ else if(0==strcmp(argv[2], "test")) test_super(cfg, weights, filename);
+ /*
+ else if(0==strcmp(argv[2], "valid")) validate_super(cfg, weights);
+ */
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/swag.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/swag.c"
new file mode 100644
index 00000000..c22d7855
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/swag.c"
@@ -0,0 +1,83 @@
+#include "darknet.h"
+#include
+
+void train_swag(char *cfgfile, char *weightfile)
+{
+ char *train_images = "data/voc.0712.trainval";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
+ int imgs = net.batch*net.subdivisions;
+ int i = *net.seen/imgs;
+ data train, buffer;
+
+ layer l = net.layers[net.n - 1];
+
+ int side = l.side;
+ int classes = l.classes;
+ float jitter = l.jitter;
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = {0};
+ args.w = net.w;
+ args.h = net.h;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.classes = classes;
+ args.jitter = jitter;
+ args.num_boxes = side;
+ args.d = &buffer;
+ args.type = REGION_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+ //while(i*imgs < N*120){
+ while(get_current_batch(net) < net.max_batches){
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ time=clock();
+ float loss = train_network(net, train);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0 || i == 600){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ free_data(train);
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+void run_swag(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ if(0==strcmp(argv[2], "train")) train_swag(cfg, weights);
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/tag.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/tag.c"
new file mode 100644
index 00000000..4caf8cba
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/tag.c"
@@ -0,0 +1,140 @@
+#include "darknet.h"
+
+void train_tag(char *cfgfile, char *weightfile, int clear)
+{
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ char *backup_directory = "/home/pjreddie/backup/";
+ printf("%s\n", base);
+ network *net = load_network(cfgfile, weightfile, clear);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = 1024;
+ list *plist = get_paths("/home/pjreddie/tag/train.list");
+ char **paths = (char **)list_to_array(plist);
+ printf("%d\n", plist->size);
+ int N = plist->size;
+ clock_t time;
+ pthread_t load_thread;
+ data train;
+ data buffer;
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+
+ args.min = net->w;
+ args.max = net->max_crop;
+ args.size = net->w;
+
+ args.paths = paths;
+ args.classes = net->outputs;
+ args.n = imgs;
+ args.m = N;
+ args.d = &buffer;
+ args.type = TAG_DATA;
+
+ args.angle = net->angle;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+
+ fprintf(stderr, "%d classes\n", net->outputs);
+
+ load_thread = load_data_in_thread(args);
+ int epoch = (*net->seen)/N;
+ while(get_current_batch(net) < net->max_batches || net->max_batches == 0){
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+
+ load_thread = load_data_in_thread(args);
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+ time=clock();
+ float loss = train_network(net, train);
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net->seen)/N, loss, avg_loss, get_current_rate(net), sec(clock()-time), *net->seen);
+ free_data(train);
+ if(*net->seen/N > epoch){
+ epoch = *net->seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup",backup_directory,base);
+ save_weights(net, buff);
+ }
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s.weights", backup_directory, base);
+ save_weights(net, buff);
+
+ pthread_join(load_thread, 0);
+ free_data(buffer);
+ free_network(net);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void test_tag(char *cfgfile, char *weightfile, char *filename)
+{
+ network *net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ srand(2222222);
+ int i = 0;
+ char **names = get_labels("data/tags.txt");
+ clock_t time;
+ int indexes[10];
+ char buff[256];
+ char *input = buff;
+ int size = net->w;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ image r = resize_min(im, size);
+ resize_network(net, r.w, r.h);
+ printf("%d %d\n", r.w, r.h);
+
+ float *X = r.data;
+ time=clock();
+ float *predictions = network_predict(net, X);
+ top_predictions(net, 10, indexes);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ for(i = 0; i < 10; ++i){
+ int index = indexes[i];
+ printf("%.1f%%: %s\n", predictions[index]*100, names[index]);
+ }
+ if(r.data != im.data) free_image(r);
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+
+void run_tag(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ int clear = find_arg(argc, argv, "-clear");
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5] : 0;
+ if(0==strcmp(argv[2], "train")) train_tag(cfg, weights, clear);
+ else if(0==strcmp(argv[2], "test")) test_tag(cfg, weights, filename);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/voxel.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/voxel.c"
new file mode 100644
index 00000000..01ea9bb9
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/voxel.c"
@@ -0,0 +1,161 @@
+#include "darknet.h"
+
+void extract_voxel(char *lfile, char *rfile, char *prefix)
+{
+#ifdef OPENCV
+ int w = 1920;
+ int h = 1080;
+ int shift = 0;
+ int count = 0;
+ CvCapture *lcap = cvCaptureFromFile(lfile);
+ CvCapture *rcap = cvCaptureFromFile(rfile);
+ while(1){
+ image l = get_image_from_stream(lcap);
+ image r = get_image_from_stream(rcap);
+ if(!l.w || !r.w) break;
+ if(count%100 == 0) {
+ shift = best_3d_shift_r(l, r, -l.h/100, l.h/100);
+ printf("%d\n", shift);
+ }
+ image ls = crop_image(l, (l.w - w)/2, (l.h - h)/2, w, h);
+ image rs = crop_image(r, 105 + (r.w - w)/2, (r.h - h)/2 + shift, w, h);
+ char buff[256];
+ sprintf(buff, "%s_%05d_l", prefix, count);
+ save_image(ls, buff);
+ sprintf(buff, "%s_%05d_r", prefix, count);
+ save_image(rs, buff);
+ free_image(l);
+ free_image(r);
+ free_image(ls);
+ free_image(rs);
+ ++count;
+ }
+
+#else
+ printf("need OpenCV for extraction\n");
+#endif
+}
+
+void train_voxel(char *cfgfile, char *weightfile)
+{
+ char *train_images = "/data/imagenet/imagenet1k.train.list";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
+ int imgs = net.batch*net.subdivisions;
+ int i = *net.seen/imgs;
+ data train, buffer;
+
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = {0};
+ args.w = net.w;
+ args.h = net.h;
+ args.scale = 4;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.d = &buffer;
+ args.type = SUPER_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+ //while(i*imgs < N*120){
+ while(get_current_batch(net) < net.max_batches){
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ time=clock();
+ float loss = train_network(net, train);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ if(i%100==0){
+ char buff[256];
+ sprintf(buff, "%s/%s.backup", backup_directory, base);
+ save_weights(net, buff);
+ }
+ free_data(train);
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+void test_voxel(char *cfgfile, char *weightfile, char *filename)
+{
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ set_batch_network(&net, 1);
+ srand(2222222);
+
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input, 0, 0);
+ resize_network(&net, im.w, im.h);
+ printf("%d %d\n", im.w, im.h);
+
+ float *X = im.data;
+ time=clock();
+ network_predict(net, X);
+ image out = get_network_image(net);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ save_image(out, "out");
+
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+
+void run_voxel(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5] : 0;
+ if(0==strcmp(argv[2], "train")) train_voxel(cfg, weights);
+ else if(0==strcmp(argv[2], "test")) test_voxel(cfg, weights, filename);
+ else if(0==strcmp(argv[2], "extract")) extract_voxel(argv[3], argv[4], argv[5]);
+ /*
+ else if(0==strcmp(argv[2], "valid")) validate_voxel(cfg, weights);
+ */
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/writing.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/writing.c"
new file mode 100644
index 00000000..1b6ff83b
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/writing.c"
@@ -0,0 +1,144 @@
+#include "darknet.h"
+
+void train_writing(char *cfgfile, char *weightfile)
+{
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
+ int imgs = net.batch*net.subdivisions;
+ list *plist = get_paths("figures.list");
+ char **paths = (char **)list_to_array(plist);
+ clock_t time;
+ int N = plist->size;
+ printf("N: %d\n", N);
+ image out = get_network_image(net);
+
+ data train, buffer;
+
+ load_args args = {0};
+ args.w = net.w;
+ args.h = net.h;
+ args.out_w = out.w;
+ args.out_h = out.h;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = N;
+ args.d = &buffer;
+ args.type = WRITING_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ int epoch = (*net.seen)/N;
+ while(get_current_batch(net) < net.max_batches || net.max_batches == 0){
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+ printf("Loaded %lf seconds\n",sec(clock()-time));
+
+ time=clock();
+ float loss = train_network(net, train);
+
+ /*
+ image pred = float_to_image(64, 64, 1, out);
+ print_image(pred);
+ */
+
+ /*
+ image im = float_to_image(256, 256, 3, train.X.vals[0]);
+ image lab = float_to_image(64, 64, 1, train.y.vals[0]);
+ image pred = float_to_image(64, 64, 1, out);
+ show_image(im, "image");
+ show_image(lab, "label");
+ print_image(lab);
+ show_image(pred, "pred");
+ cvWaitKey(0);
+ */
+
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%ld, %.3f: %f, %f avg, %f rate, %lf seconds, %ld images\n", get_current_batch(net), (float)(*net.seen)/N, loss, avg_loss, get_current_rate(net), sec(clock()-time), *net.seen);
+ free_data(train);
+ if(get_current_batch(net)%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s_batch_%ld.weights", backup_directory, base, get_current_batch(net));
+ save_weights(net, buff);
+ }
+ if(*net.seen/N > epoch){
+ epoch = *net.seen/N;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ }
+ }
+}
+
+void test_writing(char *cfgfile, char *weightfile, char *filename)
+{
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ set_batch_network(&net, 1);
+ srand(2222222);
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ }else{
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+
+ image im = load_image_color(input, 0, 0);
+ resize_network(&net, im.w, im.h);
+ printf("%d %d %d\n", im.h, im.w, im.c);
+ float *X = im.data;
+ time=clock();
+ network_predict(net, X);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+ image pred = get_network_image(net);
+
+ image upsampled = resize_image(pred, im.w, im.h);
+ image thresh = threshold_image(upsampled, .5);
+ pred = thresh;
+
+ show_image(pred, "prediction");
+ show_image(im, "orig");
+#ifdef OPENCV
+ cvWaitKey(0);
+ cvDestroyAllWindows();
+#endif
+
+ free_image(upsampled);
+ free_image(thresh);
+ free_image(im);
+ if (filename) break;
+ }
+}
+
+void run_writing(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5] : 0;
+ if(0==strcmp(argv[2], "train")) train_writing(cfg, weights);
+ else if(0==strcmp(argv[2], "test")) test_writing(cfg, weights, filename);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/yolo.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/yolo.c"
new file mode 100644
index 00000000..4ddb69a3
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/examples/yolo.c"
@@ -0,0 +1,327 @@
+#include "darknet.h"
+
+char *voc_names[] = {"aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"};
+
+void train_yolo(char *cfgfile, char *weightfile)
+{
+ char *train_images = "/data/voc/train.txt";
+ char *backup_directory = "/home/pjreddie/backup/";
+ srand(time(0));
+ char *base = basecfg(cfgfile);
+ printf("%s\n", base);
+ float avg_loss = -1;
+ network *net = load_network(cfgfile, weightfile, 0);
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ int imgs = net->batch*net->subdivisions;
+ int i = *net->seen/imgs;
+ data train, buffer;
+
+
+ layer l = net->layers[net->n - 1];
+
+ int side = l.side;
+ int classes = l.classes;
+ float jitter = l.jitter;
+
+ list *plist = get_paths(train_images);
+ //int N = plist->size;
+ char **paths = (char **)list_to_array(plist);
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.paths = paths;
+ args.n = imgs;
+ args.m = plist->size;
+ args.classes = classes;
+ args.jitter = jitter;
+ args.num_boxes = side;
+ args.d = &buffer;
+ args.type = REGION_DATA;
+
+ args.angle = net->angle;
+ args.exposure = net->exposure;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ clock_t time;
+ //while(i*imgs < N*120){
+ while(get_current_batch(net) < net->max_batches){
+ i += 1;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+ load_thread = load_data_in_thread(args);
+
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+
+ time=clock();
+ float loss = train_network(net, train);
+ if (avg_loss < 0) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+
+ printf("%d: %f, %f avg, %f rate, %lf seconds, %d images\n", i, loss, avg_loss, get_current_rate(net), sec(clock()-time), i*imgs);
+ if(i%1000==0 || (i < 1000 && i%100 == 0)){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights", backup_directory, base, i);
+ save_weights(net, buff);
+ }
+ free_data(train);
+ }
+ char buff[256];
+ sprintf(buff, "%s/%s_final.weights", backup_directory, base);
+ save_weights(net, buff);
+}
+
+void print_yolo_detections(FILE **fps, char *id, int total, int classes, int w, int h, detection *dets)
+{
+ int i, j;
+ for(i = 0; i < total; ++i){
+ float xmin = dets[i].bbox.x - dets[i].bbox.w/2.;
+ float xmax = dets[i].bbox.x + dets[i].bbox.w/2.;
+ float ymin = dets[i].bbox.y - dets[i].bbox.h/2.;
+ float ymax = dets[i].bbox.y + dets[i].bbox.h/2.;
+
+ if (xmin < 0) xmin = 0;
+ if (ymin < 0) ymin = 0;
+ if (xmax > w) xmax = w;
+ if (ymax > h) ymax = h;
+
+ for(j = 0; j < classes; ++j){
+ if (dets[i].prob[j]) fprintf(fps[j], "%s %f %f %f %f %f\n", id, dets[i].prob[j],
+ xmin, ymin, xmax, ymax);
+ }
+ }
+}
+
+void validate_yolo(char *cfg, char *weights)
+{
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ char *base = "results/comp4_det_test_";
+ //list *plist = get_paths("data/voc.2007.test");
+ list *plist = get_paths("/home/pjreddie/data/voc/2007_test.txt");
+ //list *plist = get_paths("data/voc.2012.test");
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+ int classes = l.classes;
+
+ int j;
+ FILE **fps = calloc(classes, sizeof(FILE *));
+ for(j = 0; j < classes; ++j){
+ char buff[1024];
+ snprintf(buff, 1024, "%s%s.txt", base, voc_names[j]);
+ fps[j] = fopen(buff, "w");
+ }
+
+ int m = plist->size;
+ int i=0;
+ int t;
+
+ float thresh = .001;
+ int nms = 1;
+ float iou_thresh = .5;
+
+ int nthreads = 8;
+ image *val = calloc(nthreads, sizeof(image));
+ image *val_resized = calloc(nthreads, sizeof(image));
+ image *buf = calloc(nthreads, sizeof(image));
+ image *buf_resized = calloc(nthreads, sizeof(image));
+ pthread_t *thr = calloc(nthreads, sizeof(pthread_t));
+
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.type = IMAGE_DATA;
+
+ for(t = 0; t < nthreads; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ time_t start = time(0);
+ for(i = nthreads; i < m+nthreads; i += nthreads){
+ fprintf(stderr, "%d\n", i);
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ pthread_join(thr[t], 0);
+ val[t] = buf[t];
+ val_resized[t] = buf_resized[t];
+ }
+ for(t = 0; t < nthreads && i+t < m; ++t){
+ args.path = paths[i+t];
+ args.im = &buf[t];
+ args.resized = &buf_resized[t];
+ thr[t] = load_data_in_thread(args);
+ }
+ for(t = 0; t < nthreads && i+t-nthreads < m; ++t){
+ char *path = paths[i+t-nthreads];
+ char *id = basecfg(path);
+ float *X = val_resized[t].data;
+ network_predict(net, X);
+ int w = val[t].w;
+ int h = val[t].h;
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, w, h, thresh, 0, 0, 0, &nboxes);
+ if (nms) do_nms_sort(dets, l.side*l.side*l.n, classes, iou_thresh);
+ print_yolo_detections(fps, id, l.side*l.side*l.n, classes, w, h, dets);
+ free_detections(dets, nboxes);
+ free(id);
+ free_image(val[t]);
+ free_image(val_resized[t]);
+ }
+ }
+ fprintf(stderr, "Total Detection Time: %f Seconds\n", (double)(time(0) - start));
+}
+
+void validate_yolo_recall(char *cfg, char *weights)
+{
+ network *net = load_network(cfg, weights, 0);
+ set_batch_network(net, 1);
+ fprintf(stderr, "Learning Rate: %g, Momentum: %g, Decay: %g\n", net->learning_rate, net->momentum, net->decay);
+ srand(time(0));
+
+ char *base = "results/comp4_det_test_";
+ list *plist = get_paths("data/voc.2007.test");
+ char **paths = (char **)list_to_array(plist);
+
+ layer l = net->layers[net->n-1];
+ int classes = l.classes;
+ int side = l.side;
+
+ int j, k;
+ FILE **fps = calloc(classes, sizeof(FILE *));
+ for(j = 0; j < classes; ++j){
+ char buff[1024];
+ snprintf(buff, 1024, "%s%s.txt", base, voc_names[j]);
+ fps[j] = fopen(buff, "w");
+ }
+
+ int m = plist->size;
+ int i=0;
+
+ float thresh = .001;
+ float iou_thresh = .5;
+ float nms = 0;
+
+ int total = 0;
+ int correct = 0;
+ int proposals = 0;
+ float avg_iou = 0;
+
+ for(i = 0; i < m; ++i){
+ char *path = paths[i];
+ image orig = load_image_color(path, 0, 0);
+ image sized = resize_image(orig, net->w, net->h);
+ char *id = basecfg(path);
+ network_predict(net, sized.data);
+
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, orig.w, orig.h, thresh, 0, 0, 1, &nboxes);
+ if (nms) do_nms_obj(dets, side*side*l.n, 1, nms);
+
+ char labelpath[4096];
+ find_replace(path, "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+
+ int num_labels = 0;
+ box_label *truth = read_boxes(labelpath, &num_labels);
+ for(k = 0; k < side*side*l.n; ++k){
+ if(dets[k].objectness > thresh){
+ ++proposals;
+ }
+ }
+ for (j = 0; j < num_labels; ++j) {
+ ++total;
+ box t = {truth[j].x, truth[j].y, truth[j].w, truth[j].h};
+ float best_iou = 0;
+ for(k = 0; k < side*side*l.n; ++k){
+ float iou = box_iou(dets[k].bbox, t);
+ if(dets[k].objectness > thresh && iou > best_iou){
+ best_iou = iou;
+ }
+ }
+ avg_iou += best_iou;
+ if(best_iou > iou_thresh){
+ ++correct;
+ }
+ }
+
+ fprintf(stderr, "%5d %5d %5d\tRPs/Img: %.2f\tIOU: %.2f%%\tRecall:%.2f%%\n", i, correct, total, (float)proposals/(i+1), avg_iou*100/total, 100.*correct/total);
+ free_detections(dets, nboxes);
+ free(id);
+ free_image(orig);
+ free_image(sized);
+ }
+}
+
+void test_yolo(char *cfgfile, char *weightfile, char *filename, float thresh)
+{
+ image **alphabet = load_alphabet();
+ network *net = load_network(cfgfile, weightfile, 0);
+ layer l = net->layers[net->n-1];
+ set_batch_network(net, 1);
+ srand(2222222);
+ clock_t time;
+ char buff[256];
+ char *input = buff;
+ float nms=.4;
+ while(1){
+ if(filename){
+ strncpy(input, filename, 256);
+ } else {
+ printf("Enter Image Path: ");
+ fflush(stdout);
+ input = fgets(input, 256, stdin);
+ if(!input) return;
+ strtok(input, "\n");
+ }
+ image im = load_image_color(input,0,0);
+ image sized = resize_image(im, net->w, net->h);
+ float *X = sized.data;
+ time=clock();
+ network_predict(net, X);
+ printf("%s: Predicted in %f seconds.\n", input, sec(clock()-time));
+
+ int nboxes = 0;
+ detection *dets = get_network_boxes(net, 1, 1, thresh, 0, 0, 0, &nboxes);
+ if (nms) do_nms_sort(dets, l.side*l.side*l.n, l.classes, nms);
+
+ draw_detections(im, dets, l.side*l.side*l.n, thresh, voc_names, alphabet, 20);
+ save_image(im, "predictions");
+ show_image(im, "predictions", 0);
+ free_detections(dets, nboxes);
+ free_image(im);
+ free_image(sized);
+ if (filename) break;
+ }
+}
+
+void run_yolo(int argc, char **argv)
+{
+ char *prefix = find_char_arg(argc, argv, "-prefix", 0);
+ float thresh = find_float_arg(argc, argv, "-thresh", .2);
+ int cam_index = find_int_arg(argc, argv, "-c", 0);
+ int frame_skip = find_int_arg(argc, argv, "-s", 0);
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ int avg = find_int_arg(argc, argv, "-avg", 1);
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ char *filename = (argc > 5) ? argv[5]: 0;
+ if(0==strcmp(argv[2], "test")) test_yolo(cfg, weights, filename, thresh);
+ else if(0==strcmp(argv[2], "train")) train_yolo(cfg, weights);
+ else if(0==strcmp(argv[2], "valid")) validate_yolo(cfg, weights);
+ else if(0==strcmp(argv[2], "recall")) validate_yolo_recall(cfg, weights);
+ else if(0==strcmp(argv[2], "demo")) demo(cfg, weights, thresh, cam_index, filename, voc_names, 20, frame_skip, prefix, avg, .5, 0,0,0,0);
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/include/darknet.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/include/darknet.h"
new file mode 100644
index 00000000..4390c619
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/include/darknet.h"
@@ -0,0 +1,805 @@
+#ifndef DARKNET_API
+#define DARKNET_API
+#include
+#include
+#include
+#include
+
+#ifdef GPU
+ #define BLOCK 512
+
+ #include "cuda_runtime.h"
+ #include "curand.h"
+ #include "cublas_v2.h"
+
+ #ifdef CUDNN
+ #include "cudnn.h"
+ #endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SECRET_NUM -1234
+extern int gpu_index;
+
+typedef struct{
+ int classes;
+ char **names;
+} metadata;
+
+metadata get_metadata(char *file);
+
+typedef struct{
+ int *leaf;
+ int n;
+ int *parent;
+ int *child;
+ int *group;
+ char **name;
+
+ int groups;
+ int *group_size;
+ int *group_offset;
+} tree;
+tree *read_tree(char *filename);
+
+typedef enum{
+ LOGISTIC, RELU, RELIE, LINEAR, RAMP, TANH, PLSE, LEAKY, ELU, LOGGY, STAIR, HARDTAN, LHTAN, SELU
+} ACTIVATION;
+
+typedef enum{
+ PNG, BMP, TGA, JPG
+} IMTYPE;
+
+typedef enum{
+ MULT, ADD, SUB, DIV
+} BINARY_ACTIVATION;
+
+typedef enum {
+ CONVOLUTIONAL,
+ DECONVOLUTIONAL,
+ CONNECTED,
+ MAXPOOL,
+ SOFTMAX,
+ DETECTION,
+ DROPOUT,
+ CROP,
+ ROUTE,
+ COST,
+ NORMALIZATION,
+ AVGPOOL,
+ LOCAL,
+ SHORTCUT,
+ ACTIVE,
+ RNN,
+ GRU,
+ LSTM,
+ CRNN,
+ BATCHNORM,
+ NETWORK,
+ XNOR,
+ REGION,
+ YOLO,
+ ISEG,
+ REORG,
+ UPSAMPLE,
+ LOGXENT,
+ L2NORM,
+ BLANK
+} LAYER_TYPE;
+
+typedef enum{
+ SSE, MASKED, L1, SEG, SMOOTH,WGAN
+} COST_TYPE;
+
+typedef struct{
+ int batch;
+ float learning_rate;
+ float momentum;
+ float decay;
+ int adam;
+ float B1;
+ float B2;
+ float eps;
+ int t;
+} update_args;
+
+struct network;
+typedef struct network network;
+
+struct layer;
+typedef struct layer layer;
+
+struct layer{
+ LAYER_TYPE type;
+ ACTIVATION activation;
+ COST_TYPE cost_type;
+ void (*forward) (struct layer, struct network);
+ void (*backward) (struct layer, struct network);
+ void (*update) (struct layer, update_args);
+ void (*forward_gpu) (struct layer, struct network);
+ void (*backward_gpu) (struct layer, struct network);
+ void (*update_gpu) (struct layer, update_args);
+ int batch_normalize;
+ int shortcut;
+ int batch;
+ int forced;
+ int flipped;
+ int inputs;
+ int outputs;
+ int nweights;
+ int nbiases;
+ int extra;
+ int truths;
+ int h,w,c;
+ int out_h, out_w, out_c;
+ int n;
+ int max_boxes;
+ int groups;
+ int size;
+ int side;
+ int stride;
+ int reverse;
+ int flatten;
+ int spatial;
+ int pad;
+ int sqrt;
+ int flip;
+ int index;
+ int binary;
+ int xnor;
+ int steps;
+ int hidden;
+ int truth;
+ float smooth;
+ float dot;
+ float angle;
+ float jitter;
+ float saturation;
+ float exposure;
+ float shift;
+ float ratio;
+ float learning_rate_scale;
+ float clip;
+ int noloss;
+ int softmax;
+ int classes;
+ int coords;
+ int background;
+ int rescore;
+ int objectness;
+ int joint;
+ int noadjust;
+ int reorg;
+ int log;
+ int tanh;
+ int *mask;
+ int total;
+
+ float alpha;
+ float beta;
+ float kappa;
+
+ float coord_scale;
+ float object_scale;
+ float noobject_scale;
+ float mask_scale;
+ float class_scale;
+ int bias_match;
+ int random;
+ float ignore_thresh;
+ float truth_thresh;
+ float thresh;
+ float focus;
+ int classfix;
+ int absolute;
+
+ int onlyforward;
+ int stopbackward;
+ int dontload;
+ int dontsave;
+ int dontloadscales;
+ int numload;
+
+ float temperature;
+ float probability;
+ float scale;
+
+ char * cweights;
+ int * indexes;
+ int * input_layers;
+ int * input_sizes;
+ int * map;
+ int * counts;
+ float ** sums;
+ float * rand;
+ float * cost;
+ float * state;
+ float * prev_state;
+ float * forgot_state;
+ float * forgot_delta;
+ float * state_delta;
+ float * combine_cpu;
+ float * combine_delta_cpu;
+
+ float * concat;
+ float * concat_delta;
+
+ float * binary_weights;
+
+ float * biases;
+ float * bias_updates;
+
+ float * scales;
+ float * scale_updates;
+
+ float * weights;
+ float * weight_updates;
+
+ float * delta;
+ float * output;
+ float * loss;
+ float * squared;
+ float * norms;
+
+ float * spatial_mean;
+ float * mean;
+ float * variance;
+
+ float * mean_delta;
+ float * variance_delta;
+
+ float * rolling_mean;
+ float * rolling_variance;
+
+ float * x;
+ float * x_norm;
+
+ float * m;
+ float * v;
+
+ float * bias_m;
+ float * bias_v;
+ float * scale_m;
+ float * scale_v;
+
+
+ float *z_cpu;
+ float *r_cpu;
+ float *h_cpu;
+ float * prev_state_cpu;
+
+ float *temp_cpu;
+ float *temp2_cpu;
+ float *temp3_cpu;
+
+ float *dh_cpu;
+ float *hh_cpu;
+ float *prev_cell_cpu;
+ float *cell_cpu;
+ float *f_cpu;
+ float *i_cpu;
+ float *g_cpu;
+ float *o_cpu;
+ float *c_cpu;
+ float *dc_cpu;
+
+ float * binary_input;
+
+ struct layer *input_layer;
+ struct layer *self_layer;
+ struct layer *output_layer;
+
+ struct layer *reset_layer;
+ struct layer *update_layer;
+ struct layer *state_layer;
+
+ struct layer *input_gate_layer;
+ struct layer *state_gate_layer;
+ struct layer *input_save_layer;
+ struct layer *state_save_layer;
+ struct layer *input_state_layer;
+ struct layer *state_state_layer;
+
+ struct layer *input_z_layer;
+ struct layer *state_z_layer;
+
+ struct layer *input_r_layer;
+ struct layer *state_r_layer;
+
+ struct layer *input_h_layer;
+ struct layer *state_h_layer;
+
+ struct layer *wz;
+ struct layer *uz;
+ struct layer *wr;
+ struct layer *ur;
+ struct layer *wh;
+ struct layer *uh;
+ struct layer *uo;
+ struct layer *wo;
+ struct layer *uf;
+ struct layer *wf;
+ struct layer *ui;
+ struct layer *wi;
+ struct layer *ug;
+ struct layer *wg;
+
+ tree *softmax_tree;
+
+ size_t workspace_size;
+
+#ifdef GPU
+ int *indexes_gpu;
+
+ float *z_gpu;
+ float *r_gpu;
+ float *h_gpu;
+
+ float *temp_gpu;
+ float *temp2_gpu;
+ float *temp3_gpu;
+
+ float *dh_gpu;
+ float *hh_gpu;
+ float *prev_cell_gpu;
+ float *cell_gpu;
+ float *f_gpu;
+ float *i_gpu;
+ float *g_gpu;
+ float *o_gpu;
+ float *c_gpu;
+ float *dc_gpu;
+
+ float *m_gpu;
+ float *v_gpu;
+ float *bias_m_gpu;
+ float *scale_m_gpu;
+ float *bias_v_gpu;
+ float *scale_v_gpu;
+
+ float * combine_gpu;
+ float * combine_delta_gpu;
+
+ float * prev_state_gpu;
+ float * forgot_state_gpu;
+ float * forgot_delta_gpu;
+ float * state_gpu;
+ float * state_delta_gpu;
+ float * gate_gpu;
+ float * gate_delta_gpu;
+ float * save_gpu;
+ float * save_delta_gpu;
+ float * concat_gpu;
+ float * concat_delta_gpu;
+
+ float * binary_input_gpu;
+ float * binary_weights_gpu;
+
+ float * mean_gpu;
+ float * variance_gpu;
+
+ float * rolling_mean_gpu;
+ float * rolling_variance_gpu;
+
+ float * variance_delta_gpu;
+ float * mean_delta_gpu;
+
+ float * x_gpu;
+ float * x_norm_gpu;
+ float * weights_gpu;
+ float * weight_updates_gpu;
+ float * weight_change_gpu;
+
+ float * biases_gpu;
+ float * bias_updates_gpu;
+ float * bias_change_gpu;
+
+ float * scales_gpu;
+ float * scale_updates_gpu;
+ float * scale_change_gpu;
+
+ float * output_gpu;
+ float * loss_gpu;
+ float * delta_gpu;
+ float * rand_gpu;
+ float * squared_gpu;
+ float * norms_gpu;
+#ifdef CUDNN
+ cudnnTensorDescriptor_t srcTensorDesc, dstTensorDesc;
+ cudnnTensorDescriptor_t dsrcTensorDesc, ddstTensorDesc;
+ cudnnTensorDescriptor_t normTensorDesc;
+ cudnnFilterDescriptor_t weightDesc;
+ cudnnFilterDescriptor_t dweightDesc;
+ cudnnConvolutionDescriptor_t convDesc;
+ cudnnConvolutionFwdAlgo_t fw_algo;
+ cudnnConvolutionBwdDataAlgo_t bd_algo;
+ cudnnConvolutionBwdFilterAlgo_t bf_algo;
+#endif
+#endif
+};
+
+void free_layer(layer);
+
+typedef enum {
+ CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM
+} learning_rate_policy;
+
+typedef struct network{
+ int n;
+ int batch;
+ size_t *seen;
+ int *t;
+ float epoch;
+ int subdivisions;
+ layer *layers;
+ float *output;
+ learning_rate_policy policy;
+
+ float learning_rate;
+ float momentum;
+ float decay;
+ float gamma;
+ float scale;
+ float power;
+ int time_steps;
+ int step;
+ int max_batches;
+ float *scales;
+ int *steps;
+ int num_steps;
+ int burn_in;
+
+ int adam;
+ float B1;
+ float B2;
+ float eps;
+
+ int inputs;
+ int outputs;
+ int truths;
+ int notruth;
+ int h, w, c;
+ int max_crop;
+ int min_crop;
+ float max_ratio;
+ float min_ratio;
+ int center;
+ float angle;
+ float aspect;
+ float exposure;
+ float saturation;
+ float hue;
+ int random;
+
+ int gpu_index;
+ tree *hierarchy;
+
+ float *input;
+ float *truth;
+ float *delta;
+ float *workspace;
+ int train;
+ int index;
+ float *cost;
+ float clip;
+
+#ifdef GPU
+ float *input_gpu;
+ float *truth_gpu;
+ float *delta_gpu;
+ float *output_gpu;
+#endif
+
+} network;
+
+typedef struct {
+ int w;
+ int h;
+ float scale;
+ float rad;
+ float dx;
+ float dy;
+ float aspect;
+} augment_args;
+
+typedef struct {
+ int w;
+ int h;
+ int c;
+ float *data;
+} image;
+
+typedef struct{
+ float x, y, w, h;
+} box;
+
+typedef struct detection{
+ box bbox;
+ int classes;
+ float *prob;
+ float *mask;
+ float objectness;
+ int sort_class;
+} detection;
+
+typedef struct matrix{
+ int rows, cols;
+ float **vals;
+} matrix;
+
+
+typedef struct{
+ int w, h;
+ matrix X;
+ matrix y;
+ int shallow;
+ int *num_boxes;
+ box **boxes;
+} data;
+
+typedef enum {
+ CLASSIFICATION_DATA, DETECTION_DATA, CAPTCHA_DATA, REGION_DATA, IMAGE_DATA, COMPARE_DATA, WRITING_DATA, SWAG_DATA, TAG_DATA, OLD_CLASSIFICATION_DATA, STUDY_DATA, DET_DATA, SUPER_DATA, LETTERBOX_DATA, REGRESSION_DATA, SEGMENTATION_DATA, INSTANCE_DATA, ISEG_DATA
+} data_type;
+
+typedef struct load_args{
+ int threads;
+ char **paths;
+ char *path;
+ int n;
+ int m;
+ char **labels;
+ int h;
+ int w;
+ int out_w;
+ int out_h;
+ int nh;
+ int nw;
+ int num_boxes;
+ int min, max, size;
+ int classes;
+ int background;
+ int scale;
+ int center;
+ int coords;
+ float jitter;
+ float angle;
+ float aspect;
+ float saturation;
+ float exposure;
+ float hue;
+ data *d;
+ image *im;
+ image *resized;
+ data_type type;
+ tree *hierarchy;
+} load_args;
+
+typedef struct{
+ int id;
+ float x,y,w,h;
+ float left, right, top, bottom;
+} box_label;
+
+
+network *load_network(char *cfg, char *weights, int clear);
+load_args get_base_args(network *net);
+
+void free_data(data d);
+
+typedef struct node{
+ void *val;
+ struct node *next;
+ struct node *prev;
+} node;
+
+typedef struct list{
+ int size;
+ node *front;
+ node *back;
+} list;
+
+pthread_t load_data(load_args args);
+list *read_data_cfg(char *filename);
+list *read_cfg(char *filename);
+unsigned char *read_file(char *filename);
+data resize_data(data orig, int w, int h);
+data *tile_data(data orig, int divs, int size);
+data select_data(data *orig, int *inds);
+
+void forward_network(network *net);
+void backward_network(network *net);
+void update_network(network *net);
+
+
+float dot_cpu(int N, float *X, int INCX, float *Y, int INCY);
+void axpy_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY);
+void copy_cpu(int N, float *X, int INCX, float *Y, int INCY);
+void scal_cpu(int N, float ALPHA, float *X, int INCX);
+void fill_cpu(int N, float ALPHA, float * X, int INCX);
+void normalize_cpu(float *x, float *mean, float *variance, int batch, int filters, int spatial);
+void softmax(float *input, int n, float temp, int stride, float *output);
+
+int best_3d_shift_r(image a, image b, int min, int max);
+#ifdef GPU
+void axpy_gpu(int N, float ALPHA, float * X, int INCX, float * Y, int INCY);
+void fill_gpu(int N, float ALPHA, float * X, int INCX);
+void scal_gpu(int N, float ALPHA, float * X, int INCX);
+void copy_gpu(int N, float * X, int INCX, float * Y, int INCY);
+
+void cuda_set_device(int n);
+void cuda_free(float *x_gpu);
+float *cuda_make_array(float *x, size_t n);
+void cuda_pull_array(float *x_gpu, float *x, size_t n);
+float cuda_mag_array(float *x_gpu, size_t n);
+void cuda_push_array(float *x_gpu, float *x, size_t n);
+
+void forward_network_gpu(network *net);
+void backward_network_gpu(network *net);
+void update_network_gpu(network *net);
+
+float train_networks(network **nets, int n, data d, int interval);
+void sync_nets(network **nets, int n, int interval);
+void harmless_update_network_gpu(network *net);
+#endif
+image get_label(image **characters, char *string, int size);
+void draw_label(image a, int r, int c, image label, const float *rgb);
+void save_image(image im, const char *name);
+void save_image_options(image im, const char *name, IMTYPE f, int quality);
+void get_next_batch(data d, int n, int offset, float *X, float *y);
+void grayscale_image_3c(image im);
+void normalize_image(image p);
+void matrix_to_csv(matrix m);
+float train_network_sgd(network *net, data d, int n);
+void rgbgr_image(image im);
+data copy_data(data d);
+data concat_data(data d1, data d2);
+data load_cifar10_data(char *filename);
+float matrix_topk_accuracy(matrix truth, matrix guess, int k);
+void matrix_add_matrix(matrix from, matrix to);
+void scale_matrix(matrix m, float scale);
+matrix csv_to_matrix(char *filename);
+float *network_accuracies(network *net, data d, int n);
+float train_network_datum(network *net);
+image make_random_image(int w, int h, int c);
+
+void denormalize_connected_layer(layer l);
+void denormalize_convolutional_layer(layer l);
+void statistics_connected_layer(layer l);
+void rescale_weights(layer l, float scale, float trans);
+void rgbgr_weights(layer l);
+image *get_weights(layer l);
+
+void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int frame_skip, char *prefix, int avg, float hier_thresh, int w, int h, int fps, int fullscreen);
+void get_detection_detections(layer l, int w, int h, float thresh, detection *dets);
+
+char *option_find_str(list *l, char *key, char *def);
+int option_find_int(list *l, char *key, int def);
+int option_find_int_quiet(list *l, char *key, int def);
+
+network *parse_network_cfg(char *filename);
+void save_weights(network *net, char *filename);
+void load_weights(network *net, char *filename);
+void save_weights_upto(network *net, char *filename, int cutoff);
+void load_weights_upto(network *net, char *filename, int start, int cutoff);
+
+void zero_objectness(layer l);
+void get_region_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, float tree_thresh, int relative, detection *dets);
+int get_yolo_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, int relative, detection *dets);
+void free_network(network *net);
+void set_batch_network(network *net, int b);
+void set_temp_network(network *net, float t);
+image load_image(char *filename, int w, int h, int c);
+image load_image_color(char *filename, int w, int h);
+image make_image(int w, int h, int c);
+image resize_image(image im, int w, int h);
+void censor_image(image im, int dx, int dy, int w, int h);
+image letterbox_image(image im, int w, int h);
+image crop_image(image im, int dx, int dy, int w, int h);
+image center_crop_image(image im, int w, int h);
+image resize_min(image im, int min);
+image resize_max(image im, int max);
+image threshold_image(image im, float thresh);
+image mask_to_rgb(image mask);
+int resize_network(network *net, int w, int h);
+void free_matrix(matrix m);
+void test_resize(char *filename);
+int show_image(image p, const char *name, int ms);
+image copy_image(image p);
+void draw_box_width(image a, int x1, int y1, int x2, int y2, int w, float r, float g, float b);
+float get_current_rate(network *net);
+void composite_3d(char *f1, char *f2, char *out, int delta);
+data load_data_old(char **paths, int n, int m, char **labels, int k, int w, int h);
+size_t get_current_batch(network *net);
+void constrain_image(image im);
+image get_network_image_layer(network *net, int i);
+layer get_network_output_layer(network *net);
+void top_predictions(network *net, int n, int *index);
+void flip_image(image a);
+image float_to_image(int w, int h, int c, float *data);
+void ghost_image(image source, image dest, int dx, int dy);
+float network_accuracy(network *net, data d);
+void random_distort_image(image im, float hue, float saturation, float exposure);
+void fill_image(image m, float s);
+image grayscale_image(image im);
+void rotate_image_cw(image im, int times);
+double what_time_is_it_now();
+image rotate_image(image m, float rad);
+void visualize_network(network *net);
+float box_iou(box a, box b);
+data load_all_cifar10();
+box_label *read_boxes(char *filename, int *n);
+box float_to_box(float *f, int stride);
+void draw_detections(image im, detection *dets, int num, float thresh, char **names, image **alphabet, int classes);
+
+matrix network_predict_data(network *net, data test);
+image **load_alphabet();
+image get_network_image(network *net);
+float *network_predict(network *net, float *input);
+
+int network_width(network *net);
+int network_height(network *net);
+float *network_predict_image(network *net, image im);
+void network_detect(network *net, image im, float thresh, float hier_thresh, float nms, detection *dets);
+detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num);
+void free_detections(detection *dets, int n);
+
+void reset_network_state(network *net, int b);
+
+char **get_labels(char *filename);
+void do_nms_obj(detection *dets, int total, int classes, float thresh);
+void do_nms_sort(detection *dets, int total, int classes, float thresh);
+
+matrix make_matrix(int rows, int cols);
+
+#ifdef OPENCV
+void *open_video_stream(const char *f, int c, int w, int h, int fps);
+image get_image_from_stream(void *p);
+void make_window(char *name, int w, int h, int fullscreen);
+#endif
+
+void free_image(image m);
+float train_network(network *net, data d);
+pthread_t load_data_in_thread(load_args args);
+void load_data_blocking(load_args args);
+list *get_paths(char *filename);
+void hierarchy_predictions(float *predictions, int n, tree *hier, int only_leaves, int stride);
+void change_leaves(tree *t, char *leaf_list);
+
+int find_int_arg(int argc, char **argv, char *arg, int def);
+float find_float_arg(int argc, char **argv, char *arg, float def);
+int find_arg(int argc, char* argv[], char *arg);
+char *find_char_arg(int argc, char **argv, char *arg, char *def);
+char *basecfg(char *cfgfile);
+void find_replace(char *str, char *orig, char *rep, char *output);
+void free_ptrs(void **ptrs, int n);
+char *fgetl(FILE *fp);
+void strip(char *s);
+float sec(clock_t clocks);
+void **list_to_array(list *l);
+void top_k(float *a, int n, int k, int *index);
+int *read_map(char *filename);
+void error(const char *s);
+int max_index(float *a, int n);
+int max_int_index(int *a, int n);
+int sample_array(float *a, int n);
+int *random_index_order(int min, int max);
+void free_list(list *l);
+float mse_array(float *a, int n);
+float variance_array(float *a, int n);
+float mag_array(float *a, int n);
+void scale_array(float *a, int n, float s);
+float mean_array(float *a, int n);
+float sum_array(float *a, int n);
+void normalize_array(float *a, int n);
+int *read_intlist(char *s, int *n, int d);
+size_t rand_size_t();
+float rand_normal();
+float rand_uniform(float min, float max);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-obj.names" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-obj.names"
new file mode 100644
index 00000000..ff9bc6d8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-obj.names"
@@ -0,0 +1,2 @@
+cat
+dog
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-test.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-test.txt"
new file mode 100644
index 00000000..5ac00af3
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-test.txt"
@@ -0,0 +1,131 @@
+Images/full_catAndDog//23106.jpg
+Images/full_catAndDog//37651.jpg
+Images/full_catAndDog//26313.jpg
+Images/full_catAndDog//31963.jpg
+Images/full_catAndDog//23364.jpg
+Images/full_catAndDog//24163.jpg
+Images/full_catAndDog//25801.jpg
+Images/full_catAndDog//23307.jpg
+Images/full_catAndDog//26071.jpg
+Images/full_catAndDog//25295.jpg
+Images/full_catAndDog//19769.jpg
+Images/full_catAndDog//22029.jpg
+Images/full_catAndDog//21136.jpg
+Images/full_catAndDog//21707.jpg
+Images/full_catAndDog//27292.jpg
+Images/full_catAndDog//30255.jpg
+Images/full_catAndDog//27376.jpg
+Images/full_catAndDog//32418.jpg
+Images/full_catAndDog//32316.jpg
+Images/full_catAndDog//33141.jpg
+Images/full_catAndDog//31333.jpg
+Images/full_catAndDog//24897.jpg
+Images/full_catAndDog//23324.jpg
+Images/full_catAndDog//19862.jpg
+Images/full_catAndDog//35661.jpg
+Images/full_catAndDog//35349.jpg
+Images/full_catAndDog//20962.jpg
+Images/full_catAndDog//21222.jpg
+Images/full_catAndDog//20124.jpg
+Images/full_catAndDog//19842.jpg
+Images/full_catAndDog//32880.jpg
+Images/full_catAndDog//32396.jpg
+Images/full_catAndDog//36558.jpg
+Images/full_catAndDog//22709.jpg
+Images/full_catAndDog//22538.jpg
+Images/full_catAndDog//22939.jpg
+Images/full_catAndDog//40214.jpg
+Images/full_catAndDog//20332.jpg
+Images/full_catAndDog//27989.jpg
+Images/full_catAndDog//36547.jpg
+Images/full_catAndDog/new2120904.jpg
+Images/full_catAndDog/new5233483.jpg
+Images/full_catAndDog/new9532357.jpg
+Images/full_catAndDog/new15833824.jpg
+Images/full_catAndDog/new16132292.jpg
+Images/full_catAndDog/new18820204.jpg
+Images/full_catAndDog/new19524910.jpg
+Images/full_catAndDog/new22825873.jpg
+Images/full_catAndDog/new25128362.jpg
+Images/full_catAndDog/new25428362.jpg
+Images/full_catAndDog/new29236703.jpg
+Images/full_catAndDog/new33723301.jpg
+Images/full_catAndDog/new37926978.jpg
+Images/full_catAndDog/new39537408.jpg
+Images/full_catAndDog/new41119107.jpg
+Images/full_catAndDog/new41835519.jpg
+Images/full_catAndDog/new46731846.jpg
+Images/full_catAndDog/new48921197.jpg
+Images/full_catAndDog/new49135281.jpg
+Images/full_catAndDog/new54719769.jpg
+Images/full_catAndDog/new56723997.jpg
+Images/full_catAndDog/new57829875.jpg
+Images/full_catAndDog/new60834107.jpg
+Images/full_catAndDog/new61433951.jpg
+Images/full_catAndDog/new62431638.jpg
+Images/full_catAndDog/new62531638.jpg
+Images/full_catAndDog/new67232755.jpg
+Images/full_catAndDog/new69429471.jpg
+Images/full_catAndDog/new71028664.jpg
+Images/full_catAndDog/new71335646.jpg
+Images/full_catAndDog/new73819904.jpg
+Images/full_catAndDog/new85820503.jpg
+Images/full_catAndDog/new87635789.jpg
+Images/full_catAndDog/new89521305.jpg
+Images/full_catAndDog/new93531418.jpg
+Images/full_catAndDog/new94328987.jpg
+Images/full_catAndDog/new96619799.jpg
+Images/full_catAndDog/new100327482.jpg
+Images/full_catAndDog/new100633475.jpg
+Images/full_catAndDog/new105940428.jpg
+Images/full_catAndDog/new106929749.jpg
+Images/full_catAndDog/new109025784.jpg
+Images/full_catAndDog/new109435588.jpg
+Images/full_catAndDog/new109535588.jpg
+Images/full_catAndDog/new110422634.jpg
+Images/full_catAndDog/new113625881.jpg
+Images/full_catAndDog/new115135323.jpg
+Images/full_catAndDog/new117040093.jpg
+Images/full_catAndDog/new120828679.jpg
+Images/full_catAndDog/new121637301.jpg
+Images/full_catAndDog/new123234627.jpg
+Images/full_catAndDog/new124227045.jpg
+Images/full_catAndDog/new124735661.jpg
+Images/full_catAndDog/new125324116.jpg
+Images/full_catAndDog/new133325475.jpg
+Images/full_catAndDog/new135020962.jpg
+Images/full_catAndDog/new141627042.jpg
+Images/full_catAndDog/new142727945.jpg
+Images/full_catAndDog/new143027945.jpg
+Images/full_catAndDog/new144920124.jpg
+Images/full_catAndDog/new149321160.jpg
+Images/full_catAndDog/new152033214.jpg
+Images/full_catAndDog/new154338466.jpg
+Images/full_catAndDog/new154632880.jpg
+Images/full_catAndDog/new158027289.jpg
+Images/full_catAndDog/new167034062.jpg
+Images/full_catAndDog/new168829768.jpg
+Images/full_catAndDog/new172739525.jpg
+Images/full_catAndDog/new173328036.jpg
+Images/full_catAndDog/new175619496.jpg
+Images/full_catAndDog/new177429256.jpg
+Images/full_catAndDog/new178125898.jpg
+Images/full_catAndDog/new179519653.jpg
+Images/full_catAndDog/new181232140.jpg
+Images/full_catAndDog/new183221762.jpg
+Images/full_catAndDog/new183839962.jpg
+Images/full_catAndDog/new184235792.jpg
+Images/full_catAndDog/new184740214.jpg
+Images/full_catAndDog/new191426662.jpg
+Images/full_catAndDog/new192626847.jpg
+Images/full_catAndDog/new193431469.jpg
+Images/full_catAndDog/new193531469.jpg
+Images/full_catAndDog/new193828402.jpg
+Images/full_catAndDog/new194427915.jpg
+Images/full_catAndDog/new194727989.jpg
+Images/full_catAndDog/new195826589.jpg
+Images/full_catAndDog/new198032194.jpg
+Images/full_catAndDog/new198126770.jpg
+Images/full_catAndDog/new198920552.jpg
+Images/full_catAndDog/new199020552.jpg
+Images/full_catAndDog/new199239011.jpg
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-train.txt" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-train.txt"
new file mode 100644
index 00000000..4d1dec95
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/order/cat-dog-train.txt"
@@ -0,0 +1,2275 @@
+Images/full_catAndDog//24804.jpg
+Images/full_catAndDog//37987.jpg
+Images/full_catAndDog//33678.jpg
+Images/full_catAndDog//38375.jpg
+Images/full_catAndDog//20904.jpg
+Images/full_catAndDog//36409.jpg
+Images/full_catAndDog//30849.jpg
+Images/full_catAndDog//39007.jpg
+Images/full_catAndDog//39873.jpg
+Images/full_catAndDog//33483.jpg
+Images/full_catAndDog//29422.jpg
+Images/full_catAndDog//28472.jpg
+Images/full_catAndDog//26981.jpg
+Images/full_catAndDog//32659.jpg
+Images/full_catAndDog//38206.jpg
+Images/full_catAndDog//33692.jpg
+Images/full_catAndDog//24670.jpg
+Images/full_catAndDog//32357.jpg
+Images/full_catAndDog//23254.jpg
+Images/full_catAndDog//36756.jpg
+Images/full_catAndDog//34512.jpg
+Images/full_catAndDog//39861.jpg
+Images/full_catAndDog//33831.jpg
+Images/full_catAndDog//25035.jpg
+Images/full_catAndDog//21774.jpg
+Images/full_catAndDog//23578.jpg
+Images/full_catAndDog//31201.jpg
+Images/full_catAndDog//21528.jpg
+Images/full_catAndDog//33824.jpg
+Images/full_catAndDog//32292.jpg
+Images/full_catAndDog//29751.jpg
+Images/full_catAndDog//29910.jpg
+Images/full_catAndDog//31411.jpg
+Images/full_catAndDog//25683.jpg
+Images/full_catAndDog//20204.jpg
+Images/full_catAndDog//24910.jpg
+Images/full_catAndDog//28385.jpg
+Images/full_catAndDog//34674.jpg
+Images/full_catAndDog//22067.jpg
+Images/full_catAndDog//36414.jpg
+Images/full_catAndDog//25980.jpg
+Images/full_catAndDog//25873.jpg
+Images/full_catAndDog//21702.jpg
+Images/full_catAndDog//19359.jpg
+Images/full_catAndDog//29590.jpg
+Images/full_catAndDog//28362.jpg
+Images/full_catAndDog//27601.jpg
+Images/full_catAndDog//40699.jpg
+Images/full_catAndDog//39676.jpg
+Images/full_catAndDog//23616.jpg
+Images/full_catAndDog//31590.jpg
+Images/full_catAndDog//39232.jpg
+Images/full_catAndDog//37070.jpg
+Images/full_catAndDog//36703.jpg
+Images/full_catAndDog//21777.jpg
+Images/full_catAndDog//27113.jpg
+Images/full_catAndDog//23535.jpg
+Images/full_catAndDog//36941.jpg
+Images/full_catAndDog//35179.jpg
+Images/full_catAndDog//40232.jpg
+Images/full_catAndDog//32918.jpg
+Images/full_catAndDog//23301.jpg
+Images/full_catAndDog//20638.jpg
+Images/full_catAndDog//34757.jpg
+Images/full_catAndDog//32315.jpg
+Images/full_catAndDog//22612.jpg
+Images/full_catAndDog//33448.jpg
+Images/full_catAndDog//31519.jpg
+Images/full_catAndDog//26978.jpg
+Images/full_catAndDog//37882.jpg
+Images/full_catAndDog//29413.jpg
+Images/full_catAndDog//37408.jpg
+Images/full_catAndDog//36720.jpg
+Images/full_catAndDog//27887.jpg
+Images/full_catAndDog//19107.jpg
+Images/full_catAndDog//35519.jpg
+Images/full_catAndDog//40009.jpg
+Images/full_catAndDog//32974.jpg
+Images/full_catAndDog//30023.jpg
+Images/full_catAndDog//32169.jpg
+Images/full_catAndDog//24784.jpg
+Images/full_catAndDog//28262.jpg
+Images/full_catAndDog//26043.jpg
+Images/full_catAndDog//40785.jpg
+Images/full_catAndDog//31846.jpg
+Images/full_catAndDog//38899.jpg
+Images/full_catAndDog//27957.jpg
+Images/full_catAndDog//25826.jpg
+Images/full_catAndDog//21197.jpg
+Images/full_catAndDog//35281.jpg
+Images/full_catAndDog//21201.jpg
+Images/full_catAndDog//38450.jpg
+Images/full_catAndDog//36525.jpg
+Images/full_catAndDog//21284.jpg
+Images/full_catAndDog//32381.jpg
+Images/full_catAndDog//31823.jpg
+Images/full_catAndDog//26899.jpg
+Images/full_catAndDog//25813.jpg
+Images/full_catAndDog//19920.jpg
+Images/full_catAndDog//21187.jpg
+Images/full_catAndDog//25127.jpg
+Images/full_catAndDog//32267.jpg
+Images/full_catAndDog//23997.jpg
+Images/full_catAndDog//33582.jpg
+Images/full_catAndDog//29875.jpg
+Images/full_catAndDog//34860.jpg
+Images/full_catAndDog//32342.jpg
+Images/full_catAndDog//30790.jpg
+Images/full_catAndDog//33264.jpg
+Images/full_catAndDog//34107.jpg
+Images/full_catAndDog//33951.jpg
+Images/full_catAndDog//39757.jpg
+Images/full_catAndDog//31638.jpg
+Images/full_catAndDog//39012.jpg
+Images/full_catAndDog//39996.jpg
+Images/full_catAndDog//35869.jpg
+Images/full_catAndDog//38896.jpg
+Images/full_catAndDog//32509.jpg
+Images/full_catAndDog//28143.jpg
+Images/full_catAndDog//23800.jpg
+Images/full_catAndDog//25839.jpg
+Images/full_catAndDog//32755.jpg
+Images/full_catAndDog//22227.jpg
+Images/full_catAndDog//19750.jpg
+Images/full_catAndDog//29793.jpg
+Images/full_catAndDog//29471.jpg
+Images/full_catAndDog//38312.jpg
+Images/full_catAndDog//28664.jpg
+Images/full_catAndDog//35646.jpg
+Images/full_catAndDog//20804.jpg
+Images/full_catAndDog//31688.jpg
+Images/full_catAndDog//40603.jpg
+Images/full_catAndDog//38143.jpg
+Images/full_catAndDog//19904.jpg
+Images/full_catAndDog//38349.jpg
+Images/full_catAndDog//24633.jpg
+Images/full_catAndDog//26829.jpg
+Images/full_catAndDog//37652.jpg
+Images/full_catAndDog//32929.jpg
+Images/full_catAndDog//33071.jpg
+Images/full_catAndDog//35416.jpg
+Images/full_catAndDog//24449.jpg
+Images/full_catAndDog//22327.jpg
+Images/full_catAndDog//25957.jpg
+Images/full_catAndDog//35124.jpg
+Images/full_catAndDog//35644.jpg
+Images/full_catAndDog//27937.jpg
+Images/full_catAndDog//25775.jpg
+Images/full_catAndDog//20937.jpg
+Images/full_catAndDog//21922.jpg
+Images/full_catAndDog//28222.jpg
+Images/full_catAndDog//32894.jpg
+Images/full_catAndDog//26150.jpg
+Images/full_catAndDog//26005.jpg
+Images/full_catAndDog//20503.jpg
+Images/full_catAndDog//35632.jpg
+Images/full_catAndDog//38221.jpg
+Images/full_catAndDog//24027.jpg
+Images/full_catAndDog//35789.jpg
+Images/full_catAndDog//33783.jpg
+Images/full_catAndDog//35755.jpg
+Images/full_catAndDog//21305.jpg
+Images/full_catAndDog//19536.jpg
+Images/full_catAndDog//39907.jpg
+Images/full_catAndDog//22482.jpg
+Images/full_catAndDog//23949.jpg
+Images/full_catAndDog//38052.jpg
+Images/full_catAndDog//23308.jpg
+Images/full_catAndDog//31418.jpg
+Images/full_catAndDog//30281.jpg
+Images/full_catAndDog//28987.jpg
+Images/full_catAndDog//39278.jpg
+Images/full_catAndDog//21580.jpg
+Images/full_catAndDog//39413.jpg
+Images/full_catAndDog//19799.jpg
+Images/full_catAndDog//30956.jpg
+Images/full_catAndDog//30998.jpg
+Images/full_catAndDog//29968.jpg
+Images/full_catAndDog//35798.jpg
+Images/full_catAndDog//27427.jpg
+Images/full_catAndDog//27482.jpg
+Images/full_catAndDog//33475.jpg
+Images/full_catAndDog//28604.jpg
+Images/full_catAndDog//27148.jpg
+Images/full_catAndDog//27358.jpg
+Images/full_catAndDog//27475.jpg
+Images/full_catAndDog//38452.jpg
+Images/full_catAndDog//40670.jpg
+Images/full_catAndDog//28590.jpg
+Images/full_catAndDog//21435.jpg
+Images/full_catAndDog//40428.jpg
+Images/full_catAndDog//29252.jpg
+Images/full_catAndDog//29749.jpg
+Images/full_catAndDog//35036.jpg
+Images/full_catAndDog//33500.jpg
+Images/full_catAndDog//28887.jpg
+Images/full_catAndDog//25784.jpg
+Images/full_catAndDog//35588.jpg
+Images/full_catAndDog//22634.jpg
+Images/full_catAndDog//26308.jpg
+Images/full_catAndDog//23899.jpg
+Images/full_catAndDog//32344.jpg
+Images/full_catAndDog//26398.jpg
+Images/full_catAndDog//33997.jpg
+Images/full_catAndDog//22288.jpg
+Images/full_catAndDog//25881.jpg
+Images/full_catAndDog//27233.jpg
+Images/full_catAndDog//35323.jpg
+Images/full_catAndDog//40522.jpg
+Images/full_catAndDog//39848.jpg
+Images/full_catAndDog//40093.jpg
+Images/full_catAndDog//21137.jpg
+Images/full_catAndDog//35196.jpg
+Images/full_catAndDog//26783.jpg
+Images/full_catAndDog//20220.jpg
+Images/full_catAndDog//20811.jpg
+Images/full_catAndDog//21157.jpg
+Images/full_catAndDog//28679.jpg
+Images/full_catAndDog//23799.jpg
+Images/full_catAndDog//37301.jpg
+Images/full_catAndDog//29428.jpg
+Images/full_catAndDog//29831.jpg
+Images/full_catAndDog//34627.jpg
+Images/full_catAndDog//21632.jpg
+Images/full_catAndDog//27045.jpg
+Images/full_catAndDog//24116.jpg
+Images/full_catAndDog//22331.jpg
+Images/full_catAndDog//32223.jpg
+Images/full_catAndDog//33813.jpg
+Images/full_catAndDog//19608.jpg
+Images/full_catAndDog//40225.jpg
+Images/full_catAndDog//33411.jpg
+Images/full_catAndDog//25187.jpg
+Images/full_catAndDog//21186.jpg
+Images/full_catAndDog//31412.jpg
+Images/full_catAndDog//21946.jpg
+Images/full_catAndDog//24678.jpg
+Images/full_catAndDog//27622.jpg
+Images/full_catAndDog//24469.jpg
+Images/full_catAndDog//38923.jpg
+Images/full_catAndDog//25475.jpg
+Images/full_catAndDog//39348.jpg
+Images/full_catAndDog//19327.jpg
+Images/full_catAndDog//21345.jpg
+Images/full_catAndDog//32723.jpg
+Images/full_catAndDog//36644.jpg
+Images/full_catAndDog//38127.jpg
+Images/full_catAndDog//20086.jpg
+Images/full_catAndDog//26897.jpg
+Images/full_catAndDog//24210.jpg
+Images/full_catAndDog//33348.jpg
+Images/full_catAndDog//25060.jpg
+Images/full_catAndDog//26546.jpg
+Images/full_catAndDog//21279.jpg
+Images/full_catAndDog//24686.jpg
+Images/full_catAndDog//27042.jpg
+Images/full_catAndDog//26362.jpg
+Images/full_catAndDog//27945.jpg
+Images/full_catAndDog//40205.jpg
+Images/full_catAndDog//20038.jpg
+Images/full_catAndDog//31886.jpg
+Images/full_catAndDog//22836.jpg
+Images/full_catAndDog//24712.jpg
+Images/full_catAndDog//25119.jpg
+Images/full_catAndDog//22149.jpg
+Images/full_catAndDog//35431.jpg
+Images/full_catAndDog//28605.jpg
+Images/full_catAndDog//40431.jpg
+Images/full_catAndDog//21415.jpg
+Images/full_catAndDog//21160.jpg
+Images/full_catAndDog//32337.jpg
+Images/full_catAndDog//22953.jpg
+Images/full_catAndDog//38268.jpg
+Images/full_catAndDog//33214.jpg
+Images/full_catAndDog//21353.jpg
+Images/full_catAndDog//30568.jpg
+Images/full_catAndDog//23011.jpg
+Images/full_catAndDog//23204.jpg
+Images/full_catAndDog//38466.jpg
+Images/full_catAndDog//35856.jpg
+Images/full_catAndDog//28815.jpg
+Images/full_catAndDog//38613.jpg
+Images/full_catAndDog//23509.jpg
+Images/full_catAndDog//23996.jpg
+Images/full_catAndDog//27289.jpg
+Images/full_catAndDog//21208.jpg
+Images/full_catAndDog//34994.jpg
+Images/full_catAndDog//33426.jpg
+Images/full_catAndDog//22916.jpg
+Images/full_catAndDog//20406.jpg
+Images/full_catAndDog//28059.jpg
+Images/full_catAndDog//27424.jpg
+Images/full_catAndDog//38076.jpg
+Images/full_catAndDog//30206.jpg
+Images/full_catAndDog//35064.jpg
+Images/full_catAndDog//22591.jpg
+Images/full_catAndDog//27380.jpg
+Images/full_catAndDog//37715.jpg
+Images/full_catAndDog//35083.jpg
+Images/full_catAndDog//25738.jpg
+Images/full_catAndDog//34062.jpg
+Images/full_catAndDog//33683.jpg
+Images/full_catAndDog//23880.jpg
+Images/full_catAndDog//30737.jpg
+Images/full_catAndDog//29768.jpg
+Images/full_catAndDog//31751.jpg
+Images/full_catAndDog//24520.jpg
+Images/full_catAndDog//27341.jpg
+Images/full_catAndDog//35088.jpg
+Images/full_catAndDog//24117.jpg
+Images/full_catAndDog//35910.jpg
+Images/full_catAndDog//39525.jpg
+Images/full_catAndDog//28036.jpg
+Images/full_catAndDog//26315.jpg
+Images/full_catAndDog//27492.jpg
+Images/full_catAndDog//24585.jpg
+Images/full_catAndDog//19496.jpg
+Images/full_catAndDog//39813.jpg
+Images/full_catAndDog//32455.jpg
+Images/full_catAndDog//29256.jpg
+Images/full_catAndDog//26905.jpg
+Images/full_catAndDog//25898.jpg
+Images/full_catAndDog//24351.jpg
+Images/full_catAndDog//19653.jpg
+Images/full_catAndDog//27139.jpg
+Images/full_catAndDog//27179.jpg
+Images/full_catAndDog//32140.jpg
+Images/full_catAndDog//33788.jpg
+Images/full_catAndDog//19308.jpg
+Images/full_catAndDog//27720.jpg
+Images/full_catAndDog//21762.jpg
+Images/full_catAndDog//39962.jpg
+Images/full_catAndDog//35792.jpg
+Images/full_catAndDog//19666.jpg
+Images/full_catAndDog//22805.jpg
+Images/full_catAndDog//29178.jpg
+Images/full_catAndDog//39450.jpg
+Images/full_catAndDog//33106.jpg
+Images/full_catAndDog//23417.jpg
+Images/full_catAndDog//27527.jpg
+Images/full_catAndDog//29698.jpg
+Images/full_catAndDog//30596.jpg
+Images/full_catAndDog//19900.jpg
+Images/full_catAndDog//20800.jpg
+Images/full_catAndDog//26662.jpg
+Images/full_catAndDog//25224.jpg
+Images/full_catAndDog//31597.jpg
+Images/full_catAndDog//26847.jpg
+Images/full_catAndDog//31469.jpg
+Images/full_catAndDog//28402.jpg
+Images/full_catAndDog//27915.jpg
+Images/full_catAndDog//26497.jpg
+Images/full_catAndDog//26589.jpg
+Images/full_catAndDog//32590.jpg
+Images/full_catAndDog//24812.jpg
+Images/full_catAndDog//19616.jpg
+Images/full_catAndDog//32194.jpg
+Images/full_catAndDog//26770.jpg
+Images/full_catAndDog//20552.jpg
+Images/full_catAndDog//39011.jpg
+Images/full_catAndDog//22326.jpg
+Images/full_catAndDog/new124804.jpg
+Images/full_catAndDog/new224804.jpg
+Images/full_catAndDog/new324804.jpg
+Images/full_catAndDog/new424804.jpg
+Images/full_catAndDog/new524804.jpg
+Images/full_catAndDog/new637987.jpg
+Images/full_catAndDog/new737987.jpg
+Images/full_catAndDog/new837987.jpg
+Images/full_catAndDog/new937987.jpg
+Images/full_catAndDog/new1037987.jpg
+Images/full_catAndDog/new1133678.jpg
+Images/full_catAndDog/new1233678.jpg
+Images/full_catAndDog/new1333678.jpg
+Images/full_catAndDog/new1433678.jpg
+Images/full_catAndDog/new1533678.jpg
+Images/full_catAndDog/new1638375.jpg
+Images/full_catAndDog/new1738375.jpg
+Images/full_catAndDog/new1838375.jpg
+Images/full_catAndDog/new1938375.jpg
+Images/full_catAndDog/new2038375.jpg
+Images/full_catAndDog/new2220904.jpg
+Images/full_catAndDog/new2320904.jpg
+Images/full_catAndDog/new2420904.jpg
+Images/full_catAndDog/new2520904.jpg
+Images/full_catAndDog/new2636409.jpg
+Images/full_catAndDog/new2736409.jpg
+Images/full_catAndDog/new2836409.jpg
+Images/full_catAndDog/new2936409.jpg
+Images/full_catAndDog/new3036409.jpg
+Images/full_catAndDog/new3130849.jpg
+Images/full_catAndDog/new3230849.jpg
+Images/full_catAndDog/new3330849.jpg
+Images/full_catAndDog/new3430849.jpg
+Images/full_catAndDog/new3530849.jpg
+Images/full_catAndDog/new3639007.jpg
+Images/full_catAndDog/new3739007.jpg
+Images/full_catAndDog/new3839007.jpg
+Images/full_catAndDog/new3939007.jpg
+Images/full_catAndDog/new4039007.jpg
+Images/full_catAndDog/new4139873.jpg
+Images/full_catAndDog/new4239873.jpg
+Images/full_catAndDog/new4339873.jpg
+Images/full_catAndDog/new4439873.jpg
+Images/full_catAndDog/new4539873.jpg
+Images/full_catAndDog/new4623106.jpg
+Images/full_catAndDog/new4723106.jpg
+Images/full_catAndDog/new4823106.jpg
+Images/full_catAndDog/new4923106.jpg
+Images/full_catAndDog/new5023106.jpg
+Images/full_catAndDog/new5133483.jpg
+Images/full_catAndDog/new5333483.jpg
+Images/full_catAndDog/new5433483.jpg
+Images/full_catAndDog/new5533483.jpg
+Images/full_catAndDog/new5629422.jpg
+Images/full_catAndDog/new5729422.jpg
+Images/full_catAndDog/new5829422.jpg
+Images/full_catAndDog/new5929422.jpg
+Images/full_catAndDog/new6029422.jpg
+Images/full_catAndDog/new6128472.jpg
+Images/full_catAndDog/new6228472.jpg
+Images/full_catAndDog/new6328472.jpg
+Images/full_catAndDog/new6428472.jpg
+Images/full_catAndDog/new6528472.jpg
+Images/full_catAndDog/new6626981.jpg
+Images/full_catAndDog/new6726981.jpg
+Images/full_catAndDog/new6826981.jpg
+Images/full_catAndDog/new6926981.jpg
+Images/full_catAndDog/new7026981.jpg
+Images/full_catAndDog/new7132659.jpg
+Images/full_catAndDog/new7232659.jpg
+Images/full_catAndDog/new7332659.jpg
+Images/full_catAndDog/new7432659.jpg
+Images/full_catAndDog/new7532659.jpg
+Images/full_catAndDog/new7638206.jpg
+Images/full_catAndDog/new7738206.jpg
+Images/full_catAndDog/new7838206.jpg
+Images/full_catAndDog/new7938206.jpg
+Images/full_catAndDog/new8038206.jpg
+Images/full_catAndDog/new8133692.jpg
+Images/full_catAndDog/new8233692.jpg
+Images/full_catAndDog/new8333692.jpg
+Images/full_catAndDog/new8433692.jpg
+Images/full_catAndDog/new8533692.jpg
+Images/full_catAndDog/new8624670.jpg
+Images/full_catAndDog/new8724670.jpg
+Images/full_catAndDog/new8824670.jpg
+Images/full_catAndDog/new8924670.jpg
+Images/full_catAndDog/new9024670.jpg
+Images/full_catAndDog/new9132357.jpg
+Images/full_catAndDog/new9232357.jpg
+Images/full_catAndDog/new9332357.jpg
+Images/full_catAndDog/new9432357.jpg
+Images/full_catAndDog/new9637651.jpg
+Images/full_catAndDog/new9737651.jpg
+Images/full_catAndDog/new9837651.jpg
+Images/full_catAndDog/new9937651.jpg
+Images/full_catAndDog/new10037651.jpg
+Images/full_catAndDog/new10123254.jpg
+Images/full_catAndDog/new10223254.jpg
+Images/full_catAndDog/new10323254.jpg
+Images/full_catAndDog/new10423254.jpg
+Images/full_catAndDog/new10523254.jpg
+Images/full_catAndDog/new10636756.jpg
+Images/full_catAndDog/new10736756.jpg
+Images/full_catAndDog/new10836756.jpg
+Images/full_catAndDog/new10936756.jpg
+Images/full_catAndDog/new11036756.jpg
+Images/full_catAndDog/new11134512.jpg
+Images/full_catAndDog/new11234512.jpg
+Images/full_catAndDog/new11334512.jpg
+Images/full_catAndDog/new11434512.jpg
+Images/full_catAndDog/new11534512.jpg
+Images/full_catAndDog/new11639861.jpg
+Images/full_catAndDog/new11739861.jpg
+Images/full_catAndDog/new11839861.jpg
+Images/full_catAndDog/new11939861.jpg
+Images/full_catAndDog/new12039861.jpg
+Images/full_catAndDog/new12133831.jpg
+Images/full_catAndDog/new12233831.jpg
+Images/full_catAndDog/new12333831.jpg
+Images/full_catAndDog/new12433831.jpg
+Images/full_catAndDog/new12533831.jpg
+Images/full_catAndDog/new12625035.jpg
+Images/full_catAndDog/new12725035.jpg
+Images/full_catAndDog/new12825035.jpg
+Images/full_catAndDog/new12925035.jpg
+Images/full_catAndDog/new13025035.jpg
+Images/full_catAndDog/new13121774.jpg
+Images/full_catAndDog/new13221774.jpg
+Images/full_catAndDog/new13321774.jpg
+Images/full_catAndDog/new13421774.jpg
+Images/full_catAndDog/new13521774.jpg
+Images/full_catAndDog/new13623578.jpg
+Images/full_catAndDog/new13723578.jpg
+Images/full_catAndDog/new13823578.jpg
+Images/full_catAndDog/new13923578.jpg
+Images/full_catAndDog/new14023578.jpg
+Images/full_catAndDog/new14131201.jpg
+Images/full_catAndDog/new14231201.jpg
+Images/full_catAndDog/new14331201.jpg
+Images/full_catAndDog/new14431201.jpg
+Images/full_catAndDog/new14531201.jpg
+Images/full_catAndDog/new14626313.jpg
+Images/full_catAndDog/new14726313.jpg
+Images/full_catAndDog/new14826313.jpg
+Images/full_catAndDog/new14926313.jpg
+Images/full_catAndDog/new15026313.jpg
+Images/full_catAndDog/new15121528.jpg
+Images/full_catAndDog/new15221528.jpg
+Images/full_catAndDog/new15321528.jpg
+Images/full_catAndDog/new15421528.jpg
+Images/full_catAndDog/new15521528.jpg
+Images/full_catAndDog/new15633824.jpg
+Images/full_catAndDog/new15733824.jpg
+Images/full_catAndDog/new15933824.jpg
+Images/full_catAndDog/new16033824.jpg
+Images/full_catAndDog/new16232292.jpg
+Images/full_catAndDog/new16332292.jpg
+Images/full_catAndDog/new16432292.jpg
+Images/full_catAndDog/new16532292.jpg
+Images/full_catAndDog/new16629751.jpg
+Images/full_catAndDog/new16729751.jpg
+Images/full_catAndDog/new16829751.jpg
+Images/full_catAndDog/new16929751.jpg
+Images/full_catAndDog/new17029751.jpg
+Images/full_catAndDog/new17129910.jpg
+Images/full_catAndDog/new17229910.jpg
+Images/full_catAndDog/new17329910.jpg
+Images/full_catAndDog/new17429910.jpg
+Images/full_catAndDog/new17529910.jpg
+Images/full_catAndDog/new17631411.jpg
+Images/full_catAndDog/new17731411.jpg
+Images/full_catAndDog/new17831411.jpg
+Images/full_catAndDog/new17931411.jpg
+Images/full_catAndDog/new18031411.jpg
+Images/full_catAndDog/new18125683.jpg
+Images/full_catAndDog/new18225683.jpg
+Images/full_catAndDog/new18325683.jpg
+Images/full_catAndDog/new18425683.jpg
+Images/full_catAndDog/new18525683.jpg
+Images/full_catAndDog/new18620204.jpg
+Images/full_catAndDog/new18720204.jpg
+Images/full_catAndDog/new18920204.jpg
+Images/full_catAndDog/new19020204.jpg
+Images/full_catAndDog/new19124910.jpg
+Images/full_catAndDog/new19224910.jpg
+Images/full_catAndDog/new19324910.jpg
+Images/full_catAndDog/new19424910.jpg
+Images/full_catAndDog/new19631963.jpg
+Images/full_catAndDog/new19731963.jpg
+Images/full_catAndDog/new19831963.jpg
+Images/full_catAndDog/new19931963.jpg
+Images/full_catAndDog/new20031963.jpg
+Images/full_catAndDog/new20128385.jpg
+Images/full_catAndDog/new20228385.jpg
+Images/full_catAndDog/new20328385.jpg
+Images/full_catAndDog/new20428385.jpg
+Images/full_catAndDog/new20528385.jpg
+Images/full_catAndDog/new20634674.jpg
+Images/full_catAndDog/new20734674.jpg
+Images/full_catAndDog/new20834674.jpg
+Images/full_catAndDog/new20934674.jpg
+Images/full_catAndDog/new21034674.jpg
+Images/full_catAndDog/new21122067.jpg
+Images/full_catAndDog/new21222067.jpg
+Images/full_catAndDog/new21322067.jpg
+Images/full_catAndDog/new21422067.jpg
+Images/full_catAndDog/new21522067.jpg
+Images/full_catAndDog/new21636414.jpg
+Images/full_catAndDog/new21736414.jpg
+Images/full_catAndDog/new21836414.jpg
+Images/full_catAndDog/new21936414.jpg
+Images/full_catAndDog/new22036414.jpg
+Images/full_catAndDog/new22125980.jpg
+Images/full_catAndDog/new22225980.jpg
+Images/full_catAndDog/new22325980.jpg
+Images/full_catAndDog/new22425980.jpg
+Images/full_catAndDog/new22525980.jpg
+Images/full_catAndDog/new22625873.jpg
+Images/full_catAndDog/new22725873.jpg
+Images/full_catAndDog/new22925873.jpg
+Images/full_catAndDog/new23025873.jpg
+Images/full_catAndDog/new23121702.jpg
+Images/full_catAndDog/new23221702.jpg
+Images/full_catAndDog/new23321702.jpg
+Images/full_catAndDog/new23421702.jpg
+Images/full_catAndDog/new23521702.jpg
+Images/full_catAndDog/new23619359.jpg
+Images/full_catAndDog/new23719359.jpg
+Images/full_catAndDog/new23819359.jpg
+Images/full_catAndDog/new23919359.jpg
+Images/full_catAndDog/new24019359.jpg
+Images/full_catAndDog/new24129590.jpg
+Images/full_catAndDog/new24229590.jpg
+Images/full_catAndDog/new24329590.jpg
+Images/full_catAndDog/new24429590.jpg
+Images/full_catAndDog/new24529590.jpg
+Images/full_catAndDog/new24623364.jpg
+Images/full_catAndDog/new24723364.jpg
+Images/full_catAndDog/new24823364.jpg
+Images/full_catAndDog/new24923364.jpg
+Images/full_catAndDog/new25023364.jpg
+Images/full_catAndDog/new25228362.jpg
+Images/full_catAndDog/new25328362.jpg
+Images/full_catAndDog/new25528362.jpg
+Images/full_catAndDog/new25627601.jpg
+Images/full_catAndDog/new25727601.jpg
+Images/full_catAndDog/new25827601.jpg
+Images/full_catAndDog/new25927601.jpg
+Images/full_catAndDog/new26027601.jpg
+Images/full_catAndDog/new26140699.jpg
+Images/full_catAndDog/new26240699.jpg
+Images/full_catAndDog/new26340699.jpg
+Images/full_catAndDog/new26440699.jpg
+Images/full_catAndDog/new26540699.jpg
+Images/full_catAndDog/new26639676.jpg
+Images/full_catAndDog/new26739676.jpg
+Images/full_catAndDog/new26839676.jpg
+Images/full_catAndDog/new26939676.jpg
+Images/full_catAndDog/new27039676.jpg
+Images/full_catAndDog/new27123616.jpg
+Images/full_catAndDog/new27223616.jpg
+Images/full_catAndDog/new27323616.jpg
+Images/full_catAndDog/new27423616.jpg
+Images/full_catAndDog/new27523616.jpg
+Images/full_catAndDog/new27631590.jpg
+Images/full_catAndDog/new27731590.jpg
+Images/full_catAndDog/new27831590.jpg
+Images/full_catAndDog/new27931590.jpg
+Images/full_catAndDog/new28031590.jpg
+Images/full_catAndDog/new28139232.jpg
+Images/full_catAndDog/new28239232.jpg
+Images/full_catAndDog/new28339232.jpg
+Images/full_catAndDog/new28439232.jpg
+Images/full_catAndDog/new28539232.jpg
+Images/full_catAndDog/new28637070.jpg
+Images/full_catAndDog/new28737070.jpg
+Images/full_catAndDog/new28837070.jpg
+Images/full_catAndDog/new28937070.jpg
+Images/full_catAndDog/new29037070.jpg
+Images/full_catAndDog/new29136703.jpg
+Images/full_catAndDog/new29336703.jpg
+Images/full_catAndDog/new29436703.jpg
+Images/full_catAndDog/new29536703.jpg
+Images/full_catAndDog/new29624163.jpg
+Images/full_catAndDog/new29724163.jpg
+Images/full_catAndDog/new29824163.jpg
+Images/full_catAndDog/new29924163.jpg
+Images/full_catAndDog/new30024163.jpg
+Images/full_catAndDog/new30121777.jpg
+Images/full_catAndDog/new30221777.jpg
+Images/full_catAndDog/new30321777.jpg
+Images/full_catAndDog/new30421777.jpg
+Images/full_catAndDog/new30521777.jpg
+Images/full_catAndDog/new30627113.jpg
+Images/full_catAndDog/new30727113.jpg
+Images/full_catAndDog/new30827113.jpg
+Images/full_catAndDog/new30927113.jpg
+Images/full_catAndDog/new31027113.jpg
+Images/full_catAndDog/new31123535.jpg
+Images/full_catAndDog/new31223535.jpg
+Images/full_catAndDog/new31323535.jpg
+Images/full_catAndDog/new31423535.jpg
+Images/full_catAndDog/new31523535.jpg
+Images/full_catAndDog/new31636941.jpg
+Images/full_catAndDog/new31736941.jpg
+Images/full_catAndDog/new31836941.jpg
+Images/full_catAndDog/new31936941.jpg
+Images/full_catAndDog/new32036941.jpg
+Images/full_catAndDog/new32135179.jpg
+Images/full_catAndDog/new32235179.jpg
+Images/full_catAndDog/new32335179.jpg
+Images/full_catAndDog/new32435179.jpg
+Images/full_catAndDog/new32535179.jpg
+Images/full_catAndDog/new32640232.jpg
+Images/full_catAndDog/new32740232.jpg
+Images/full_catAndDog/new32840232.jpg
+Images/full_catAndDog/new32940232.jpg
+Images/full_catAndDog/new33040232.jpg
+Images/full_catAndDog/new33132918.jpg
+Images/full_catAndDog/new33232918.jpg
+Images/full_catAndDog/new33332918.jpg
+Images/full_catAndDog/new33432918.jpg
+Images/full_catAndDog/new33532918.jpg
+Images/full_catAndDog/new33623301.jpg
+Images/full_catAndDog/new33823301.jpg
+Images/full_catAndDog/new33923301.jpg
+Images/full_catAndDog/new34023301.jpg
+Images/full_catAndDog/new34120638.jpg
+Images/full_catAndDog/new34220638.jpg
+Images/full_catAndDog/new34320638.jpg
+Images/full_catAndDog/new34420638.jpg
+Images/full_catAndDog/new34520638.jpg
+Images/full_catAndDog/new34625801.jpg
+Images/full_catAndDog/new34725801.jpg
+Images/full_catAndDog/new34825801.jpg
+Images/full_catAndDog/new34925801.jpg
+Images/full_catAndDog/new35025801.jpg
+Images/full_catAndDog/new35134757.jpg
+Images/full_catAndDog/new35234757.jpg
+Images/full_catAndDog/new35334757.jpg
+Images/full_catAndDog/new35434757.jpg
+Images/full_catAndDog/new35534757.jpg
+Images/full_catAndDog/new35632315.jpg
+Images/full_catAndDog/new35732315.jpg
+Images/full_catAndDog/new35832315.jpg
+Images/full_catAndDog/new35932315.jpg
+Images/full_catAndDog/new36032315.jpg
+Images/full_catAndDog/new36122612.jpg
+Images/full_catAndDog/new36222612.jpg
+Images/full_catAndDog/new36322612.jpg
+Images/full_catAndDog/new36422612.jpg
+Images/full_catAndDog/new36522612.jpg
+Images/full_catAndDog/new36633448.jpg
+Images/full_catAndDog/new36733448.jpg
+Images/full_catAndDog/new36833448.jpg
+Images/full_catAndDog/new36933448.jpg
+Images/full_catAndDog/new37033448.jpg
+Images/full_catAndDog/new37131519.jpg
+Images/full_catAndDog/new37231519.jpg
+Images/full_catAndDog/new37331519.jpg
+Images/full_catAndDog/new37431519.jpg
+Images/full_catAndDog/new37531519.jpg
+Images/full_catAndDog/new37626978.jpg
+Images/full_catAndDog/new37726978.jpg
+Images/full_catAndDog/new37826978.jpg
+Images/full_catAndDog/new38026978.jpg
+Images/full_catAndDog/new38137882.jpg
+Images/full_catAndDog/new38237882.jpg
+Images/full_catAndDog/new38337882.jpg
+Images/full_catAndDog/new38437882.jpg
+Images/full_catAndDog/new38537882.jpg
+Images/full_catAndDog/new38629413.jpg
+Images/full_catAndDog/new38729413.jpg
+Images/full_catAndDog/new38829413.jpg
+Images/full_catAndDog/new38929413.jpg
+Images/full_catAndDog/new39029413.jpg
+Images/full_catAndDog/new39137408.jpg
+Images/full_catAndDog/new39237408.jpg
+Images/full_catAndDog/new39337408.jpg
+Images/full_catAndDog/new39437408.jpg
+Images/full_catAndDog/new39623307.jpg
+Images/full_catAndDog/new39723307.jpg
+Images/full_catAndDog/new39823307.jpg
+Images/full_catAndDog/new39923307.jpg
+Images/full_catAndDog/new40023307.jpg
+Images/full_catAndDog/new40136720.jpg
+Images/full_catAndDog/new40236720.jpg
+Images/full_catAndDog/new40336720.jpg
+Images/full_catAndDog/new40436720.jpg
+Images/full_catAndDog/new40536720.jpg
+Images/full_catAndDog/new40627887.jpg
+Images/full_catAndDog/new40727887.jpg
+Images/full_catAndDog/new40827887.jpg
+Images/full_catAndDog/new40927887.jpg
+Images/full_catAndDog/new41027887.jpg
+Images/full_catAndDog/new41219107.jpg
+Images/full_catAndDog/new41319107.jpg
+Images/full_catAndDog/new41419107.jpg
+Images/full_catAndDog/new41519107.jpg
+Images/full_catAndDog/new41635519.jpg
+Images/full_catAndDog/new41735519.jpg
+Images/full_catAndDog/new41935519.jpg
+Images/full_catAndDog/new42035519.jpg
+Images/full_catAndDog/new42140009.jpg
+Images/full_catAndDog/new42240009.jpg
+Images/full_catAndDog/new42340009.jpg
+Images/full_catAndDog/new42440009.jpg
+Images/full_catAndDog/new42540009.jpg
+Images/full_catAndDog/new42632974.jpg
+Images/full_catAndDog/new42732974.jpg
+Images/full_catAndDog/new42832974.jpg
+Images/full_catAndDog/new42932974.jpg
+Images/full_catAndDog/new43032974.jpg
+Images/full_catAndDog/new43130023.jpg
+Images/full_catAndDog/new43230023.jpg
+Images/full_catAndDog/new43330023.jpg
+Images/full_catAndDog/new43430023.jpg
+Images/full_catAndDog/new43530023.jpg
+Images/full_catAndDog/new43632169.jpg
+Images/full_catAndDog/new43732169.jpg
+Images/full_catAndDog/new43832169.jpg
+Images/full_catAndDog/new43932169.jpg
+Images/full_catAndDog/new44032169.jpg
+Images/full_catAndDog/new44124784.jpg
+Images/full_catAndDog/new44224784.jpg
+Images/full_catAndDog/new44324784.jpg
+Images/full_catAndDog/new44424784.jpg
+Images/full_catAndDog/new44524784.jpg
+Images/full_catAndDog/new44626071.jpg
+Images/full_catAndDog/new44726071.jpg
+Images/full_catAndDog/new44826071.jpg
+Images/full_catAndDog/new44926071.jpg
+Images/full_catAndDog/new45026071.jpg
+Images/full_catAndDog/new45128262.jpg
+Images/full_catAndDog/new45228262.jpg
+Images/full_catAndDog/new45328262.jpg
+Images/full_catAndDog/new45428262.jpg
+Images/full_catAndDog/new45528262.jpg
+Images/full_catAndDog/new45626043.jpg
+Images/full_catAndDog/new45726043.jpg
+Images/full_catAndDog/new45826043.jpg
+Images/full_catAndDog/new45926043.jpg
+Images/full_catAndDog/new46026043.jpg
+Images/full_catAndDog/new46140785.jpg
+Images/full_catAndDog/new46240785.jpg
+Images/full_catAndDog/new46340785.jpg
+Images/full_catAndDog/new46440785.jpg
+Images/full_catAndDog/new46540785.jpg
+Images/full_catAndDog/new46631846.jpg
+Images/full_catAndDog/new46831846.jpg
+Images/full_catAndDog/new46931846.jpg
+Images/full_catAndDog/new47031846.jpg
+Images/full_catAndDog/new47138899.jpg
+Images/full_catAndDog/new47238899.jpg
+Images/full_catAndDog/new47338899.jpg
+Images/full_catAndDog/new47438899.jpg
+Images/full_catAndDog/new47538899.jpg
+Images/full_catAndDog/new47627957.jpg
+Images/full_catAndDog/new47727957.jpg
+Images/full_catAndDog/new47827957.jpg
+Images/full_catAndDog/new47927957.jpg
+Images/full_catAndDog/new48027957.jpg
+Images/full_catAndDog/new48125826.jpg
+Images/full_catAndDog/new48225826.jpg
+Images/full_catAndDog/new48325826.jpg
+Images/full_catAndDog/new48425826.jpg
+Images/full_catAndDog/new48525826.jpg
+Images/full_catAndDog/new48621197.jpg
+Images/full_catAndDog/new48721197.jpg
+Images/full_catAndDog/new48821197.jpg
+Images/full_catAndDog/new49021197.jpg
+Images/full_catAndDog/new49235281.jpg
+Images/full_catAndDog/new49335281.jpg
+Images/full_catAndDog/new49435281.jpg
+Images/full_catAndDog/new49535281.jpg
+Images/full_catAndDog/new49625295.jpg
+Images/full_catAndDog/new49725295.jpg
+Images/full_catAndDog/new49825295.jpg
+Images/full_catAndDog/new49925295.jpg
+Images/full_catAndDog/new50025295.jpg
+Images/full_catAndDog/new50121201.jpg
+Images/full_catAndDog/new50221201.jpg
+Images/full_catAndDog/new50321201.jpg
+Images/full_catAndDog/new50421201.jpg
+Images/full_catAndDog/new50521201.jpg
+Images/full_catAndDog/new50638450.jpg
+Images/full_catAndDog/new50738450.jpg
+Images/full_catAndDog/new50838450.jpg
+Images/full_catAndDog/new50938450.jpg
+Images/full_catAndDog/new51038450.jpg
+Images/full_catAndDog/new51136525.jpg
+Images/full_catAndDog/new51236525.jpg
+Images/full_catAndDog/new51336525.jpg
+Images/full_catAndDog/new51436525.jpg
+Images/full_catAndDog/new51536525.jpg
+Images/full_catAndDog/new51621284.jpg
+Images/full_catAndDog/new51721284.jpg
+Images/full_catAndDog/new51821284.jpg
+Images/full_catAndDog/new51921284.jpg
+Images/full_catAndDog/new52021284.jpg
+Images/full_catAndDog/new52132381.jpg
+Images/full_catAndDog/new52232381.jpg
+Images/full_catAndDog/new52332381.jpg
+Images/full_catAndDog/new52432381.jpg
+Images/full_catAndDog/new52532381.jpg
+Images/full_catAndDog/new52631823.jpg
+Images/full_catAndDog/new52731823.jpg
+Images/full_catAndDog/new52831823.jpg
+Images/full_catAndDog/new52931823.jpg
+Images/full_catAndDog/new53031823.jpg
+Images/full_catAndDog/new53126899.jpg
+Images/full_catAndDog/new53226899.jpg
+Images/full_catAndDog/new53326899.jpg
+Images/full_catAndDog/new53426899.jpg
+Images/full_catAndDog/new53526899.jpg
+Images/full_catAndDog/new53625813.jpg
+Images/full_catAndDog/new53725813.jpg
+Images/full_catAndDog/new53825813.jpg
+Images/full_catAndDog/new53925813.jpg
+Images/full_catAndDog/new54025813.jpg
+Images/full_catAndDog/new54119920.jpg
+Images/full_catAndDog/new54219920.jpg
+Images/full_catAndDog/new54319920.jpg
+Images/full_catAndDog/new54419920.jpg
+Images/full_catAndDog/new54519920.jpg
+Images/full_catAndDog/new54619769.jpg
+Images/full_catAndDog/new54819769.jpg
+Images/full_catAndDog/new54919769.jpg
+Images/full_catAndDog/new55019769.jpg
+Images/full_catAndDog/new55121187.jpg
+Images/full_catAndDog/new55221187.jpg
+Images/full_catAndDog/new55321187.jpg
+Images/full_catAndDog/new55421187.jpg
+Images/full_catAndDog/new55521187.jpg
+Images/full_catAndDog/new55625127.jpg
+Images/full_catAndDog/new55725127.jpg
+Images/full_catAndDog/new55825127.jpg
+Images/full_catAndDog/new55925127.jpg
+Images/full_catAndDog/new56025127.jpg
+Images/full_catAndDog/new56132267.jpg
+Images/full_catAndDog/new56232267.jpg
+Images/full_catAndDog/new56332267.jpg
+Images/full_catAndDog/new56432267.jpg
+Images/full_catAndDog/new56532267.jpg
+Images/full_catAndDog/new56623997.jpg
+Images/full_catAndDog/new56823997.jpg
+Images/full_catAndDog/new56923997.jpg
+Images/full_catAndDog/new57023997.jpg
+Images/full_catAndDog/new57133582.jpg
+Images/full_catAndDog/new57233582.jpg
+Images/full_catAndDog/new57333582.jpg
+Images/full_catAndDog/new57433582.jpg
+Images/full_catAndDog/new57533582.jpg
+Images/full_catAndDog/new57629875.jpg
+Images/full_catAndDog/new57729875.jpg
+Images/full_catAndDog/new57929875.jpg
+Images/full_catAndDog/new58029875.jpg
+Images/full_catAndDog/new58134860.jpg
+Images/full_catAndDog/new58234860.jpg
+Images/full_catAndDog/new58334860.jpg
+Images/full_catAndDog/new58434860.jpg
+Images/full_catAndDog/new58534860.jpg
+Images/full_catAndDog/new58632342.jpg
+Images/full_catAndDog/new58732342.jpg
+Images/full_catAndDog/new58832342.jpg
+Images/full_catAndDog/new58932342.jpg
+Images/full_catAndDog/new59032342.jpg
+Images/full_catAndDog/new59130790.jpg
+Images/full_catAndDog/new59230790.jpg
+Images/full_catAndDog/new59330790.jpg
+Images/full_catAndDog/new59430790.jpg
+Images/full_catAndDog/new59530790.jpg
+Images/full_catAndDog/new59622029.jpg
+Images/full_catAndDog/new59722029.jpg
+Images/full_catAndDog/new59822029.jpg
+Images/full_catAndDog/new59922029.jpg
+Images/full_catAndDog/new60022029.jpg
+Images/full_catAndDog/new60133264.jpg
+Images/full_catAndDog/new60233264.jpg
+Images/full_catAndDog/new60333264.jpg
+Images/full_catAndDog/new60433264.jpg
+Images/full_catAndDog/new60533264.jpg
+Images/full_catAndDog/new60634107.jpg
+Images/full_catAndDog/new60734107.jpg
+Images/full_catAndDog/new60934107.jpg
+Images/full_catAndDog/new61034107.jpg
+Images/full_catAndDog/new61133951.jpg
+Images/full_catAndDog/new61233951.jpg
+Images/full_catAndDog/new61333951.jpg
+Images/full_catAndDog/new61533951.jpg
+Images/full_catAndDog/new61639757.jpg
+Images/full_catAndDog/new61739757.jpg
+Images/full_catAndDog/new61839757.jpg
+Images/full_catAndDog/new61939757.jpg
+Images/full_catAndDog/new62039757.jpg
+Images/full_catAndDog/new62131638.jpg
+Images/full_catAndDog/new62231638.jpg
+Images/full_catAndDog/new62331638.jpg
+Images/full_catAndDog/new62639012.jpg
+Images/full_catAndDog/new62739012.jpg
+Images/full_catAndDog/new62839012.jpg
+Images/full_catAndDog/new62939012.jpg
+Images/full_catAndDog/new63039012.jpg
+Images/full_catAndDog/new63139996.jpg
+Images/full_catAndDog/new63239996.jpg
+Images/full_catAndDog/new63339996.jpg
+Images/full_catAndDog/new63439996.jpg
+Images/full_catAndDog/new63539996.jpg
+Images/full_catAndDog/new63635869.jpg
+Images/full_catAndDog/new63735869.jpg
+Images/full_catAndDog/new63835869.jpg
+Images/full_catAndDog/new63935869.jpg
+Images/full_catAndDog/new64035869.jpg
+Images/full_catAndDog/new64138896.jpg
+Images/full_catAndDog/new64238896.jpg
+Images/full_catAndDog/new64338896.jpg
+Images/full_catAndDog/new64438896.jpg
+Images/full_catAndDog/new64538896.jpg
+Images/full_catAndDog/new64621136.jpg
+Images/full_catAndDog/new64721136.jpg
+Images/full_catAndDog/new64821136.jpg
+Images/full_catAndDog/new64921136.jpg
+Images/full_catAndDog/new65021136.jpg
+Images/full_catAndDog/new65132509.jpg
+Images/full_catAndDog/new65232509.jpg
+Images/full_catAndDog/new65332509.jpg
+Images/full_catAndDog/new65432509.jpg
+Images/full_catAndDog/new65532509.jpg
+Images/full_catAndDog/new65628143.jpg
+Images/full_catAndDog/new65728143.jpg
+Images/full_catAndDog/new65828143.jpg
+Images/full_catAndDog/new65928143.jpg
+Images/full_catAndDog/new66028143.jpg
+Images/full_catAndDog/new66123800.jpg
+Images/full_catAndDog/new66223800.jpg
+Images/full_catAndDog/new66323800.jpg
+Images/full_catAndDog/new66423800.jpg
+Images/full_catAndDog/new66523800.jpg
+Images/full_catAndDog/new66625839.jpg
+Images/full_catAndDog/new66725839.jpg
+Images/full_catAndDog/new66825839.jpg
+Images/full_catAndDog/new66925839.jpg
+Images/full_catAndDog/new67025839.jpg
+Images/full_catAndDog/new67132755.jpg
+Images/full_catAndDog/new67332755.jpg
+Images/full_catAndDog/new67432755.jpg
+Images/full_catAndDog/new67532755.jpg
+Images/full_catAndDog/new67622227.jpg
+Images/full_catAndDog/new67722227.jpg
+Images/full_catAndDog/new67822227.jpg
+Images/full_catAndDog/new67922227.jpg
+Images/full_catAndDog/new68022227.jpg
+Images/full_catAndDog/new68119750.jpg
+Images/full_catAndDog/new68219750.jpg
+Images/full_catAndDog/new68319750.jpg
+Images/full_catAndDog/new68419750.jpg
+Images/full_catAndDog/new68519750.jpg
+Images/full_catAndDog/new68629793.jpg
+Images/full_catAndDog/new68729793.jpg
+Images/full_catAndDog/new68829793.jpg
+Images/full_catAndDog/new68929793.jpg
+Images/full_catAndDog/new69029793.jpg
+Images/full_catAndDog/new69129471.jpg
+Images/full_catAndDog/new69229471.jpg
+Images/full_catAndDog/new69329471.jpg
+Images/full_catAndDog/new69529471.jpg
+Images/full_catAndDog/new69621707.jpg
+Images/full_catAndDog/new69721707.jpg
+Images/full_catAndDog/new69821707.jpg
+Images/full_catAndDog/new69921707.jpg
+Images/full_catAndDog/new70021707.jpg
+Images/full_catAndDog/new70138312.jpg
+Images/full_catAndDog/new70238312.jpg
+Images/full_catAndDog/new70338312.jpg
+Images/full_catAndDog/new70438312.jpg
+Images/full_catAndDog/new70538312.jpg
+Images/full_catAndDog/new70628664.jpg
+Images/full_catAndDog/new70728664.jpg
+Images/full_catAndDog/new70828664.jpg
+Images/full_catAndDog/new70928664.jpg
+Images/full_catAndDog/new71135646.jpg
+Images/full_catAndDog/new71235646.jpg
+Images/full_catAndDog/new71435646.jpg
+Images/full_catAndDog/new71535646.jpg
+Images/full_catAndDog/new71620804.jpg
+Images/full_catAndDog/new71720804.jpg
+Images/full_catAndDog/new71820804.jpg
+Images/full_catAndDog/new71920804.jpg
+Images/full_catAndDog/new72020804.jpg
+Images/full_catAndDog/new72131688.jpg
+Images/full_catAndDog/new72231688.jpg
+Images/full_catAndDog/new72331688.jpg
+Images/full_catAndDog/new72431688.jpg
+Images/full_catAndDog/new72531688.jpg
+Images/full_catAndDog/new72640603.jpg
+Images/full_catAndDog/new72740603.jpg
+Images/full_catAndDog/new72840603.jpg
+Images/full_catAndDog/new72940603.jpg
+Images/full_catAndDog/new73040603.jpg
+Images/full_catAndDog/new73138143.jpg
+Images/full_catAndDog/new73238143.jpg
+Images/full_catAndDog/new73338143.jpg
+Images/full_catAndDog/new73438143.jpg
+Images/full_catAndDog/new73538143.jpg
+Images/full_catAndDog/new73619904.jpg
+Images/full_catAndDog/new73719904.jpg
+Images/full_catAndDog/new73919904.jpg
+Images/full_catAndDog/new74019904.jpg
+Images/full_catAndDog/new74138349.jpg
+Images/full_catAndDog/new74238349.jpg
+Images/full_catAndDog/new74338349.jpg
+Images/full_catAndDog/new74438349.jpg
+Images/full_catAndDog/new74538349.jpg
+Images/full_catAndDog/new74627292.jpg
+Images/full_catAndDog/new74727292.jpg
+Images/full_catAndDog/new74827292.jpg
+Images/full_catAndDog/new74927292.jpg
+Images/full_catAndDog/new75027292.jpg
+Images/full_catAndDog/new75124633.jpg
+Images/full_catAndDog/new75224633.jpg
+Images/full_catAndDog/new75324633.jpg
+Images/full_catAndDog/new75424633.jpg
+Images/full_catAndDog/new75524633.jpg
+Images/full_catAndDog/new75626829.jpg
+Images/full_catAndDog/new75726829.jpg
+Images/full_catAndDog/new75826829.jpg
+Images/full_catAndDog/new75926829.jpg
+Images/full_catAndDog/new76026829.jpg
+Images/full_catAndDog/new76137652.jpg
+Images/full_catAndDog/new76237652.jpg
+Images/full_catAndDog/new76337652.jpg
+Images/full_catAndDog/new76437652.jpg
+Images/full_catAndDog/new76537652.jpg
+Images/full_catAndDog/new76632929.jpg
+Images/full_catAndDog/new76732929.jpg
+Images/full_catAndDog/new76832929.jpg
+Images/full_catAndDog/new76932929.jpg
+Images/full_catAndDog/new77032929.jpg
+Images/full_catAndDog/new77133071.jpg
+Images/full_catAndDog/new77233071.jpg
+Images/full_catAndDog/new77333071.jpg
+Images/full_catAndDog/new77433071.jpg
+Images/full_catAndDog/new77533071.jpg
+Images/full_catAndDog/new77635416.jpg
+Images/full_catAndDog/new77735416.jpg
+Images/full_catAndDog/new77835416.jpg
+Images/full_catAndDog/new77935416.jpg
+Images/full_catAndDog/new78035416.jpg
+Images/full_catAndDog/new78124449.jpg
+Images/full_catAndDog/new78224449.jpg
+Images/full_catAndDog/new78324449.jpg
+Images/full_catAndDog/new78424449.jpg
+Images/full_catAndDog/new78524449.jpg
+Images/full_catAndDog/new78622327.jpg
+Images/full_catAndDog/new78722327.jpg
+Images/full_catAndDog/new78822327.jpg
+Images/full_catAndDog/new78922327.jpg
+Images/full_catAndDog/new79022327.jpg
+Images/full_catAndDog/new79125957.jpg
+Images/full_catAndDog/new79225957.jpg
+Images/full_catAndDog/new79325957.jpg
+Images/full_catAndDog/new79425957.jpg
+Images/full_catAndDog/new79525957.jpg
+Images/full_catAndDog/new79630255.jpg
+Images/full_catAndDog/new79730255.jpg
+Images/full_catAndDog/new79830255.jpg
+Images/full_catAndDog/new79930255.jpg
+Images/full_catAndDog/new80030255.jpg
+Images/full_catAndDog/new80135124.jpg
+Images/full_catAndDog/new80235124.jpg
+Images/full_catAndDog/new80335124.jpg
+Images/full_catAndDog/new80435124.jpg
+Images/full_catAndDog/new80535124.jpg
+Images/full_catAndDog/new80635644.jpg
+Images/full_catAndDog/new80735644.jpg
+Images/full_catAndDog/new80835644.jpg
+Images/full_catAndDog/new80935644.jpg
+Images/full_catAndDog/new81035644.jpg
+Images/full_catAndDog/new81127937.jpg
+Images/full_catAndDog/new81227937.jpg
+Images/full_catAndDog/new81327937.jpg
+Images/full_catAndDog/new81427937.jpg
+Images/full_catAndDog/new81527937.jpg
+Images/full_catAndDog/new81625775.jpg
+Images/full_catAndDog/new81725775.jpg
+Images/full_catAndDog/new81825775.jpg
+Images/full_catAndDog/new81925775.jpg
+Images/full_catAndDog/new82025775.jpg
+Images/full_catAndDog/new82120937.jpg
+Images/full_catAndDog/new82220937.jpg
+Images/full_catAndDog/new82320937.jpg
+Images/full_catAndDog/new82420937.jpg
+Images/full_catAndDog/new82520937.jpg
+Images/full_catAndDog/new82621922.jpg
+Images/full_catAndDog/new82721922.jpg
+Images/full_catAndDog/new82821922.jpg
+Images/full_catAndDog/new82921922.jpg
+Images/full_catAndDog/new83021922.jpg
+Images/full_catAndDog/new83128222.jpg
+Images/full_catAndDog/new83228222.jpg
+Images/full_catAndDog/new83328222.jpg
+Images/full_catAndDog/new83428222.jpg
+Images/full_catAndDog/new83528222.jpg
+Images/full_catAndDog/new83632894.jpg
+Images/full_catAndDog/new83732894.jpg
+Images/full_catAndDog/new83832894.jpg
+Images/full_catAndDog/new83932894.jpg
+Images/full_catAndDog/new84032894.jpg
+Images/full_catAndDog/new84126150.jpg
+Images/full_catAndDog/new84226150.jpg
+Images/full_catAndDog/new84326150.jpg
+Images/full_catAndDog/new84426150.jpg
+Images/full_catAndDog/new84526150.jpg
+Images/full_catAndDog/new84627376.jpg
+Images/full_catAndDog/new84727376.jpg
+Images/full_catAndDog/new84827376.jpg
+Images/full_catAndDog/new84927376.jpg
+Images/full_catAndDog/new85027376.jpg
+Images/full_catAndDog/new85126005.jpg
+Images/full_catAndDog/new85226005.jpg
+Images/full_catAndDog/new85326005.jpg
+Images/full_catAndDog/new85426005.jpg
+Images/full_catAndDog/new85526005.jpg
+Images/full_catAndDog/new85620503.jpg
+Images/full_catAndDog/new85720503.jpg
+Images/full_catAndDog/new85920503.jpg
+Images/full_catAndDog/new86020503.jpg
+Images/full_catAndDog/new86135632.jpg
+Images/full_catAndDog/new86235632.jpg
+Images/full_catAndDog/new86335632.jpg
+Images/full_catAndDog/new86435632.jpg
+Images/full_catAndDog/new86535632.jpg
+Images/full_catAndDog/new86638221.jpg
+Images/full_catAndDog/new86738221.jpg
+Images/full_catAndDog/new86838221.jpg
+Images/full_catAndDog/new86938221.jpg
+Images/full_catAndDog/new87038221.jpg
+Images/full_catAndDog/new87124027.jpg
+Images/full_catAndDog/new87224027.jpg
+Images/full_catAndDog/new87324027.jpg
+Images/full_catAndDog/new87424027.jpg
+Images/full_catAndDog/new87524027.jpg
+Images/full_catAndDog/new87735789.jpg
+Images/full_catAndDog/new87835789.jpg
+Images/full_catAndDog/new87935789.jpg
+Images/full_catAndDog/new88035789.jpg
+Images/full_catAndDog/new88133783.jpg
+Images/full_catAndDog/new88233783.jpg
+Images/full_catAndDog/new88333783.jpg
+Images/full_catAndDog/new88433783.jpg
+Images/full_catAndDog/new88533783.jpg
+Images/full_catAndDog/new88635755.jpg
+Images/full_catAndDog/new88735755.jpg
+Images/full_catAndDog/new88835755.jpg
+Images/full_catAndDog/new88935755.jpg
+Images/full_catAndDog/new89035755.jpg
+Images/full_catAndDog/new89121305.jpg
+Images/full_catAndDog/new89221305.jpg
+Images/full_catAndDog/new89321305.jpg
+Images/full_catAndDog/new89421305.jpg
+Images/full_catAndDog/new89632418.jpg
+Images/full_catAndDog/new89732418.jpg
+Images/full_catAndDog/new89832418.jpg
+Images/full_catAndDog/new89932418.jpg
+Images/full_catAndDog/new90032418.jpg
+Images/full_catAndDog/new90119536.jpg
+Images/full_catAndDog/new90219536.jpg
+Images/full_catAndDog/new90319536.jpg
+Images/full_catAndDog/new90419536.jpg
+Images/full_catAndDog/new90519536.jpg
+Images/full_catAndDog/new90639907.jpg
+Images/full_catAndDog/new90739907.jpg
+Images/full_catAndDog/new90839907.jpg
+Images/full_catAndDog/new90939907.jpg
+Images/full_catAndDog/new91039907.jpg
+Images/full_catAndDog/new91122482.jpg
+Images/full_catAndDog/new91222482.jpg
+Images/full_catAndDog/new91322482.jpg
+Images/full_catAndDog/new91422482.jpg
+Images/full_catAndDog/new91522482.jpg
+Images/full_catAndDog/new91623949.jpg
+Images/full_catAndDog/new91723949.jpg
+Images/full_catAndDog/new91823949.jpg
+Images/full_catAndDog/new91923949.jpg
+Images/full_catAndDog/new92023949.jpg
+Images/full_catAndDog/new92138052.jpg
+Images/full_catAndDog/new92238052.jpg
+Images/full_catAndDog/new92338052.jpg
+Images/full_catAndDog/new92438052.jpg
+Images/full_catAndDog/new92538052.jpg
+Images/full_catAndDog/new92623308.jpg
+Images/full_catAndDog/new92723308.jpg
+Images/full_catAndDog/new92823308.jpg
+Images/full_catAndDog/new92923308.jpg
+Images/full_catAndDog/new93023308.jpg
+Images/full_catAndDog/new93131418.jpg
+Images/full_catAndDog/new93231418.jpg
+Images/full_catAndDog/new93331418.jpg
+Images/full_catAndDog/new93431418.jpg
+Images/full_catAndDog/new93630281.jpg
+Images/full_catAndDog/new93730281.jpg
+Images/full_catAndDog/new93830281.jpg
+Images/full_catAndDog/new93930281.jpg
+Images/full_catAndDog/new94030281.jpg
+Images/full_catAndDog/new94128987.jpg
+Images/full_catAndDog/new94228987.jpg
+Images/full_catAndDog/new94428987.jpg
+Images/full_catAndDog/new94528987.jpg
+Images/full_catAndDog/new94632316.jpg
+Images/full_catAndDog/new94732316.jpg
+Images/full_catAndDog/new94832316.jpg
+Images/full_catAndDog/new94932316.jpg
+Images/full_catAndDog/new95032316.jpg
+Images/full_catAndDog/new95139278.jpg
+Images/full_catAndDog/new95239278.jpg
+Images/full_catAndDog/new95339278.jpg
+Images/full_catAndDog/new95439278.jpg
+Images/full_catAndDog/new95539278.jpg
+Images/full_catAndDog/new95621580.jpg
+Images/full_catAndDog/new95721580.jpg
+Images/full_catAndDog/new95821580.jpg
+Images/full_catAndDog/new95921580.jpg
+Images/full_catAndDog/new96021580.jpg
+Images/full_catAndDog/new96139413.jpg
+Images/full_catAndDog/new96239413.jpg
+Images/full_catAndDog/new96339413.jpg
+Images/full_catAndDog/new96439413.jpg
+Images/full_catAndDog/new96539413.jpg
+Images/full_catAndDog/new96719799.jpg
+Images/full_catAndDog/new96819799.jpg
+Images/full_catAndDog/new96919799.jpg
+Images/full_catAndDog/new97019799.jpg
+Images/full_catAndDog/new97130956.jpg
+Images/full_catAndDog/new97230956.jpg
+Images/full_catAndDog/new97330956.jpg
+Images/full_catAndDog/new97430956.jpg
+Images/full_catAndDog/new97530956.jpg
+Images/full_catAndDog/new97630998.jpg
+Images/full_catAndDog/new97730998.jpg
+Images/full_catAndDog/new97830998.jpg
+Images/full_catAndDog/new97930998.jpg
+Images/full_catAndDog/new98030998.jpg
+Images/full_catAndDog/new98129968.jpg
+Images/full_catAndDog/new98229968.jpg
+Images/full_catAndDog/new98329968.jpg
+Images/full_catAndDog/new98429968.jpg
+Images/full_catAndDog/new98529968.jpg
+Images/full_catAndDog/new98635798.jpg
+Images/full_catAndDog/new98735798.jpg
+Images/full_catAndDog/new98835798.jpg
+Images/full_catAndDog/new98935798.jpg
+Images/full_catAndDog/new99035798.jpg
+Images/full_catAndDog/new99127427.jpg
+Images/full_catAndDog/new99227427.jpg
+Images/full_catAndDog/new99327427.jpg
+Images/full_catAndDog/new99427427.jpg
+Images/full_catAndDog/new99527427.jpg
+Images/full_catAndDog/new99633141.jpg
+Images/full_catAndDog/new99733141.jpg
+Images/full_catAndDog/new99833141.jpg
+Images/full_catAndDog/new99933141.jpg
+Images/full_catAndDog/new100033141.jpg
+Images/full_catAndDog/new100127482.jpg
+Images/full_catAndDog/new100227482.jpg
+Images/full_catAndDog/new100427482.jpg
+Images/full_catAndDog/new100527482.jpg
+Images/full_catAndDog/new100733475.jpg
+Images/full_catAndDog/new100833475.jpg
+Images/full_catAndDog/new100933475.jpg
+Images/full_catAndDog/new101033475.jpg
+Images/full_catAndDog/new101128604.jpg
+Images/full_catAndDog/new101228604.jpg
+Images/full_catAndDog/new101328604.jpg
+Images/full_catAndDog/new101428604.jpg
+Images/full_catAndDog/new101528604.jpg
+Images/full_catAndDog/new101627148.jpg
+Images/full_catAndDog/new101727148.jpg
+Images/full_catAndDog/new101827148.jpg
+Images/full_catAndDog/new101927148.jpg
+Images/full_catAndDog/new102027148.jpg
+Images/full_catAndDog/new102127358.jpg
+Images/full_catAndDog/new102227358.jpg
+Images/full_catAndDog/new102327358.jpg
+Images/full_catAndDog/new102427358.jpg
+Images/full_catAndDog/new102527358.jpg
+Images/full_catAndDog/new102627475.jpg
+Images/full_catAndDog/new102727475.jpg
+Images/full_catAndDog/new102827475.jpg
+Images/full_catAndDog/new102927475.jpg
+Images/full_catAndDog/new103027475.jpg
+Images/full_catAndDog/new103138452.jpg
+Images/full_catAndDog/new103238452.jpg
+Images/full_catAndDog/new103338452.jpg
+Images/full_catAndDog/new103438452.jpg
+Images/full_catAndDog/new103538452.jpg
+Images/full_catAndDog/new103640670.jpg
+Images/full_catAndDog/new103740670.jpg
+Images/full_catAndDog/new103840670.jpg
+Images/full_catAndDog/new103940670.jpg
+Images/full_catAndDog/new104040670.jpg
+Images/full_catAndDog/new104128590.jpg
+Images/full_catAndDog/new104228590.jpg
+Images/full_catAndDog/new104328590.jpg
+Images/full_catAndDog/new104428590.jpg
+Images/full_catAndDog/new104528590.jpg
+Images/full_catAndDog/new104631333.jpg
+Images/full_catAndDog/new104731333.jpg
+Images/full_catAndDog/new104831333.jpg
+Images/full_catAndDog/new104931333.jpg
+Images/full_catAndDog/new105031333.jpg
+Images/full_catAndDog/new105121435.jpg
+Images/full_catAndDog/new105221435.jpg
+Images/full_catAndDog/new105321435.jpg
+Images/full_catAndDog/new105421435.jpg
+Images/full_catAndDog/new105521435.jpg
+Images/full_catAndDog/new105640428.jpg
+Images/full_catAndDog/new105740428.jpg
+Images/full_catAndDog/new105840428.jpg
+Images/full_catAndDog/new106040428.jpg
+Images/full_catAndDog/new106129252.jpg
+Images/full_catAndDog/new106229252.jpg
+Images/full_catAndDog/new106329252.jpg
+Images/full_catAndDog/new106429252.jpg
+Images/full_catAndDog/new106529252.jpg
+Images/full_catAndDog/new106629749.jpg
+Images/full_catAndDog/new106729749.jpg
+Images/full_catAndDog/new106829749.jpg
+Images/full_catAndDog/new107029749.jpg
+Images/full_catAndDog/new107135036.jpg
+Images/full_catAndDog/new107235036.jpg
+Images/full_catAndDog/new107335036.jpg
+Images/full_catAndDog/new107435036.jpg
+Images/full_catAndDog/new107535036.jpg
+Images/full_catAndDog/new107633500.jpg
+Images/full_catAndDog/new107733500.jpg
+Images/full_catAndDog/new107833500.jpg
+Images/full_catAndDog/new107933500.jpg
+Images/full_catAndDog/new108033500.jpg
+Images/full_catAndDog/new108128887.jpg
+Images/full_catAndDog/new108228887.jpg
+Images/full_catAndDog/new108328887.jpg
+Images/full_catAndDog/new108428887.jpg
+Images/full_catAndDog/new108528887.jpg
+Images/full_catAndDog/new108625784.jpg
+Images/full_catAndDog/new108725784.jpg
+Images/full_catAndDog/new108825784.jpg
+Images/full_catAndDog/new108925784.jpg
+Images/full_catAndDog/new109135588.jpg
+Images/full_catAndDog/new109235588.jpg
+Images/full_catAndDog/new109335588.jpg
+Images/full_catAndDog/new109624897.jpg
+Images/full_catAndDog/new109724897.jpg
+Images/full_catAndDog/new109824897.jpg
+Images/full_catAndDog/new109924897.jpg
+Images/full_catAndDog/new110024897.jpg
+Images/full_catAndDog/new110122634.jpg
+Images/full_catAndDog/new110222634.jpg
+Images/full_catAndDog/new110322634.jpg
+Images/full_catAndDog/new110522634.jpg
+Images/full_catAndDog/new110626308.jpg
+Images/full_catAndDog/new110726308.jpg
+Images/full_catAndDog/new110826308.jpg
+Images/full_catAndDog/new110926308.jpg
+Images/full_catAndDog/new111026308.jpg
+Images/full_catAndDog/new111123899.jpg
+Images/full_catAndDog/new111223899.jpg
+Images/full_catAndDog/new111323899.jpg
+Images/full_catAndDog/new111423899.jpg
+Images/full_catAndDog/new111523899.jpg
+Images/full_catAndDog/new111632344.jpg
+Images/full_catAndDog/new111732344.jpg
+Images/full_catAndDog/new111832344.jpg
+Images/full_catAndDog/new111932344.jpg
+Images/full_catAndDog/new112032344.jpg
+Images/full_catAndDog/new112126398.jpg
+Images/full_catAndDog/new112226398.jpg
+Images/full_catAndDog/new112326398.jpg
+Images/full_catAndDog/new112426398.jpg
+Images/full_catAndDog/new112526398.jpg
+Images/full_catAndDog/new112633997.jpg
+Images/full_catAndDog/new112733997.jpg
+Images/full_catAndDog/new112833997.jpg
+Images/full_catAndDog/new112933997.jpg
+Images/full_catAndDog/new113033997.jpg
+Images/full_catAndDog/new113122288.jpg
+Images/full_catAndDog/new113222288.jpg
+Images/full_catAndDog/new113322288.jpg
+Images/full_catAndDog/new113422288.jpg
+Images/full_catAndDog/new113522288.jpg
+Images/full_catAndDog/new113725881.jpg
+Images/full_catAndDog/new113825881.jpg
+Images/full_catAndDog/new113925881.jpg
+Images/full_catAndDog/new114025881.jpg
+Images/full_catAndDog/new114127233.jpg
+Images/full_catAndDog/new114227233.jpg
+Images/full_catAndDog/new114327233.jpg
+Images/full_catAndDog/new114427233.jpg
+Images/full_catAndDog/new114527233.jpg
+Images/full_catAndDog/new114623324.jpg
+Images/full_catAndDog/new114723324.jpg
+Images/full_catAndDog/new114823324.jpg
+Images/full_catAndDog/new114923324.jpg
+Images/full_catAndDog/new115023324.jpg
+Images/full_catAndDog/new115235323.jpg
+Images/full_catAndDog/new115335323.jpg
+Images/full_catAndDog/new115435323.jpg
+Images/full_catAndDog/new115535323.jpg
+Images/full_catAndDog/new115640522.jpg
+Images/full_catAndDog/new115740522.jpg
+Images/full_catAndDog/new115840522.jpg
+Images/full_catAndDog/new115940522.jpg
+Images/full_catAndDog/new116040522.jpg
+Images/full_catAndDog/new116139848.jpg
+Images/full_catAndDog/new116239848.jpg
+Images/full_catAndDog/new116339848.jpg
+Images/full_catAndDog/new116439848.jpg
+Images/full_catAndDog/new116539848.jpg
+Images/full_catAndDog/new116640093.jpg
+Images/full_catAndDog/new116740093.jpg
+Images/full_catAndDog/new116840093.jpg
+Images/full_catAndDog/new116940093.jpg
+Images/full_catAndDog/new117121137.jpg
+Images/full_catAndDog/new117221137.jpg
+Images/full_catAndDog/new117321137.jpg
+Images/full_catAndDog/new117421137.jpg
+Images/full_catAndDog/new117521137.jpg
+Images/full_catAndDog/new117635196.jpg
+Images/full_catAndDog/new117735196.jpg
+Images/full_catAndDog/new117835196.jpg
+Images/full_catAndDog/new117935196.jpg
+Images/full_catAndDog/new118035196.jpg
+Images/full_catAndDog/new118126783.jpg
+Images/full_catAndDog/new118226783.jpg
+Images/full_catAndDog/new118326783.jpg
+Images/full_catAndDog/new118426783.jpg
+Images/full_catAndDog/new118526783.jpg
+Images/full_catAndDog/new118620220.jpg
+Images/full_catAndDog/new118720220.jpg
+Images/full_catAndDog/new118820220.jpg
+Images/full_catAndDog/new118920220.jpg
+Images/full_catAndDog/new119020220.jpg
+Images/full_catAndDog/new119120811.jpg
+Images/full_catAndDog/new119220811.jpg
+Images/full_catAndDog/new119320811.jpg
+Images/full_catAndDog/new119420811.jpg
+Images/full_catAndDog/new119520811.jpg
+Images/full_catAndDog/new119619862.jpg
+Images/full_catAndDog/new119719862.jpg
+Images/full_catAndDog/new119819862.jpg
+Images/full_catAndDog/new119919862.jpg
+Images/full_catAndDog/new120019862.jpg
+Images/full_catAndDog/new120121157.jpg
+Images/full_catAndDog/new120221157.jpg
+Images/full_catAndDog/new120321157.jpg
+Images/full_catAndDog/new120421157.jpg
+Images/full_catAndDog/new120521157.jpg
+Images/full_catAndDog/new120628679.jpg
+Images/full_catAndDog/new120728679.jpg
+Images/full_catAndDog/new120928679.jpg
+Images/full_catAndDog/new121028679.jpg
+Images/full_catAndDog/new121123799.jpg
+Images/full_catAndDog/new121223799.jpg
+Images/full_catAndDog/new121323799.jpg
+Images/full_catAndDog/new121423799.jpg
+Images/full_catAndDog/new121523799.jpg
+Images/full_catAndDog/new121737301.jpg
+Images/full_catAndDog/new121837301.jpg
+Images/full_catAndDog/new121937301.jpg
+Images/full_catAndDog/new122037301.jpg
+Images/full_catAndDog/new122129428.jpg
+Images/full_catAndDog/new122229428.jpg
+Images/full_catAndDog/new122329428.jpg
+Images/full_catAndDog/new122429428.jpg
+Images/full_catAndDog/new122529428.jpg
+Images/full_catAndDog/new122629831.jpg
+Images/full_catAndDog/new122729831.jpg
+Images/full_catAndDog/new122829831.jpg
+Images/full_catAndDog/new122929831.jpg
+Images/full_catAndDog/new123029831.jpg
+Images/full_catAndDog/new123134627.jpg
+Images/full_catAndDog/new123334627.jpg
+Images/full_catAndDog/new123434627.jpg
+Images/full_catAndDog/new123534627.jpg
+Images/full_catAndDog/new123621632.jpg
+Images/full_catAndDog/new123721632.jpg
+Images/full_catAndDog/new123821632.jpg
+Images/full_catAndDog/new123921632.jpg
+Images/full_catAndDog/new124021632.jpg
+Images/full_catAndDog/new124127045.jpg
+Images/full_catAndDog/new124327045.jpg
+Images/full_catAndDog/new124427045.jpg
+Images/full_catAndDog/new124527045.jpg
+Images/full_catAndDog/new124635661.jpg
+Images/full_catAndDog/new124835661.jpg
+Images/full_catAndDog/new124935661.jpg
+Images/full_catAndDog/new125035661.jpg
+Images/full_catAndDog/new125124116.jpg
+Images/full_catAndDog/new125224116.jpg
+Images/full_catAndDog/new125424116.jpg
+Images/full_catAndDog/new125524116.jpg
+Images/full_catAndDog/new125622331.jpg
+Images/full_catAndDog/new125722331.jpg
+Images/full_catAndDog/new125822331.jpg
+Images/full_catAndDog/new125922331.jpg
+Images/full_catAndDog/new126022331.jpg
+Images/full_catAndDog/new126132223.jpg
+Images/full_catAndDog/new126232223.jpg
+Images/full_catAndDog/new126332223.jpg
+Images/full_catAndDog/new126432223.jpg
+Images/full_catAndDog/new126532223.jpg
+Images/full_catAndDog/new126633813.jpg
+Images/full_catAndDog/new126733813.jpg
+Images/full_catAndDog/new126833813.jpg
+Images/full_catAndDog/new126933813.jpg
+Images/full_catAndDog/new127033813.jpg
+Images/full_catAndDog/new127119608.jpg
+Images/full_catAndDog/new127219608.jpg
+Images/full_catAndDog/new127319608.jpg
+Images/full_catAndDog/new127419608.jpg
+Images/full_catAndDog/new127519608.jpg
+Images/full_catAndDog/new127640225.jpg
+Images/full_catAndDog/new127740225.jpg
+Images/full_catAndDog/new127840225.jpg
+Images/full_catAndDog/new127940225.jpg
+Images/full_catAndDog/new128040225.jpg
+Images/full_catAndDog/new128133411.jpg
+Images/full_catAndDog/new128233411.jpg
+Images/full_catAndDog/new128333411.jpg
+Images/full_catAndDog/new128433411.jpg
+Images/full_catAndDog/new128533411.jpg
+Images/full_catAndDog/new128625187.jpg
+Images/full_catAndDog/new128725187.jpg
+Images/full_catAndDog/new128825187.jpg
+Images/full_catAndDog/new128925187.jpg
+Images/full_catAndDog/new129025187.jpg
+Images/full_catAndDog/new129121186.jpg
+Images/full_catAndDog/new129221186.jpg
+Images/full_catAndDog/new129321186.jpg
+Images/full_catAndDog/new129421186.jpg
+Images/full_catAndDog/new129521186.jpg
+Images/full_catAndDog/new129635349.jpg
+Images/full_catAndDog/new129735349.jpg
+Images/full_catAndDog/new129835349.jpg
+Images/full_catAndDog/new129935349.jpg
+Images/full_catAndDog/new130035349.jpg
+Images/full_catAndDog/new130131412.jpg
+Images/full_catAndDog/new130231412.jpg
+Images/full_catAndDog/new130331412.jpg
+Images/full_catAndDog/new130431412.jpg
+Images/full_catAndDog/new130531412.jpg
+Images/full_catAndDog/new130621946.jpg
+Images/full_catAndDog/new130721946.jpg
+Images/full_catAndDog/new130821946.jpg
+Images/full_catAndDog/new130921946.jpg
+Images/full_catAndDog/new131021946.jpg
+Images/full_catAndDog/new131124678.jpg
+Images/full_catAndDog/new131224678.jpg
+Images/full_catAndDog/new131324678.jpg
+Images/full_catAndDog/new131424678.jpg
+Images/full_catAndDog/new131524678.jpg
+Images/full_catAndDog/new131627622.jpg
+Images/full_catAndDog/new131727622.jpg
+Images/full_catAndDog/new131827622.jpg
+Images/full_catAndDog/new131927622.jpg
+Images/full_catAndDog/new132027622.jpg
+Images/full_catAndDog/new132124469.jpg
+Images/full_catAndDog/new132224469.jpg
+Images/full_catAndDog/new132324469.jpg
+Images/full_catAndDog/new132424469.jpg
+Images/full_catAndDog/new132524469.jpg
+Images/full_catAndDog/new132638923.jpg
+Images/full_catAndDog/new132738923.jpg
+Images/full_catAndDog/new132838923.jpg
+Images/full_catAndDog/new132938923.jpg
+Images/full_catAndDog/new133038923.jpg
+Images/full_catAndDog/new133125475.jpg
+Images/full_catAndDog/new133225475.jpg
+Images/full_catAndDog/new133425475.jpg
+Images/full_catAndDog/new133525475.jpg
+Images/full_catAndDog/new133639348.jpg
+Images/full_catAndDog/new133739348.jpg
+Images/full_catAndDog/new133839348.jpg
+Images/full_catAndDog/new133939348.jpg
+Images/full_catAndDog/new134039348.jpg
+Images/full_catAndDog/new134119327.jpg
+Images/full_catAndDog/new134219327.jpg
+Images/full_catAndDog/new134319327.jpg
+Images/full_catAndDog/new134419327.jpg
+Images/full_catAndDog/new134519327.jpg
+Images/full_catAndDog/new134620962.jpg
+Images/full_catAndDog/new134720962.jpg
+Images/full_catAndDog/new134820962.jpg
+Images/full_catAndDog/new134920962.jpg
+Images/full_catAndDog/new135121345.jpg
+Images/full_catAndDog/new135221345.jpg
+Images/full_catAndDog/new135321345.jpg
+Images/full_catAndDog/new135421345.jpg
+Images/full_catAndDog/new135521345.jpg
+Images/full_catAndDog/new135632723.jpg
+Images/full_catAndDog/new135732723.jpg
+Images/full_catAndDog/new135832723.jpg
+Images/full_catAndDog/new135932723.jpg
+Images/full_catAndDog/new136032723.jpg
+Images/full_catAndDog/new136136644.jpg
+Images/full_catAndDog/new136236644.jpg
+Images/full_catAndDog/new136336644.jpg
+Images/full_catAndDog/new136436644.jpg
+Images/full_catAndDog/new136536644.jpg
+Images/full_catAndDog/new136638127.jpg
+Images/full_catAndDog/new136738127.jpg
+Images/full_catAndDog/new136838127.jpg
+Images/full_catAndDog/new136938127.jpg
+Images/full_catAndDog/new137038127.jpg
+Images/full_catAndDog/new137120086.jpg
+Images/full_catAndDog/new137220086.jpg
+Images/full_catAndDog/new137320086.jpg
+Images/full_catAndDog/new137420086.jpg
+Images/full_catAndDog/new137520086.jpg
+Images/full_catAndDog/new137626897.jpg
+Images/full_catAndDog/new137726897.jpg
+Images/full_catAndDog/new137826897.jpg
+Images/full_catAndDog/new137926897.jpg
+Images/full_catAndDog/new138026897.jpg
+Images/full_catAndDog/new138124210.jpg
+Images/full_catAndDog/new138224210.jpg
+Images/full_catAndDog/new138324210.jpg
+Images/full_catAndDog/new138424210.jpg
+Images/full_catAndDog/new138524210.jpg
+Images/full_catAndDog/new138633348.jpg
+Images/full_catAndDog/new138733348.jpg
+Images/full_catAndDog/new138833348.jpg
+Images/full_catAndDog/new138933348.jpg
+Images/full_catAndDog/new139033348.jpg
+Images/full_catAndDog/new139125060.jpg
+Images/full_catAndDog/new139225060.jpg
+Images/full_catAndDog/new139325060.jpg
+Images/full_catAndDog/new139425060.jpg
+Images/full_catAndDog/new139525060.jpg
+Images/full_catAndDog/new139621222.jpg
+Images/full_catAndDog/new139721222.jpg
+Images/full_catAndDog/new139821222.jpg
+Images/full_catAndDog/new139921222.jpg
+Images/full_catAndDog/new140021222.jpg
+Images/full_catAndDog/new140126546.jpg
+Images/full_catAndDog/new140226546.jpg
+Images/full_catAndDog/new140326546.jpg
+Images/full_catAndDog/new140426546.jpg
+Images/full_catAndDog/new140526546.jpg
+Images/full_catAndDog/new140621279.jpg
+Images/full_catAndDog/new140721279.jpg
+Images/full_catAndDog/new140821279.jpg
+Images/full_catAndDog/new140921279.jpg
+Images/full_catAndDog/new141021279.jpg
+Images/full_catAndDog/new141124686.jpg
+Images/full_catAndDog/new141224686.jpg
+Images/full_catAndDog/new141324686.jpg
+Images/full_catAndDog/new141424686.jpg
+Images/full_catAndDog/new141524686.jpg
+Images/full_catAndDog/new141727042.jpg
+Images/full_catAndDog/new141827042.jpg
+Images/full_catAndDog/new141927042.jpg
+Images/full_catAndDog/new142027042.jpg
+Images/full_catAndDog/new142126362.jpg
+Images/full_catAndDog/new142226362.jpg
+Images/full_catAndDog/new142326362.jpg
+Images/full_catAndDog/new142426362.jpg
+Images/full_catAndDog/new142526362.jpg
+Images/full_catAndDog/new142627945.jpg
+Images/full_catAndDog/new142827945.jpg
+Images/full_catAndDog/new142927945.jpg
+Images/full_catAndDog/new143140205.jpg
+Images/full_catAndDog/new143240205.jpg
+Images/full_catAndDog/new143340205.jpg
+Images/full_catAndDog/new143440205.jpg
+Images/full_catAndDog/new143540205.jpg
+Images/full_catAndDog/new143620038.jpg
+Images/full_catAndDog/new143720038.jpg
+Images/full_catAndDog/new143820038.jpg
+Images/full_catAndDog/new143920038.jpg
+Images/full_catAndDog/new144020038.jpg
+Images/full_catAndDog/new144131886.jpg
+Images/full_catAndDog/new144231886.jpg
+Images/full_catAndDog/new144331886.jpg
+Images/full_catAndDog/new144431886.jpg
+Images/full_catAndDog/new144531886.jpg
+Images/full_catAndDog/new144620124.jpg
+Images/full_catAndDog/new144720124.jpg
+Images/full_catAndDog/new144820124.jpg
+Images/full_catAndDog/new145020124.jpg
+Images/full_catAndDog/new145122836.jpg
+Images/full_catAndDog/new145222836.jpg
+Images/full_catAndDog/new145322836.jpg
+Images/full_catAndDog/new145422836.jpg
+Images/full_catAndDog/new145522836.jpg
+Images/full_catAndDog/new145624712.jpg
+Images/full_catAndDog/new145724712.jpg
+Images/full_catAndDog/new145824712.jpg
+Images/full_catAndDog/new145924712.jpg
+Images/full_catAndDog/new146024712.jpg
+Images/full_catAndDog/new146125119.jpg
+Images/full_catAndDog/new146225119.jpg
+Images/full_catAndDog/new146325119.jpg
+Images/full_catAndDog/new146425119.jpg
+Images/full_catAndDog/new146525119.jpg
+Images/full_catAndDog/new146622149.jpg
+Images/full_catAndDog/new146722149.jpg
+Images/full_catAndDog/new146822149.jpg
+Images/full_catAndDog/new146922149.jpg
+Images/full_catAndDog/new147022149.jpg
+Images/full_catAndDog/new147135431.jpg
+Images/full_catAndDog/new147235431.jpg
+Images/full_catAndDog/new147335431.jpg
+Images/full_catAndDog/new147435431.jpg
+Images/full_catAndDog/new147535431.jpg
+Images/full_catAndDog/new147628605.jpg
+Images/full_catAndDog/new147728605.jpg
+Images/full_catAndDog/new147828605.jpg
+Images/full_catAndDog/new147928605.jpg
+Images/full_catAndDog/new148028605.jpg
+Images/full_catAndDog/new148140431.jpg
+Images/full_catAndDog/new148240431.jpg
+Images/full_catAndDog/new148340431.jpg
+Images/full_catAndDog/new148440431.jpg
+Images/full_catAndDog/new148540431.jpg
+Images/full_catAndDog/new148621415.jpg
+Images/full_catAndDog/new148721415.jpg
+Images/full_catAndDog/new148821415.jpg
+Images/full_catAndDog/new148921415.jpg
+Images/full_catAndDog/new149021415.jpg
+Images/full_catAndDog/new149121160.jpg
+Images/full_catAndDog/new149221160.jpg
+Images/full_catAndDog/new149421160.jpg
+Images/full_catAndDog/new149521160.jpg
+Images/full_catAndDog/new149619842.jpg
+Images/full_catAndDog/new149719842.jpg
+Images/full_catAndDog/new149819842.jpg
+Images/full_catAndDog/new149919842.jpg
+Images/full_catAndDog/new150019842.jpg
+Images/full_catAndDog/new150132337.jpg
+Images/full_catAndDog/new150232337.jpg
+Images/full_catAndDog/new150332337.jpg
+Images/full_catAndDog/new150432337.jpg
+Images/full_catAndDog/new150532337.jpg
+Images/full_catAndDog/new150622953.jpg
+Images/full_catAndDog/new150722953.jpg
+Images/full_catAndDog/new150822953.jpg
+Images/full_catAndDog/new150922953.jpg
+Images/full_catAndDog/new151022953.jpg
+Images/full_catAndDog/new151138268.jpg
+Images/full_catAndDog/new151238268.jpg
+Images/full_catAndDog/new151338268.jpg
+Images/full_catAndDog/new151438268.jpg
+Images/full_catAndDog/new151538268.jpg
+Images/full_catAndDog/new151633214.jpg
+Images/full_catAndDog/new151733214.jpg
+Images/full_catAndDog/new151833214.jpg
+Images/full_catAndDog/new151933214.jpg
+Images/full_catAndDog/new152121353.jpg
+Images/full_catAndDog/new152221353.jpg
+Images/full_catAndDog/new152321353.jpg
+Images/full_catAndDog/new152421353.jpg
+Images/full_catAndDog/new152521353.jpg
+Images/full_catAndDog/new152630568.jpg
+Images/full_catAndDog/new152730568.jpg
+Images/full_catAndDog/new152830568.jpg
+Images/full_catAndDog/new152930568.jpg
+Images/full_catAndDog/new153030568.jpg
+Images/full_catAndDog/new153123011.jpg
+Images/full_catAndDog/new153223011.jpg
+Images/full_catAndDog/new153323011.jpg
+Images/full_catAndDog/new153423011.jpg
+Images/full_catAndDog/new153523011.jpg
+Images/full_catAndDog/new153623204.jpg
+Images/full_catAndDog/new153723204.jpg
+Images/full_catAndDog/new153823204.jpg
+Images/full_catAndDog/new153923204.jpg
+Images/full_catAndDog/new154023204.jpg
+Images/full_catAndDog/new154138466.jpg
+Images/full_catAndDog/new154238466.jpg
+Images/full_catAndDog/new154438466.jpg
+Images/full_catAndDog/new154538466.jpg
+Images/full_catAndDog/new154732880.jpg
+Images/full_catAndDog/new154832880.jpg
+Images/full_catAndDog/new154932880.jpg
+Images/full_catAndDog/new155032880.jpg
+Images/full_catAndDog/new155135856.jpg
+Images/full_catAndDog/new155235856.jpg
+Images/full_catAndDog/new155335856.jpg
+Images/full_catAndDog/new155435856.jpg
+Images/full_catAndDog/new155535856.jpg
+Images/full_catAndDog/new155628815.jpg
+Images/full_catAndDog/new155728815.jpg
+Images/full_catAndDog/new155828815.jpg
+Images/full_catAndDog/new155928815.jpg
+Images/full_catAndDog/new156028815.jpg
+Images/full_catAndDog/new156138613.jpg
+Images/full_catAndDog/new156238613.jpg
+Images/full_catAndDog/new156338613.jpg
+Images/full_catAndDog/new156438613.jpg
+Images/full_catAndDog/new156538613.jpg
+Images/full_catAndDog/new156623509.jpg
+Images/full_catAndDog/new156723509.jpg
+Images/full_catAndDog/new156823509.jpg
+Images/full_catAndDog/new156923509.jpg
+Images/full_catAndDog/new157023509.jpg
+Images/full_catAndDog/new157123996.jpg
+Images/full_catAndDog/new157223996.jpg
+Images/full_catAndDog/new157323996.jpg
+Images/full_catAndDog/new157423996.jpg
+Images/full_catAndDog/new157523996.jpg
+Images/full_catAndDog/new157627289.jpg
+Images/full_catAndDog/new157727289.jpg
+Images/full_catAndDog/new157827289.jpg
+Images/full_catAndDog/new157927289.jpg
+Images/full_catAndDog/new158121208.jpg
+Images/full_catAndDog/new158221208.jpg
+Images/full_catAndDog/new158321208.jpg
+Images/full_catAndDog/new158421208.jpg
+Images/full_catAndDog/new158521208.jpg
+Images/full_catAndDog/new158634994.jpg
+Images/full_catAndDog/new158734994.jpg
+Images/full_catAndDog/new158834994.jpg
+Images/full_catAndDog/new158934994.jpg
+Images/full_catAndDog/new159034994.jpg
+Images/full_catAndDog/new159133426.jpg
+Images/full_catAndDog/new159233426.jpg
+Images/full_catAndDog/new159333426.jpg
+Images/full_catAndDog/new159433426.jpg
+Images/full_catAndDog/new159533426.jpg
+Images/full_catAndDog/new159632396.jpg
+Images/full_catAndDog/new159732396.jpg
+Images/full_catAndDog/new159832396.jpg
+Images/full_catAndDog/new159932396.jpg
+Images/full_catAndDog/new160032396.jpg
+Images/full_catAndDog/new160122916.jpg
+Images/full_catAndDog/new160222916.jpg
+Images/full_catAndDog/new160322916.jpg
+Images/full_catAndDog/new160422916.jpg
+Images/full_catAndDog/new160522916.jpg
+Images/full_catAndDog/new160620406.jpg
+Images/full_catAndDog/new160720406.jpg
+Images/full_catAndDog/new160820406.jpg
+Images/full_catAndDog/new160920406.jpg
+Images/full_catAndDog/new161020406.jpg
+Images/full_catAndDog/new161128059.jpg
+Images/full_catAndDog/new161228059.jpg
+Images/full_catAndDog/new161328059.jpg
+Images/full_catAndDog/new161428059.jpg
+Images/full_catAndDog/new161528059.jpg
+Images/full_catAndDog/new161627424.jpg
+Images/full_catAndDog/new161727424.jpg
+Images/full_catAndDog/new161827424.jpg
+Images/full_catAndDog/new161927424.jpg
+Images/full_catAndDog/new162027424.jpg
+Images/full_catAndDog/new162138076.jpg
+Images/full_catAndDog/new162238076.jpg
+Images/full_catAndDog/new162338076.jpg
+Images/full_catAndDog/new162438076.jpg
+Images/full_catAndDog/new162538076.jpg
+Images/full_catAndDog/new162630206.jpg
+Images/full_catAndDog/new162730206.jpg
+Images/full_catAndDog/new162830206.jpg
+Images/full_catAndDog/new162930206.jpg
+Images/full_catAndDog/new163030206.jpg
+Images/full_catAndDog/new163135064.jpg
+Images/full_catAndDog/new163235064.jpg
+Images/full_catAndDog/new163335064.jpg
+Images/full_catAndDog/new163435064.jpg
+Images/full_catAndDog/new163535064.jpg
+Images/full_catAndDog/new163622591.jpg
+Images/full_catAndDog/new163722591.jpg
+Images/full_catAndDog/new163822591.jpg
+Images/full_catAndDog/new163922591.jpg
+Images/full_catAndDog/new164022591.jpg
+Images/full_catAndDog/new164127380.jpg
+Images/full_catAndDog/new164227380.jpg
+Images/full_catAndDog/new164327380.jpg
+Images/full_catAndDog/new164427380.jpg
+Images/full_catAndDog/new164527380.jpg
+Images/full_catAndDog/new164636558.jpg
+Images/full_catAndDog/new164736558.jpg
+Images/full_catAndDog/new164836558.jpg
+Images/full_catAndDog/new164936558.jpg
+Images/full_catAndDog/new165036558.jpg
+Images/full_catAndDog/new165137715.jpg
+Images/full_catAndDog/new165237715.jpg
+Images/full_catAndDog/new165337715.jpg
+Images/full_catAndDog/new165437715.jpg
+Images/full_catAndDog/new165537715.jpg
+Images/full_catAndDog/new165635083.jpg
+Images/full_catAndDog/new165735083.jpg
+Images/full_catAndDog/new165835083.jpg
+Images/full_catAndDog/new165935083.jpg
+Images/full_catAndDog/new166035083.jpg
+Images/full_catAndDog/new166125738.jpg
+Images/full_catAndDog/new166225738.jpg
+Images/full_catAndDog/new166325738.jpg
+Images/full_catAndDog/new166425738.jpg
+Images/full_catAndDog/new166525738.jpg
+Images/full_catAndDog/new166634062.jpg
+Images/full_catAndDog/new166734062.jpg
+Images/full_catAndDog/new166834062.jpg
+Images/full_catAndDog/new166934062.jpg
+Images/full_catAndDog/new167133683.jpg
+Images/full_catAndDog/new167233683.jpg
+Images/full_catAndDog/new167333683.jpg
+Images/full_catAndDog/new167433683.jpg
+Images/full_catAndDog/new167533683.jpg
+Images/full_catAndDog/new167623880.jpg
+Images/full_catAndDog/new167723880.jpg
+Images/full_catAndDog/new167823880.jpg
+Images/full_catAndDog/new167923880.jpg
+Images/full_catAndDog/new168023880.jpg
+Images/full_catAndDog/new168130737.jpg
+Images/full_catAndDog/new168230737.jpg
+Images/full_catAndDog/new168330737.jpg
+Images/full_catAndDog/new168430737.jpg
+Images/full_catAndDog/new168530737.jpg
+Images/full_catAndDog/new168629768.jpg
+Images/full_catAndDog/new168729768.jpg
+Images/full_catAndDog/new168929768.jpg
+Images/full_catAndDog/new169029768.jpg
+Images/full_catAndDog/new169131751.jpg
+Images/full_catAndDog/new169231751.jpg
+Images/full_catAndDog/new169331751.jpg
+Images/full_catAndDog/new169431751.jpg
+Images/full_catAndDog/new169531751.jpg
+Images/full_catAndDog/new169622709.jpg
+Images/full_catAndDog/new169722709.jpg
+Images/full_catAndDog/new169822709.jpg
+Images/full_catAndDog/new169922709.jpg
+Images/full_catAndDog/new170022709.jpg
+Images/full_catAndDog/new170124520.jpg
+Images/full_catAndDog/new170224520.jpg
+Images/full_catAndDog/new170324520.jpg
+Images/full_catAndDog/new170424520.jpg
+Images/full_catAndDog/new170524520.jpg
+Images/full_catAndDog/new170627341.jpg
+Images/full_catAndDog/new170727341.jpg
+Images/full_catAndDog/new170827341.jpg
+Images/full_catAndDog/new170927341.jpg
+Images/full_catAndDog/new171027341.jpg
+Images/full_catAndDog/new171135088.jpg
+Images/full_catAndDog/new171235088.jpg
+Images/full_catAndDog/new171335088.jpg
+Images/full_catAndDog/new171435088.jpg
+Images/full_catAndDog/new171535088.jpg
+Images/full_catAndDog/new171624117.jpg
+Images/full_catAndDog/new171724117.jpg
+Images/full_catAndDog/new171824117.jpg
+Images/full_catAndDog/new171924117.jpg
+Images/full_catAndDog/new172024117.jpg
+Images/full_catAndDog/new172135910.jpg
+Images/full_catAndDog/new172235910.jpg
+Images/full_catAndDog/new172335910.jpg
+Images/full_catAndDog/new172435910.jpg
+Images/full_catAndDog/new172535910.jpg
+Images/full_catAndDog/new172639525.jpg
+Images/full_catAndDog/new172839525.jpg
+Images/full_catAndDog/new172939525.jpg
+Images/full_catAndDog/new173039525.jpg
+Images/full_catAndDog/new173128036.jpg
+Images/full_catAndDog/new173228036.jpg
+Images/full_catAndDog/new173428036.jpg
+Images/full_catAndDog/new173528036.jpg
+Images/full_catAndDog/new173626315.jpg
+Images/full_catAndDog/new173726315.jpg
+Images/full_catAndDog/new173826315.jpg
+Images/full_catAndDog/new173926315.jpg
+Images/full_catAndDog/new174026315.jpg
+Images/full_catAndDog/new174127492.jpg
+Images/full_catAndDog/new174227492.jpg
+Images/full_catAndDog/new174327492.jpg
+Images/full_catAndDog/new174427492.jpg
+Images/full_catAndDog/new174527492.jpg
+Images/full_catAndDog/new174622538.jpg
+Images/full_catAndDog/new174722538.jpg
+Images/full_catAndDog/new174822538.jpg
+Images/full_catAndDog/new174922538.jpg
+Images/full_catAndDog/new175022538.jpg
+Images/full_catAndDog/new175124585.jpg
+Images/full_catAndDog/new175224585.jpg
+Images/full_catAndDog/new175324585.jpg
+Images/full_catAndDog/new175424585.jpg
+Images/full_catAndDog/new175524585.jpg
+Images/full_catAndDog/new175719496.jpg
+Images/full_catAndDog/new175819496.jpg
+Images/full_catAndDog/new175919496.jpg
+Images/full_catAndDog/new176019496.jpg
+Images/full_catAndDog/new176139813.jpg
+Images/full_catAndDog/new176239813.jpg
+Images/full_catAndDog/new176339813.jpg
+Images/full_catAndDog/new176439813.jpg
+Images/full_catAndDog/new176539813.jpg
+Images/full_catAndDog/new176632455.jpg
+Images/full_catAndDog/new176732455.jpg
+Images/full_catAndDog/new176832455.jpg
+Images/full_catAndDog/new176932455.jpg
+Images/full_catAndDog/new177032455.jpg
+Images/full_catAndDog/new177129256.jpg
+Images/full_catAndDog/new177229256.jpg
+Images/full_catAndDog/new177329256.jpg
+Images/full_catAndDog/new177529256.jpg
+Images/full_catAndDog/new177626905.jpg
+Images/full_catAndDog/new177726905.jpg
+Images/full_catAndDog/new177826905.jpg
+Images/full_catAndDog/new177926905.jpg
+Images/full_catAndDog/new178026905.jpg
+Images/full_catAndDog/new178225898.jpg
+Images/full_catAndDog/new178325898.jpg
+Images/full_catAndDog/new178425898.jpg
+Images/full_catAndDog/new178525898.jpg
+Images/full_catAndDog/new178624351.jpg
+Images/full_catAndDog/new178724351.jpg
+Images/full_catAndDog/new178824351.jpg
+Images/full_catAndDog/new178924351.jpg
+Images/full_catAndDog/new179024351.jpg
+Images/full_catAndDog/new179119653.jpg
+Images/full_catAndDog/new179219653.jpg
+Images/full_catAndDog/new179319653.jpg
+Images/full_catAndDog/new179419653.jpg
+Images/full_catAndDog/new179622939.jpg
+Images/full_catAndDog/new179722939.jpg
+Images/full_catAndDog/new179822939.jpg
+Images/full_catAndDog/new179922939.jpg
+Images/full_catAndDog/new180022939.jpg
+Images/full_catAndDog/new180127139.jpg
+Images/full_catAndDog/new180227139.jpg
+Images/full_catAndDog/new180327139.jpg
+Images/full_catAndDog/new180427139.jpg
+Images/full_catAndDog/new180527139.jpg
+Images/full_catAndDog/new180627179.jpg
+Images/full_catAndDog/new180727179.jpg
+Images/full_catAndDog/new180827179.jpg
+Images/full_catAndDog/new180927179.jpg
+Images/full_catAndDog/new181027179.jpg
+Images/full_catAndDog/new181132140.jpg
+Images/full_catAndDog/new181332140.jpg
+Images/full_catAndDog/new181432140.jpg
+Images/full_catAndDog/new181532140.jpg
+Images/full_catAndDog/new181633788.jpg
+Images/full_catAndDog/new181733788.jpg
+Images/full_catAndDog/new181833788.jpg
+Images/full_catAndDog/new181933788.jpg
+Images/full_catAndDog/new182033788.jpg
+Images/full_catAndDog/new182119308.jpg
+Images/full_catAndDog/new182219308.jpg
+Images/full_catAndDog/new182319308.jpg
+Images/full_catAndDog/new182419308.jpg
+Images/full_catAndDog/new182519308.jpg
+Images/full_catAndDog/new182627720.jpg
+Images/full_catAndDog/new182727720.jpg
+Images/full_catAndDog/new182827720.jpg
+Images/full_catAndDog/new182927720.jpg
+Images/full_catAndDog/new183027720.jpg
+Images/full_catAndDog/new183121762.jpg
+Images/full_catAndDog/new183321762.jpg
+Images/full_catAndDog/new183421762.jpg
+Images/full_catAndDog/new183521762.jpg
+Images/full_catAndDog/new183639962.jpg
+Images/full_catAndDog/new183739962.jpg
+Images/full_catAndDog/new183939962.jpg
+Images/full_catAndDog/new184039962.jpg
+Images/full_catAndDog/new184135792.jpg
+Images/full_catAndDog/new184335792.jpg
+Images/full_catAndDog/new184435792.jpg
+Images/full_catAndDog/new184535792.jpg
+Images/full_catAndDog/new184640214.jpg
+Images/full_catAndDog/new184840214.jpg
+Images/full_catAndDog/new184940214.jpg
+Images/full_catAndDog/new185040214.jpg
+Images/full_catAndDog/new185119666.jpg
+Images/full_catAndDog/new185219666.jpg
+Images/full_catAndDog/new185319666.jpg
+Images/full_catAndDog/new185419666.jpg
+Images/full_catAndDog/new185519666.jpg
+Images/full_catAndDog/new185622805.jpg
+Images/full_catAndDog/new185722805.jpg
+Images/full_catAndDog/new185822805.jpg
+Images/full_catAndDog/new185922805.jpg
+Images/full_catAndDog/new186022805.jpg
+Images/full_catAndDog/new186129178.jpg
+Images/full_catAndDog/new186229178.jpg
+Images/full_catAndDog/new186329178.jpg
+Images/full_catAndDog/new186429178.jpg
+Images/full_catAndDog/new186529178.jpg
+Images/full_catAndDog/new186639450.jpg
+Images/full_catAndDog/new186739450.jpg
+Images/full_catAndDog/new186839450.jpg
+Images/full_catAndDog/new186939450.jpg
+Images/full_catAndDog/new187039450.jpg
+Images/full_catAndDog/new187133106.jpg
+Images/full_catAndDog/new187233106.jpg
+Images/full_catAndDog/new187333106.jpg
+Images/full_catAndDog/new187433106.jpg
+Images/full_catAndDog/new187533106.jpg
+Images/full_catAndDog/new187623417.jpg
+Images/full_catAndDog/new187723417.jpg
+Images/full_catAndDog/new187823417.jpg
+Images/full_catAndDog/new187923417.jpg
+Images/full_catAndDog/new188023417.jpg
+Images/full_catAndDog/new188127527.jpg
+Images/full_catAndDog/new188227527.jpg
+Images/full_catAndDog/new188327527.jpg
+Images/full_catAndDog/new188427527.jpg
+Images/full_catAndDog/new188527527.jpg
+Images/full_catAndDog/new188629698.jpg
+Images/full_catAndDog/new188729698.jpg
+Images/full_catAndDog/new188829698.jpg
+Images/full_catAndDog/new188929698.jpg
+Images/full_catAndDog/new189029698.jpg
+Images/full_catAndDog/new189130596.jpg
+Images/full_catAndDog/new189230596.jpg
+Images/full_catAndDog/new189330596.jpg
+Images/full_catAndDog/new189430596.jpg
+Images/full_catAndDog/new189530596.jpg
+Images/full_catAndDog/new189620332.jpg
+Images/full_catAndDog/new189720332.jpg
+Images/full_catAndDog/new189820332.jpg
+Images/full_catAndDog/new189920332.jpg
+Images/full_catAndDog/new190020332.jpg
+Images/full_catAndDog/new190119900.jpg
+Images/full_catAndDog/new190219900.jpg
+Images/full_catAndDog/new190319900.jpg
+Images/full_catAndDog/new190419900.jpg
+Images/full_catAndDog/new190519900.jpg
+Images/full_catAndDog/new190620800.jpg
+Images/full_catAndDog/new190720800.jpg
+Images/full_catAndDog/new190820800.jpg
+Images/full_catAndDog/new190920800.jpg
+Images/full_catAndDog/new191020800.jpg
+Images/full_catAndDog/new191126662.jpg
+Images/full_catAndDog/new191226662.jpg
+Images/full_catAndDog/new191326662.jpg
+Images/full_catAndDog/new191526662.jpg
+Images/full_catAndDog/new191625224.jpg
+Images/full_catAndDog/new191725224.jpg
+Images/full_catAndDog/new191825224.jpg
+Images/full_catAndDog/new191925224.jpg
+Images/full_catAndDog/new192025224.jpg
+Images/full_catAndDog/new192131597.jpg
+Images/full_catAndDog/new192231597.jpg
+Images/full_catAndDog/new192331597.jpg
+Images/full_catAndDog/new192431597.jpg
+Images/full_catAndDog/new192531597.jpg
+Images/full_catAndDog/new192726847.jpg
+Images/full_catAndDog/new192826847.jpg
+Images/full_catAndDog/new192926847.jpg
+Images/full_catAndDog/new193026847.jpg
+Images/full_catAndDog/new193131469.jpg
+Images/full_catAndDog/new193231469.jpg
+Images/full_catAndDog/new193331469.jpg
+Images/full_catAndDog/new193628402.jpg
+Images/full_catAndDog/new193728402.jpg
+Images/full_catAndDog/new193928402.jpg
+Images/full_catAndDog/new194028402.jpg
+Images/full_catAndDog/new194127915.jpg
+Images/full_catAndDog/new194227915.jpg
+Images/full_catAndDog/new194327915.jpg
+Images/full_catAndDog/new194527915.jpg
+Images/full_catAndDog/new194627989.jpg
+Images/full_catAndDog/new194827989.jpg
+Images/full_catAndDog/new194927989.jpg
+Images/full_catAndDog/new195027989.jpg
+Images/full_catAndDog/new195126497.jpg
+Images/full_catAndDog/new195226497.jpg
+Images/full_catAndDog/new195326497.jpg
+Images/full_catAndDog/new195426497.jpg
+Images/full_catAndDog/new195526497.jpg
+Images/full_catAndDog/new195626589.jpg
+Images/full_catAndDog/new195726589.jpg
+Images/full_catAndDog/new195926589.jpg
+Images/full_catAndDog/new196026589.jpg
+Images/full_catAndDog/new196132590.jpg
+Images/full_catAndDog/new196232590.jpg
+Images/full_catAndDog/new196332590.jpg
+Images/full_catAndDog/new196432590.jpg
+Images/full_catAndDog/new196532590.jpg
+Images/full_catAndDog/new196624812.jpg
+Images/full_catAndDog/new196724812.jpg
+Images/full_catAndDog/new196824812.jpg
+Images/full_catAndDog/new196924812.jpg
+Images/full_catAndDog/new197024812.jpg
+Images/full_catAndDog/new197119616.jpg
+Images/full_catAndDog/new197219616.jpg
+Images/full_catAndDog/new197319616.jpg
+Images/full_catAndDog/new197419616.jpg
+Images/full_catAndDog/new197519616.jpg
+Images/full_catAndDog/new197632194.jpg
+Images/full_catAndDog/new197732194.jpg
+Images/full_catAndDog/new197832194.jpg
+Images/full_catAndDog/new197932194.jpg
+Images/full_catAndDog/new198226770.jpg
+Images/full_catAndDog/new198326770.jpg
+Images/full_catAndDog/new198426770.jpg
+Images/full_catAndDog/new198526770.jpg
+Images/full_catAndDog/new198620552.jpg
+Images/full_catAndDog/new198720552.jpg
+Images/full_catAndDog/new198820552.jpg
+Images/full_catAndDog/new199139011.jpg
+Images/full_catAndDog/new199339011.jpg
+Images/full_catAndDog/new199439011.jpg
+Images/full_catAndDog/new199539011.jpg
+Images/full_catAndDog/new199636547.jpg
+Images/full_catAndDog/new199736547.jpg
+Images/full_catAndDog/new199836547.jpg
+Images/full_catAndDog/new199936547.jpg
+Images/full_catAndDog/new200036547.jpg
+Images/full_catAndDog/new200122326.jpg
+Images/full_catAndDog/new200222326.jpg
+Images/full_catAndDog/new200322326.jpg
+Images/full_catAndDog/new200422326.jpg
+Images/full_catAndDog/new200522326.jpg
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/python/darknet.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/python/darknet.py"
new file mode 100644
index 00000000..305f01d6
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/python/darknet.py"
@@ -0,0 +1,181 @@
+from ctypes import *
+import math
+import random
+from PIL import Image
+import cv2
+import os
+
+def sample(probs):
+ s = sum(probs)
+ probs = [a/s for a in probs]
+ r = random.uniform(0, 1)
+ for i in range(len(probs)):
+ r = r - probs[i]
+ if r <= 0:
+ return i
+ return len(probs)-1
+
+def c_array(ctype, values):
+ arr = (ctype*len(values))()
+ arr[:] = values
+ return arr
+
+class BOX(Structure):
+ _fields_ = [("x", c_float),
+ ("y", c_float),
+ ("w", c_float),
+ ("h", c_float)]
+
+class DETECTION(Structure):
+ _fields_ = [("bbox", BOX),
+ ("classes", c_int),
+ ("prob", POINTER(c_float)),
+ ("mask", POINTER(c_float)),
+ ("objectness", c_float),
+ ("sort_class", c_int)]
+
+
+class IMAGE(Structure):
+ _fields_ = [("w", c_int),
+ ("h", c_int),
+ ("c", c_int),
+ ("data", POINTER(c_float))]
+
+class METADATA(Structure):
+ _fields_ = [("classes", c_int),
+ ("names", POINTER(c_char_p))]
+
+
+
+#lib = CDLL("/home/pjreddie/documents/darknet/libdarknet.so", RTLD_GLOBAL)
+lib = CDLL(os.path.join(os.getcwd()+'/DARK', "libdarknet.so"), RTLD_GLOBAL)
+lib.network_width.argtypes = [c_void_p]
+lib.network_width.restype = c_int
+lib.network_height.argtypes = [c_void_p]
+lib.network_height.restype = c_int
+
+predict = lib.network_predict
+predict.argtypes = [c_void_p, POINTER(c_float)]
+predict.restype = POINTER(c_float)
+
+set_gpu = lib.cuda_set_device
+set_gpu.argtypes = [c_int]
+
+make_image = lib.make_image
+make_image.argtypes = [c_int, c_int, c_int]
+make_image.restype = IMAGE
+
+get_network_boxes = lib.get_network_boxes
+get_network_boxes.argtypes = [c_void_p, c_int, c_int, c_float, c_float, POINTER(c_int), c_int, POINTER(c_int)]
+get_network_boxes.restype = POINTER(DETECTION)
+
+make_network_boxes = lib.make_network_boxes
+make_network_boxes.argtypes = [c_void_p]
+make_network_boxes.restype = POINTER(DETECTION)
+
+free_detections = lib.free_detections
+free_detections.argtypes = [POINTER(DETECTION), c_int]
+
+free_ptrs = lib.free_ptrs
+free_ptrs.argtypes = [POINTER(c_void_p), c_int]
+
+network_predict = lib.network_predict
+network_predict.argtypes = [c_void_p, POINTER(c_float)]
+
+reset_rnn = lib.reset_rnn
+reset_rnn.argtypes = [c_void_p]
+
+load_net = lib.load_network
+load_net.argtypes = [c_char_p, c_char_p, c_int]
+load_net.restype = c_void_p
+
+do_nms_obj = lib.do_nms_obj
+do_nms_obj.argtypes = [POINTER(DETECTION), c_int, c_int, c_float]
+
+do_nms_sort = lib.do_nms_sort
+do_nms_sort.argtypes = [POINTER(DETECTION), c_int, c_int, c_float]
+
+free_image = lib.free_image
+free_image.argtypes = [IMAGE]
+
+letterbox_image = lib.letterbox_image
+letterbox_image.argtypes = [IMAGE, c_int, c_int]
+letterbox_image.restype = IMAGE
+
+load_meta = lib.get_metadata
+lib.get_metadata.argtypes = [c_char_p]
+lib.get_metadata.restype = METADATA
+
+load_image = lib.load_image_color
+load_image.argtypes = [c_char_p, c_int, c_int]
+load_image.restype = IMAGE
+
+rgbgr_image = lib.rgbgr_image
+rgbgr_image.argtypes = [IMAGE]
+
+predict_image = lib.network_predict_image
+predict_image.argtypes = [c_void_p, IMAGE]
+predict_image.restype = POINTER(c_float)
+
+def classify(net, meta, im):
+ out = predict_image(net, im)
+ res = []
+ for i in range(meta.classes):
+ res.append((meta.names[i], out[i]))
+ res = sorted(res, key=lambda x: -x[1])
+ return res
+
+def detect(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45):
+ image = image.encode('utf-8')
+ im = load_image(image, 0, 0)
+ num = c_int(0)
+ pnum = pointer(num)
+ predict_image(net, im)
+ dets = get_network_boxes(net, im.w, im.h, thresh, hier_thresh, None, 0, pnum)
+ num = pnum[0]
+ if (nms): do_nms_obj(dets, num, meta.classes, nms);
+
+ res = []
+ for j in range(num):
+ for i in range(meta.classes):
+ if dets[j].prob[i] > 0:
+ b = dets[j].bbox
+ res.append((meta.names[i], dets[j].prob[i], (b.x, b.y, b.w, b.h)))
+ res = sorted(res, key=lambda x: -x[1])
+ free_image(im)
+ free_detections(dets, num)
+ return res
+
+def detect_s(net, meta, image, thresh=.5, hier_thresh=.5, nms=.45):
+ cv2.imwrite('DARK/dummy/m.jpg',image)
+ im = load_image('DARK/dummy/m.jpg'.encode('utf-8'), 0, 0)
+ num = c_int(0)
+ pnum = pointer(num)
+ predict_image(net, im)
+ dets = get_network_boxes(net, im.w, im.h, thresh, hier_thresh, None, 0, pnum)
+ num = pnum[0]
+ if (nms): do_nms_obj(dets, num, meta.classes, nms);
+
+ res = []
+ for j in range(num):
+ for i in range(meta.classes):
+ if dets[j].prob[i] > 0:
+ b = dets[j].bbox
+ res.append((meta.names[i], dets[j].prob[i], (b.x, b.y, b.w, b.h)))
+ res = sorted(res, key=lambda x: -x[1])
+ free_image(im)
+ free_detections(dets, num)
+ return res
+
+if __name__ == "__main__":
+ #net = load_net("cfg/densenet201.cfg", "/home/pjreddie/trained/densenet201.weights", 0)
+ #im = load_image("data/wolf.jpg", 0, 0)
+ #meta = load_meta("cfg/imagenet1k.data")
+ #r = classify(net, meta, im)
+ #print r[:10]
+ net = load_net("cfg/tiny-yolo.cfg".encode('utf-8'), "tiny-yolo.weights".encode('utf-8'), 0)
+ meta = load_meta("cfg/coco.data".encode('utf-8'))
+ r = detect(net, meta, "data/dog.jpg")
+ print(r)
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/python/proverbot.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/python/proverbot.py"
new file mode 100644
index 00000000..095aae8f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/python/proverbot.py"
@@ -0,0 +1,37 @@
+from darknet import *
+
+def predict_tactic(net, s):
+ prob = 0
+ d = c_array(c_float, [0.0]*256)
+ tac = ''
+ if not len(s):
+ s = '\n'
+ for c in s[:-1]:
+ d[ord(c)] = 1
+ pred = predict(net, d)
+ d[ord(c)] = 0
+ c = s[-1]
+ while 1:
+ d[ord(c)] = 1
+ pred = predict(net, d)
+ d[ord(c)] = 0
+ pred = [pred[i] for i in range(256)]
+ ind = sample(pred)
+ c = chr(ind)
+ prob += math.log(pred[ind])
+ if len(tac) and tac[-1] == '.':
+ break
+ tac = tac + c
+ return (tac, prob)
+
+def predict_tactics(net, s, n):
+ tacs = []
+ for i in range(n):
+ reset_rnn(net)
+ tacs.append(predict_tactic(net, s))
+ tacs = sorted(tacs, key=lambda x: -x[1])
+ return tacs
+
+net = load_net("cfg/coq.test.cfg", "/home/pjreddie/backup/coq.backup", 0)
+t = predict_tactics(net, "+++++\n", 10)
+print t
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/dice_label.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/dice_label.sh"
new file mode 100644
index 00000000..f19f8a49
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/dice_label.sh"
@@ -0,0 +1,20 @@
+mkdir -p images
+mkdir -p images/orig
+mkdir -p images/train
+mkdir -p images/val
+
+ffmpeg -i Face1.mp4 images/orig/face1_%6d.jpg
+ffmpeg -i Face2.mp4 images/orig/face2_%6d.jpg
+ffmpeg -i Face3.mp4 images/orig/face3_%6d.jpg
+ffmpeg -i Face4.mp4 images/orig/face4_%6d.jpg
+ffmpeg -i Face5.mp4 images/orig/face5_%6d.jpg
+ffmpeg -i Face6.mp4 images/orig/face6_%6d.jpg
+
+mogrify -resize 100x100^ -gravity center -crop 100x100+0+0 +repage images/orig/*
+
+ls images/orig/* | shuf | head -n 1000 | xargs mv -t images/val
+mv images/orig/* images/train
+
+find `pwd`/images/train > dice.train.list -name \*.jpg
+find `pwd`/images/val > dice.val.list -name \*.jpg
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/gen_tactic.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/gen_tactic.sh"
new file mode 100644
index 00000000..ffa30d27
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/gen_tactic.sh"
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Usage:
+# wget http://pjreddie.com/media/files/peek.weights
+# scripts/gen_tactic.sh < data/goal.txt
+./darknet rnn generatetactic cfg/gru.cfg peek.weights 2>/dev/null
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/get_coco_dataset.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/get_coco_dataset.sh"
new file mode 100644
index 00000000..28463015
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/get_coco_dataset.sh"
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+# Clone COCO API
+git clone https://github.com/pdollar/coco
+cd coco
+
+mkdir images
+cd images
+
+# Download Images
+wget -c https://pjreddie.com/media/files/train2014.zip
+wget -c https://pjreddie.com/media/files/val2014.zip
+
+# Unzip
+unzip -q train2014.zip
+unzip -q val2014.zip
+
+cd ..
+
+# Download COCO Metadata
+wget -c https://pjreddie.com/media/files/instances_train-val2014.zip
+wget -c https://pjreddie.com/media/files/coco/5k.part
+wget -c https://pjreddie.com/media/files/coco/trainvalno5k.part
+wget -c https://pjreddie.com/media/files/coco/labels.tgz
+tar xzf labels.tgz
+unzip -q instances_train-val2014.zip
+
+# Set Up Image Lists
+paste <(awk "{print \"$PWD\"}" <5k.part) 5k.part | tr -d '\t' > 5k.txt
+paste <(awk "{print \"$PWD\"}" trainvalno5k.txt
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/imagenet_label.sh" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/imagenet_label.sh"
new file mode 100644
index 00000000..01e4306e
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/imagenet_label.sh"
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+mkdir -p labelled
+wd=`pwd`
+
+for f in val/*.xml;
+do
+label=`grep -m1 "" $f | grep -oP '\K[^<]*'`
+im=`echo $f | sed 's/val/imgs/; s/xml/JPEG/'`
+out=`echo $im | sed 's/JPEG/'${label}'.JPEG/; s/imgs/labelled/'`
+ln -s ${wd}/$im ${wd}/$out
+done
+
+find ${wd}/labelled -name \*.JPEG > inet.val.list
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/voc_label.py" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/voc_label.py"
new file mode 100644
index 00000000..679fc366
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/scripts/voc_label.py"
@@ -0,0 +1,59 @@
+import xml.etree.ElementTree as ET
+import pickle
+import os
+from os import listdir, getcwd
+from os.path import join
+
+sets=[('2012', 'train'), ('2012', 'val'), ('2007', 'train'), ('2007', 'val'), ('2007', 'test')]
+
+classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]
+
+
+def convert(size, box):
+ dw = 1./(size[0])
+ dh = 1./(size[1])
+ x = (box[0] + box[1])/2.0 - 1
+ y = (box[2] + box[3])/2.0 - 1
+ w = box[1] - box[0]
+ h = box[3] - box[2]
+ x = x*dw
+ w = w*dw
+ y = y*dh
+ h = h*dh
+ return (x,y,w,h)
+
+def convert_annotation(year, image_id):
+ in_file = open('VOCdevkit/VOC%s/Annotations/%s.xml'%(year, image_id))
+ out_file = open('VOCdevkit/VOC%s/labels/%s.txt'%(year, image_id), 'w')
+ tree=ET.parse(in_file)
+ root = tree.getroot()
+ size = root.find('size')
+ w = int(size.find('width').text)
+ h = int(size.find('height').text)
+
+ for obj in root.iter('object'):
+ difficult = obj.find('difficult').text
+ cls = obj.find('name').text
+ if cls not in classes or int(difficult)==1:
+ continue
+ cls_id = classes.index(cls)
+ xmlbox = obj.find('bndbox')
+ b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text), float(xmlbox.find('ymax').text))
+ bb = convert((w,h), b)
+ out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')
+
+wd = getcwd()
+
+for year, image_set in sets:
+ if not os.path.exists('VOCdevkit/VOC%s/labels/'%(year)):
+ os.makedirs('VOCdevkit/VOC%s/labels/'%(year))
+ image_ids = open('VOCdevkit/VOC%s/ImageSets/Main/%s.txt'%(year, image_set)).read().strip().split()
+ list_file = open('%s_%s.txt'%(year, image_set), 'w')
+ for image_id in image_ids:
+ list_file.write('%s/VOCdevkit/VOC%s/JPEGImages/%s.jpg\n'%(wd, year, image_id))
+ convert_annotation(year, image_id)
+ list_file.close()
+
+os.system("cat 2007_train.txt 2007_val.txt 2012_train.txt 2012_val.txt > train.txt")
+os.system("cat 2007_train.txt 2007_val.txt 2007_test.txt 2012_train.txt 2012_val.txt > train.all.txt")
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_kernels.cu"
new file mode 100644
index 00000000..4dc5804d
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_kernels.cu"
@@ -0,0 +1,206 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "activations.h"
+#include "cuda.h"
+}
+
+
+__device__ float lhtan_activate_kernel(float x)
+{
+ if(x < 0) return .001f*x;
+ if(x > 1) return .001f*(x-1.f) + 1.f;
+ return x;
+}
+__device__ float lhtan_gradient_kernel(float x)
+{
+ if(x > 0 && x < 1) return 1;
+ return .001;
+}
+
+__device__ float hardtan_activate_kernel(float x)
+{
+ if (x < -1) return -1;
+ if (x > 1) return 1;
+ return x;
+}
+__device__ float linear_activate_kernel(float x){return x;}
+__device__ float logistic_activate_kernel(float x){return 1.f/(1.f + expf(-x));}
+__device__ float loggy_activate_kernel(float x){return 2.f/(1.f + expf(-x)) - 1;}
+__device__ float relu_activate_kernel(float x){return x*(x>0);}
+__device__ float elu_activate_kernel(float x){return (x >= 0)*x + (x < 0)*(expf(x)-1);}
+__device__ float selu_activate_kernel(float x){return (x >= 0)*1.0507f*x + (x < 0)*1.0507f*1.6732f*(expf(x)-1);}
+__device__ float relie_activate_kernel(float x){return (x>0) ? x : .01f*x;}
+__device__ float ramp_activate_kernel(float x){return x*(x>0)+.1f*x;}
+__device__ float leaky_activate_kernel(float x){return (x>0) ? x : .1f*x;}
+__device__ float tanh_activate_kernel(float x){return (2.f/(1 + expf(-2*x)) - 1);}
+__device__ float plse_activate_kernel(float x)
+{
+ if(x < -4) return .01f * (x + 4);
+ if(x > 4) return .01f * (x - 4) + 1;
+ return .125f*x + .5f;
+}
+__device__ float stair_activate_kernel(float x)
+{
+ int n = floorf(x);
+ if (n%2 == 0) return floorf(x/2);
+ else return (x - n) + floorf(x/2);
+}
+
+
+__device__ float hardtan_gradient_kernel(float x)
+{
+ if (x > -1 && x < 1) return 1;
+ return 0;
+}
+__device__ float linear_gradient_kernel(float x){return 1;}
+__device__ float logistic_gradient_kernel(float x){return (1-x)*x;}
+__device__ float loggy_gradient_kernel(float x)
+{
+ float y = (x+1)/2;
+ return 2*(1-y)*y;
+}
+__device__ float relu_gradient_kernel(float x){return (x>0);}
+__device__ float elu_gradient_kernel(float x){return (x >= 0) + (x < 0)*(x + 1);}
+__device__ float selu_gradient_kernel(float x){return (x >= 0)*1.0507 + (x < 0)*(x + 1.0507*1.6732);}
+__device__ float relie_gradient_kernel(float x){return (x>0) ? 1 : .01f;}
+__device__ float ramp_gradient_kernel(float x){return (x>0)+.1f;}
+__device__ float leaky_gradient_kernel(float x){return (x>0) ? 1 : .1f;}
+__device__ float tanh_gradient_kernel(float x){return 1-x*x;}
+__device__ float plse_gradient_kernel(float x){return (x < 0 || x > 1) ? .01f : .125f;}
+__device__ float stair_gradient_kernel(float x)
+{
+ if (floorf(x) == x) return 0;
+ return 1;
+}
+
+__device__ float activate_kernel(float x, ACTIVATION a)
+{
+ switch(a){
+ case LINEAR:
+ return linear_activate_kernel(x);
+ case LOGISTIC:
+ return logistic_activate_kernel(x);
+ case LOGGY:
+ return loggy_activate_kernel(x);
+ case RELU:
+ return relu_activate_kernel(x);
+ case ELU:
+ return elu_activate_kernel(x);
+ case SELU:
+ return selu_activate_kernel(x);
+ case RELIE:
+ return relie_activate_kernel(x);
+ case RAMP:
+ return ramp_activate_kernel(x);
+ case LEAKY:
+ return leaky_activate_kernel(x);
+ case TANH:
+ return tanh_activate_kernel(x);
+ case PLSE:
+ return plse_activate_kernel(x);
+ case STAIR:
+ return stair_activate_kernel(x);
+ case HARDTAN:
+ return hardtan_activate_kernel(x);
+ case LHTAN:
+ return lhtan_activate_kernel(x);
+ }
+ return 0;
+}
+
+__device__ float gradient_kernel(float x, ACTIVATION a)
+{
+ switch(a){
+ case LINEAR:
+ return linear_gradient_kernel(x);
+ case LOGISTIC:
+ return logistic_gradient_kernel(x);
+ case LOGGY:
+ return loggy_gradient_kernel(x);
+ case RELU:
+ return relu_gradient_kernel(x);
+ case ELU:
+ return elu_gradient_kernel(x);
+ case SELU:
+ return selu_gradient_kernel(x);
+ case RELIE:
+ return relie_gradient_kernel(x);
+ case RAMP:
+ return ramp_gradient_kernel(x);
+ case LEAKY:
+ return leaky_gradient_kernel(x);
+ case TANH:
+ return tanh_gradient_kernel(x);
+ case PLSE:
+ return plse_gradient_kernel(x);
+ case STAIR:
+ return stair_gradient_kernel(x);
+ case HARDTAN:
+ return hardtan_gradient_kernel(x);
+ case LHTAN:
+ return lhtan_gradient_kernel(x);
+ }
+ return 0;
+}
+
+__global__ void binary_gradient_array_kernel(float *x, float *dy, int n, int s, BINARY_ACTIVATION a, float *dx)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ int i = id % s;
+ int b = id / s;
+ float x1 = x[b*s + i];
+ float x2 = x[b*s + s/2 + i];
+ if(id < n) {
+ float de = dy[id];
+ dx[b*s + i] = x2*de;
+ dx[b*s + s/2 + i] = x1*de;
+ }
+}
+
+extern "C" void binary_gradient_array_gpu(float *x, float *dx, int n, int size, BINARY_ACTIVATION a, float *y)
+{
+ binary_gradient_array_kernel<<>>(x, dx, n/2, size, a, y);
+ check_error(cudaPeekAtLastError());
+}
+__global__ void binary_activate_array_kernel(float *x, int n, int s, BINARY_ACTIVATION a, float *y)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ int i = id % s;
+ int b = id / s;
+ float x1 = x[b*s + i];
+ float x2 = x[b*s + s/2 + i];
+ if(id < n) y[id] = x1*x2;
+}
+
+extern "C" void binary_activate_array_gpu(float *x, int n, int size, BINARY_ACTIVATION a, float *y)
+{
+ binary_activate_array_kernel<<>>(x, n/2, size, a, y);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void activate_array_kernel(float *x, int n, ACTIVATION a)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n) x[i] = activate_kernel(x[i], a);
+}
+
+__global__ void gradient_array_kernel(float *x, int n, ACTIVATION a, float *delta)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n) delta[i] *= gradient_kernel(x[i], a);
+}
+
+extern "C" void activate_array_gpu(float *x, int n, ACTIVATION a)
+{
+ activate_array_kernel<<>>(x, n, a);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void gradient_array_gpu(float *x, int n, ACTIVATION a, float *delta)
+{
+ gradient_array_kernel<<>>(x, n, a, delta);
+ check_error(cudaPeekAtLastError());
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_layer.c"
new file mode 100644
index 00000000..b4ba9539
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_layer.c"
@@ -0,0 +1,63 @@
+#include "activation_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "blas.h"
+#include "gemm.h"
+
+#include
+#include
+#include
+#include
+
+layer make_activation_layer(int batch, int inputs, ACTIVATION activation)
+{
+ layer l = {0};
+ l.type = ACTIVE;
+
+ l.inputs = inputs;
+ l.outputs = inputs;
+ l.batch=batch;
+
+ l.output = calloc(batch*inputs, sizeof(float*));
+ l.delta = calloc(batch*inputs, sizeof(float*));
+
+ l.forward = forward_activation_layer;
+ l.backward = backward_activation_layer;
+#ifdef GPU
+ l.forward_gpu = forward_activation_layer_gpu;
+ l.backward_gpu = backward_activation_layer_gpu;
+
+ l.output_gpu = cuda_make_array(l.output, inputs*batch);
+ l.delta_gpu = cuda_make_array(l.delta, inputs*batch);
+#endif
+ l.activation = activation;
+ fprintf(stderr, "Activation Layer: %d inputs\n", inputs);
+ return l;
+}
+
+void forward_activation_layer(layer l, network net)
+{
+ copy_cpu(l.outputs*l.batch, net.input, 1, l.output, 1);
+ activate_array(l.output, l.outputs*l.batch, l.activation);
+}
+
+void backward_activation_layer(layer l, network net)
+{
+ gradient_array(l.output, l.outputs*l.batch, l.activation, l.delta);
+ copy_cpu(l.outputs*l.batch, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void forward_activation_layer_gpu(layer l, network net)
+{
+ copy_gpu(l.outputs*l.batch, net.input_gpu, 1, l.output_gpu, 1);
+ activate_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation);
+}
+
+void backward_activation_layer_gpu(layer l, network net)
+{
+ gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
+ copy_gpu(l.outputs*l.batch, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_layer.h"
new file mode 100644
index 00000000..42118a84
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activation_layer.h"
@@ -0,0 +1,19 @@
+#ifndef ACTIVATION_LAYER_H
+#define ACTIVATION_LAYER_H
+
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_activation_layer(int batch, int inputs, ACTIVATION activation);
+
+void forward_activation_layer(layer l, network net);
+void backward_activation_layer(layer l, network net);
+
+#ifdef GPU
+void forward_activation_layer_gpu(layer l, network net);
+void backward_activation_layer_gpu(layer l, network net);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activations.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activations.c"
new file mode 100644
index 00000000..da1a17a8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activations.c"
@@ -0,0 +1,150 @@
+#include "activations.h"
+
+#include
+#include
+#include
+#include
+
+char *get_activation_string(ACTIVATION a)
+{
+ switch(a){
+ case LOGISTIC:
+ return "logistic";
+ case LOGGY:
+ return "loggy";
+ case RELU:
+ return "relu";
+ case ELU:
+ return "elu";
+ case SELU:
+ return "selu";
+ case RELIE:
+ return "relie";
+ case RAMP:
+ return "ramp";
+ case LINEAR:
+ return "linear";
+ case TANH:
+ return "tanh";
+ case PLSE:
+ return "plse";
+ case LEAKY:
+ return "leaky";
+ case STAIR:
+ return "stair";
+ case HARDTAN:
+ return "hardtan";
+ case LHTAN:
+ return "lhtan";
+ default:
+ break;
+ }
+ return "relu";
+}
+
+ACTIVATION get_activation(char *s)
+{
+ if (strcmp(s, "logistic")==0) return LOGISTIC;
+ if (strcmp(s, "loggy")==0) return LOGGY;
+ if (strcmp(s, "relu")==0) return RELU;
+ if (strcmp(s, "elu")==0) return ELU;
+ if (strcmp(s, "selu")==0) return SELU;
+ if (strcmp(s, "relie")==0) return RELIE;
+ if (strcmp(s, "plse")==0) return PLSE;
+ if (strcmp(s, "hardtan")==0) return HARDTAN;
+ if (strcmp(s, "lhtan")==0) return LHTAN;
+ if (strcmp(s, "linear")==0) return LINEAR;
+ if (strcmp(s, "ramp")==0) return RAMP;
+ if (strcmp(s, "leaky")==0) return LEAKY;
+ if (strcmp(s, "tanh")==0) return TANH;
+ if (strcmp(s, "stair")==0) return STAIR;
+ fprintf(stderr, "Couldn't find activation function %s, going with ReLU\n", s);
+ return RELU;
+}
+
+float activate(float x, ACTIVATION a)
+{
+ switch(a){
+ case LINEAR:
+ return linear_activate(x);
+ case LOGISTIC:
+ return logistic_activate(x);
+ case LOGGY:
+ return loggy_activate(x);
+ case RELU:
+ return relu_activate(x);
+ case ELU:
+ return elu_activate(x);
+ case SELU:
+ return selu_activate(x);
+ case RELIE:
+ return relie_activate(x);
+ case RAMP:
+ return ramp_activate(x);
+ case LEAKY:
+ return leaky_activate(x);
+ case TANH:
+ return tanh_activate(x);
+ case PLSE:
+ return plse_activate(x);
+ case STAIR:
+ return stair_activate(x);
+ case HARDTAN:
+ return hardtan_activate(x);
+ case LHTAN:
+ return lhtan_activate(x);
+ }
+ return 0;
+}
+
+void activate_array(float *x, const int n, const ACTIVATION a)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ x[i] = activate(x[i], a);
+ }
+}
+
+float gradient(float x, ACTIVATION a)
+{
+ switch(a){
+ case LINEAR:
+ return linear_gradient(x);
+ case LOGISTIC:
+ return logistic_gradient(x);
+ case LOGGY:
+ return loggy_gradient(x);
+ case RELU:
+ return relu_gradient(x);
+ case ELU:
+ return elu_gradient(x);
+ case SELU:
+ return selu_gradient(x);
+ case RELIE:
+ return relie_gradient(x);
+ case RAMP:
+ return ramp_gradient(x);
+ case LEAKY:
+ return leaky_gradient(x);
+ case TANH:
+ return tanh_gradient(x);
+ case PLSE:
+ return plse_gradient(x);
+ case STAIR:
+ return stair_gradient(x);
+ case HARDTAN:
+ return hardtan_gradient(x);
+ case LHTAN:
+ return lhtan_gradient(x);
+ }
+ return 0;
+}
+
+void gradient_array(const float *x, const int n, const ACTIVATION a, float *delta)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ delta[i] *= gradient(x[i], a);
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activations.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activations.h"
new file mode 100644
index 00000000..9780d2cf
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/activations.h"
@@ -0,0 +1,87 @@
+#ifndef ACTIVATIONS_H
+#define ACTIVATIONS_H
+#include "darknet.h"
+#include "cuda.h"
+#include "math.h"
+
+ACTIVATION get_activation(char *s);
+
+char *get_activation_string(ACTIVATION a);
+float activate(float x, ACTIVATION a);
+float gradient(float x, ACTIVATION a);
+void gradient_array(const float *x, const int n, const ACTIVATION a, float *delta);
+void activate_array(float *x, const int n, const ACTIVATION a);
+#ifdef GPU
+void activate_array_gpu(float *x, int n, ACTIVATION a);
+void gradient_array_gpu(float *x, int n, ACTIVATION a, float *delta);
+#endif
+
+static inline float stair_activate(float x)
+{
+ int n = floor(x);
+ if (n%2 == 0) return floor(x/2.);
+ else return (x - n) + floor(x/2.);
+}
+static inline float hardtan_activate(float x)
+{
+ if (x < -1) return -1;
+ if (x > 1) return 1;
+ return x;
+}
+static inline float linear_activate(float x){return x;}
+static inline float logistic_activate(float x){return 1./(1. + exp(-x));}
+static inline float loggy_activate(float x){return 2./(1. + exp(-x)) - 1;}
+static inline float relu_activate(float x){return x*(x>0);}
+static inline float elu_activate(float x){return (x >= 0)*x + (x < 0)*(exp(x)-1);}
+static inline float selu_activate(float x){return (x >= 0)*1.0507*x + (x < 0)*1.0507*1.6732*(exp(x)-1);}
+static inline float relie_activate(float x){return (x>0) ? x : .01*x;}
+static inline float ramp_activate(float x){return x*(x>0)+.1*x;}
+static inline float leaky_activate(float x){return (x>0) ? x : .1*x;}
+static inline float tanh_activate(float x){return (exp(2*x)-1)/(exp(2*x)+1);}
+static inline float plse_activate(float x)
+{
+ if(x < -4) return .01 * (x + 4);
+ if(x > 4) return .01 * (x - 4) + 1;
+ return .125*x + .5;
+}
+
+static inline float lhtan_activate(float x)
+{
+ if(x < 0) return .001*x;
+ if(x > 1) return .001*(x-1) + 1;
+ return x;
+}
+static inline float lhtan_gradient(float x)
+{
+ if(x > 0 && x < 1) return 1;
+ return .001;
+}
+
+static inline float hardtan_gradient(float x)
+{
+ if (x > -1 && x < 1) return 1;
+ return 0;
+}
+static inline float linear_gradient(float x){return 1;}
+static inline float logistic_gradient(float x){return (1-x)*x;}
+static inline float loggy_gradient(float x)
+{
+ float y = (x+1.)/2.;
+ return 2*(1-y)*y;
+}
+static inline float stair_gradient(float x)
+{
+ if (floor(x) == x) return 0;
+ return 1;
+}
+static inline float relu_gradient(float x){return (x>0);}
+static inline float elu_gradient(float x){return (x >= 0) + (x < 0)*(x + 1);}
+static inline float selu_gradient(float x){return (x >= 0)*1.0507 + (x < 0)*(x + 1.0507*1.6732);}
+static inline float relie_gradient(float x){return (x>0) ? 1 : .01;}
+static inline float ramp_gradient(float x){return (x>0)+.1;}
+static inline float leaky_gradient(float x){return (x>0) ? 1 : .1;}
+static inline float tanh_gradient(float x){return 1-x*x;}
+static inline float plse_gradient(float x){return (x < 0 || x > 1) ? .01 : .125;}
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer.c"
new file mode 100644
index 00000000..83034dbe
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer.c"
@@ -0,0 +1,71 @@
+#include "avgpool_layer.h"
+#include "cuda.h"
+#include
+
+avgpool_layer make_avgpool_layer(int batch, int w, int h, int c)
+{
+ fprintf(stderr, "avg %4d x%4d x%4d -> %4d\n", w, h, c, c);
+ avgpool_layer l = {0};
+ l.type = AVGPOOL;
+ l.batch = batch;
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.out_w = 1;
+ l.out_h = 1;
+ l.out_c = c;
+ l.outputs = l.out_c;
+ l.inputs = h*w*c;
+ int output_size = l.outputs * batch;
+ l.output = calloc(output_size, sizeof(float));
+ l.delta = calloc(output_size, sizeof(float));
+ l.forward = forward_avgpool_layer;
+ l.backward = backward_avgpool_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_avgpool_layer_gpu;
+ l.backward_gpu = backward_avgpool_layer_gpu;
+ l.output_gpu = cuda_make_array(l.output, output_size);
+ l.delta_gpu = cuda_make_array(l.delta, output_size);
+ #endif
+ return l;
+}
+
+void resize_avgpool_layer(avgpool_layer *l, int w, int h)
+{
+ l->w = w;
+ l->h = h;
+ l->inputs = h*w*l->c;
+}
+
+void forward_avgpool_layer(const avgpool_layer l, network net)
+{
+ int b,i,k;
+
+ for(b = 0; b < l.batch; ++b){
+ for(k = 0; k < l.c; ++k){
+ int out_index = k + b*l.c;
+ l.output[out_index] = 0;
+ for(i = 0; i < l.h*l.w; ++i){
+ int in_index = i + l.h*l.w*(k + b*l.c);
+ l.output[out_index] += net.input[in_index];
+ }
+ l.output[out_index] /= l.h*l.w;
+ }
+ }
+}
+
+void backward_avgpool_layer(const avgpool_layer l, network net)
+{
+ int b,i,k;
+
+ for(b = 0; b < l.batch; ++b){
+ for(k = 0; k < l.c; ++k){
+ int out_index = k + b*l.c;
+ for(i = 0; i < l.h*l.w; ++i){
+ int in_index = i + l.h*l.w*(k + b*l.c);
+ net.delta[in_index] += l.delta[out_index] / (l.h*l.w);
+ }
+ }
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer.h"
new file mode 100644
index 00000000..3bd356c4
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer.h"
@@ -0,0 +1,23 @@
+#ifndef AVGPOOL_LAYER_H
+#define AVGPOOL_LAYER_H
+
+#include "image.h"
+#include "cuda.h"
+#include "layer.h"
+#include "network.h"
+
+typedef layer avgpool_layer;
+
+image get_avgpool_image(avgpool_layer l);
+avgpool_layer make_avgpool_layer(int batch, int w, int h, int c);
+void resize_avgpool_layer(avgpool_layer *l, int w, int h);
+void forward_avgpool_layer(const avgpool_layer l, network net);
+void backward_avgpool_layer(const avgpool_layer l, network net);
+
+#ifdef GPU
+void forward_avgpool_layer_gpu(avgpool_layer l, network net);
+void backward_avgpool_layer_gpu(avgpool_layer l, network net);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer_kernels.cu"
new file mode 100644
index 00000000..a7eca3ae
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/avgpool_layer_kernels.cu"
@@ -0,0 +1,61 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "avgpool_layer.h"
+#include "cuda.h"
+}
+
+__global__ void forward_avgpool_layer_kernel(int n, int w, int h, int c, float *input, float *output)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= n) return;
+
+ int k = id % c;
+ id /= c;
+ int b = id;
+
+ int i;
+ int out_index = (k + c*b);
+ output[out_index] = 0;
+ for(i = 0; i < w*h; ++i){
+ int in_index = i + h*w*(k + b*c);
+ output[out_index] += input[in_index];
+ }
+ output[out_index] /= w*h;
+}
+
+__global__ void backward_avgpool_layer_kernel(int n, int w, int h, int c, float *in_delta, float *out_delta)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= n) return;
+
+ int k = id % c;
+ id /= c;
+ int b = id;
+
+ int i;
+ int out_index = (k + c*b);
+ for(i = 0; i < w*h; ++i){
+ int in_index = i + h*w*(k + b*c);
+ in_delta[in_index] += out_delta[out_index] / (w*h);
+ }
+}
+
+extern "C" void forward_avgpool_layer_gpu(avgpool_layer layer, network net)
+{
+ size_t n = layer.c*layer.batch;
+
+ forward_avgpool_layer_kernel<<>>(n, layer.w, layer.h, layer.c, net.input_gpu, layer.output_gpu);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void backward_avgpool_layer_gpu(avgpool_layer layer, network net)
+{
+ size_t n = layer.c*layer.batch;
+
+ backward_avgpool_layer_kernel<<>>(n, layer.w, layer.h, layer.c, net.delta_gpu, layer.delta_gpu);
+ check_error(cudaPeekAtLastError());
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/batchnorm_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/batchnorm_layer.c"
new file mode 100644
index 00000000..ebff387c
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/batchnorm_layer.c"
@@ -0,0 +1,279 @@
+#include "convolutional_layer.h"
+#include "batchnorm_layer.h"
+#include "blas.h"
+#include
+
+layer make_batchnorm_layer(int batch, int w, int h, int c)
+{
+ fprintf(stderr, "Batch Normalization Layer: %d x %d x %d image\n", w,h,c);
+ layer l = {0};
+ l.type = BATCHNORM;
+ l.batch = batch;
+ l.h = l.out_h = h;
+ l.w = l.out_w = w;
+ l.c = l.out_c = c;
+ l.output = calloc(h * w * c * batch, sizeof(float));
+ l.delta = calloc(h * w * c * batch, sizeof(float));
+ l.inputs = w*h*c;
+ l.outputs = l.inputs;
+
+ l.scales = calloc(c, sizeof(float));
+ l.scale_updates = calloc(c, sizeof(float));
+ l.biases = calloc(c, sizeof(float));
+ l.bias_updates = calloc(c, sizeof(float));
+ int i;
+ for(i = 0; i < c; ++i){
+ l.scales[i] = 1;
+ }
+
+ l.mean = calloc(c, sizeof(float));
+ l.variance = calloc(c, sizeof(float));
+
+ l.rolling_mean = calloc(c, sizeof(float));
+ l.rolling_variance = calloc(c, sizeof(float));
+
+ l.forward = forward_batchnorm_layer;
+ l.backward = backward_batchnorm_layer;
+#ifdef GPU
+ l.forward_gpu = forward_batchnorm_layer_gpu;
+ l.backward_gpu = backward_batchnorm_layer_gpu;
+
+ l.output_gpu = cuda_make_array(l.output, h * w * c * batch);
+ l.delta_gpu = cuda_make_array(l.delta, h * w * c * batch);
+
+ l.biases_gpu = cuda_make_array(l.biases, c);
+ l.bias_updates_gpu = cuda_make_array(l.bias_updates, c);
+
+ l.scales_gpu = cuda_make_array(l.scales, c);
+ l.scale_updates_gpu = cuda_make_array(l.scale_updates, c);
+
+ l.mean_gpu = cuda_make_array(l.mean, c);
+ l.variance_gpu = cuda_make_array(l.variance, c);
+
+ l.rolling_mean_gpu = cuda_make_array(l.mean, c);
+ l.rolling_variance_gpu = cuda_make_array(l.variance, c);
+
+ l.mean_delta_gpu = cuda_make_array(l.mean, c);
+ l.variance_delta_gpu = cuda_make_array(l.variance, c);
+
+ l.x_gpu = cuda_make_array(l.output, l.batch*l.outputs);
+ l.x_norm_gpu = cuda_make_array(l.output, l.batch*l.outputs);
+ #ifdef CUDNN
+ cudnnCreateTensorDescriptor(&l.normTensorDesc);
+ cudnnCreateTensorDescriptor(&l.dstTensorDesc);
+ cudnnSetTensor4dDescriptor(l.dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l.batch, l.out_c, l.out_h, l.out_w);
+ cudnnSetTensor4dDescriptor(l.normTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l.out_c, 1, 1);
+
+ #endif
+#endif
+ return l;
+}
+
+void backward_scale_cpu(float *x_norm, float *delta, int batch, int n, int size, float *scale_updates)
+{
+ int i,b,f;
+ for(f = 0; f < n; ++f){
+ float sum = 0;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < size; ++i){
+ int index = i + size*(f + n*b);
+ sum += delta[index] * x_norm[index];
+ }
+ }
+ scale_updates[f] += sum;
+ }
+}
+
+void mean_delta_cpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
+{
+
+ int i,j,k;
+ for(i = 0; i < filters; ++i){
+ mean_delta[i] = 0;
+ for (j = 0; j < batch; ++j) {
+ for (k = 0; k < spatial; ++k) {
+ int index = j*filters*spatial + i*spatial + k;
+ mean_delta[i] += delta[index];
+ }
+ }
+ mean_delta[i] *= (-1./sqrt(variance[i] + .00001f));
+ }
+}
+void variance_delta_cpu(float *x, float *delta, float *mean, float *variance, int batch, int filters, int spatial, float *variance_delta)
+{
+
+ int i,j,k;
+ for(i = 0; i < filters; ++i){
+ variance_delta[i] = 0;
+ for(j = 0; j < batch; ++j){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + i*spatial + k;
+ variance_delta[i] += delta[index]*(x[index] - mean[i]);
+ }
+ }
+ variance_delta[i] *= -.5 * pow(variance[i] + .00001f, (float)(-3./2.));
+ }
+}
+void normalize_delta_cpu(float *x, float *mean, float *variance, float *mean_delta, float *variance_delta, int batch, int filters, int spatial, float *delta)
+{
+ int f, j, k;
+ for(j = 0; j < batch; ++j){
+ for(f = 0; f < filters; ++f){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + f*spatial + k;
+ delta[index] = delta[index] * 1./(sqrt(variance[f] + .00001f)) + variance_delta[f] * 2. * (x[index] - mean[f]) / (spatial * batch) + mean_delta[f]/(spatial*batch);
+ }
+ }
+ }
+}
+
+void resize_batchnorm_layer(layer *layer, int w, int h)
+{
+ fprintf(stderr, "Not implemented\n");
+}
+
+void forward_batchnorm_layer(layer l, network net)
+{
+ if(l.type == BATCHNORM) copy_cpu(l.outputs*l.batch, net.input, 1, l.output, 1);
+ copy_cpu(l.outputs*l.batch, l.output, 1, l.x, 1);
+ if(net.train){
+ mean_cpu(l.output, l.batch, l.out_c, l.out_h*l.out_w, l.mean);
+ variance_cpu(l.output, l.mean, l.batch, l.out_c, l.out_h*l.out_w, l.variance);
+
+ scal_cpu(l.out_c, .99, l.rolling_mean, 1);
+ axpy_cpu(l.out_c, .01, l.mean, 1, l.rolling_mean, 1);
+ scal_cpu(l.out_c, .99, l.rolling_variance, 1);
+ axpy_cpu(l.out_c, .01, l.variance, 1, l.rolling_variance, 1);
+
+ normalize_cpu(l.output, l.mean, l.variance, l.batch, l.out_c, l.out_h*l.out_w);
+ copy_cpu(l.outputs*l.batch, l.output, 1, l.x_norm, 1);
+ } else {
+ normalize_cpu(l.output, l.rolling_mean, l.rolling_variance, l.batch, l.out_c, l.out_h*l.out_w);
+ }
+ scale_bias(l.output, l.scales, l.batch, l.out_c, l.out_h*l.out_w);
+ add_bias(l.output, l.biases, l.batch, l.out_c, l.out_h*l.out_w);
+}
+
+void backward_batchnorm_layer(layer l, network net)
+{
+ if(!net.train){
+ l.mean = l.rolling_mean;
+ l.variance = l.rolling_variance;
+ }
+ backward_bias(l.bias_updates, l.delta, l.batch, l.out_c, l.out_w*l.out_h);
+ backward_scale_cpu(l.x_norm, l.delta, l.batch, l.out_c, l.out_w*l.out_h, l.scale_updates);
+
+ scale_bias(l.delta, l.scales, l.batch, l.out_c, l.out_h*l.out_w);
+
+ mean_delta_cpu(l.delta, l.variance, l.batch, l.out_c, l.out_w*l.out_h, l.mean_delta);
+ variance_delta_cpu(l.x, l.delta, l.mean, l.variance, l.batch, l.out_c, l.out_w*l.out_h, l.variance_delta);
+ normalize_delta_cpu(l.x, l.mean, l.variance, l.mean_delta, l.variance_delta, l.batch, l.out_c, l.out_w*l.out_h, l.delta);
+ if(l.type == BATCHNORM) copy_cpu(l.outputs*l.batch, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void pull_batchnorm_layer(layer l)
+{
+ cuda_pull_array(l.scales_gpu, l.scales, l.c);
+ cuda_pull_array(l.rolling_mean_gpu, l.rolling_mean, l.c);
+ cuda_pull_array(l.rolling_variance_gpu, l.rolling_variance, l.c);
+}
+void push_batchnorm_layer(layer l)
+{
+ cuda_push_array(l.scales_gpu, l.scales, l.c);
+ cuda_push_array(l.rolling_mean_gpu, l.rolling_mean, l.c);
+ cuda_push_array(l.rolling_variance_gpu, l.rolling_variance, l.c);
+}
+
+void forward_batchnorm_layer_gpu(layer l, network net)
+{
+ if(l.type == BATCHNORM) copy_gpu(l.outputs*l.batch, net.input_gpu, 1, l.output_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.output_gpu, 1, l.x_gpu, 1);
+ if (net.train) {
+#ifdef CUDNN
+ float one = 1;
+ float zero = 0;
+ cudnnBatchNormalizationForwardTraining(cudnn_handle(),
+ CUDNN_BATCHNORM_SPATIAL,
+ &one,
+ &zero,
+ l.dstTensorDesc,
+ l.x_gpu,
+ l.dstTensorDesc,
+ l.output_gpu,
+ l.normTensorDesc,
+ l.scales_gpu,
+ l.biases_gpu,
+ .01,
+ l.rolling_mean_gpu,
+ l.rolling_variance_gpu,
+ .00001,
+ l.mean_gpu,
+ l.variance_gpu);
+#else
+ fast_mean_gpu(l.output_gpu, l.batch, l.out_c, l.out_h*l.out_w, l.mean_gpu);
+ fast_variance_gpu(l.output_gpu, l.mean_gpu, l.batch, l.out_c, l.out_h*l.out_w, l.variance_gpu);
+
+ scal_gpu(l.out_c, .99, l.rolling_mean_gpu, 1);
+ axpy_gpu(l.out_c, .01, l.mean_gpu, 1, l.rolling_mean_gpu, 1);
+ scal_gpu(l.out_c, .99, l.rolling_variance_gpu, 1);
+ axpy_gpu(l.out_c, .01, l.variance_gpu, 1, l.rolling_variance_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, l.output_gpu, 1, l.x_gpu, 1);
+ normalize_gpu(l.output_gpu, l.mean_gpu, l.variance_gpu, l.batch, l.out_c, l.out_h*l.out_w);
+ copy_gpu(l.outputs*l.batch, l.output_gpu, 1, l.x_norm_gpu, 1);
+
+ scale_bias_gpu(l.output_gpu, l.scales_gpu, l.batch, l.out_c, l.out_h*l.out_w);
+ add_bias_gpu(l.output_gpu, l.biases_gpu, l.batch, l.out_c, l.out_w*l.out_h);
+#endif
+ } else {
+ normalize_gpu(l.output_gpu, l.rolling_mean_gpu, l.rolling_variance_gpu, l.batch, l.out_c, l.out_h*l.out_w);
+ scale_bias_gpu(l.output_gpu, l.scales_gpu, l.batch, l.out_c, l.out_h*l.out_w);
+ add_bias_gpu(l.output_gpu, l.biases_gpu, l.batch, l.out_c, l.out_w*l.out_h);
+ }
+
+}
+
+void backward_batchnorm_layer_gpu(layer l, network net)
+{
+ if(!net.train){
+ l.mean_gpu = l.rolling_mean_gpu;
+ l.variance_gpu = l.rolling_variance_gpu;
+ }
+#ifdef CUDNN
+ float one = 1;
+ float zero = 0;
+ cudnnBatchNormalizationBackward(cudnn_handle(),
+ CUDNN_BATCHNORM_SPATIAL,
+ &one,
+ &zero,
+ &one,
+ &one,
+ l.dstTensorDesc,
+ l.x_gpu,
+ l.dstTensorDesc,
+ l.delta_gpu,
+ l.dstTensorDesc,
+ l.x_norm_gpu,
+ l.normTensorDesc,
+ l.scales_gpu,
+ l.scale_updates_gpu,
+ l.bias_updates_gpu,
+ .00001,
+ l.mean_gpu,
+ l.variance_gpu);
+ copy_gpu(l.outputs*l.batch, l.x_norm_gpu, 1, l.delta_gpu, 1);
+#else
+ backward_bias_gpu(l.bias_updates_gpu, l.delta_gpu, l.batch, l.out_c, l.out_w*l.out_h);
+ backward_scale_gpu(l.x_norm_gpu, l.delta_gpu, l.batch, l.out_c, l.out_w*l.out_h, l.scale_updates_gpu);
+
+ scale_bias_gpu(l.delta_gpu, l.scales_gpu, l.batch, l.out_c, l.out_h*l.out_w);
+
+ fast_mean_delta_gpu(l.delta_gpu, l.variance_gpu, l.batch, l.out_c, l.out_w*l.out_h, l.mean_delta_gpu);
+ fast_variance_delta_gpu(l.x_gpu, l.delta_gpu, l.mean_gpu, l.variance_gpu, l.batch, l.out_c, l.out_w*l.out_h, l.variance_delta_gpu);
+ normalize_delta_gpu(l.x_gpu, l.mean_gpu, l.variance_gpu, l.mean_delta_gpu, l.variance_delta_gpu, l.batch, l.out_c, l.out_w*l.out_h, l.delta_gpu);
+#endif
+ if(l.type == BATCHNORM) copy_gpu(l.outputs*l.batch, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/batchnorm_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/batchnorm_layer.h"
new file mode 100644
index 00000000..25a18a3c
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/batchnorm_layer.h"
@@ -0,0 +1,19 @@
+#ifndef BATCHNORM_LAYER_H
+#define BATCHNORM_LAYER_H
+
+#include "image.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_batchnorm_layer(int batch, int w, int h, int c);
+void forward_batchnorm_layer(layer l, network net);
+void backward_batchnorm_layer(layer l, network net);
+
+#ifdef GPU
+void forward_batchnorm_layer_gpu(layer l, network net);
+void backward_batchnorm_layer_gpu(layer l, network net);
+void pull_batchnorm_layer(layer l);
+void push_batchnorm_layer(layer l);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas.c"
new file mode 100644
index 00000000..9e160444
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas.c"
@@ -0,0 +1,351 @@
+#include "blas.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+void reorg_cpu(float *x, int w, int h, int c, int batch, int stride, int forward, float *out)
+{
+ int b,i,j,k;
+ int out_c = c/(stride*stride);
+
+ for(b = 0; b < batch; ++b){
+ for(k = 0; k < c; ++k){
+ for(j = 0; j < h; ++j){
+ for(i = 0; i < w; ++i){
+ int in_index = i + w*(j + h*(k + c*b));
+ int c2 = k % out_c;
+ int offset = k / out_c;
+ int w2 = i*stride + offset % stride;
+ int h2 = j*stride + offset / stride;
+ int out_index = w2 + w*stride*(h2 + h*stride*(c2 + out_c*b));
+ if(forward) out[out_index] = x[in_index];
+ else out[in_index] = x[out_index];
+ }
+ }
+ }
+ }
+}
+
+void flatten(float *x, int size, int layers, int batch, int forward)
+{
+ float *swap = calloc(size*layers*batch, sizeof(float));
+ int i,c,b;
+ for(b = 0; b < batch; ++b){
+ for(c = 0; c < layers; ++c){
+ for(i = 0; i < size; ++i){
+ int i1 = b*layers*size + c*size + i;
+ int i2 = b*layers*size + i*layers + c;
+ if (forward) swap[i2] = x[i1];
+ else swap[i1] = x[i2];
+ }
+ }
+ }
+ memcpy(x, swap, size*layers*batch*sizeof(float));
+ free(swap);
+}
+
+void weighted_sum_cpu(float *a, float *b, float *s, int n, float *c)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ c[i] = s[i]*a[i] + (1-s[i])*(b ? b[i] : 0);
+ }
+}
+
+void weighted_delta_cpu(float *a, float *b, float *s, float *da, float *db, float *ds, int n, float *dc)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ if(da) da[i] += dc[i] * s[i];
+ if(db) db[i] += dc[i] * (1-s[i]);
+ ds[i] += dc[i] * (a[i] - b[i]);
+ }
+}
+
+void shortcut_cpu(int batch, int w1, int h1, int c1, float *add, int w2, int h2, int c2, float s1, float s2, float *out)
+{
+ int stride = w1/w2;
+ int sample = w2/w1;
+ assert(stride == h1/h2);
+ assert(sample == h2/h1);
+ if(stride < 1) stride = 1;
+ if(sample < 1) sample = 1;
+ int minw = (w1 < w2) ? w1 : w2;
+ int minh = (h1 < h2) ? h1 : h2;
+ int minc = (c1 < c2) ? c1 : c2;
+
+ int i,j,k,b;
+ for(b = 0; b < batch; ++b){
+ for(k = 0; k < minc; ++k){
+ for(j = 0; j < minh; ++j){
+ for(i = 0; i < minw; ++i){
+ int out_index = i*sample + w2*(j*sample + h2*(k + c2*b));
+ int add_index = i*stride + w1*(j*stride + h1*(k + c1*b));
+ out[out_index] = s1*out[out_index] + s2*add[add_index];
+ }
+ }
+ }
+ }
+}
+
+void mean_cpu(float *x, int batch, int filters, int spatial, float *mean)
+{
+ float scale = 1./(batch * spatial);
+ int i,j,k;
+ for(i = 0; i < filters; ++i){
+ mean[i] = 0;
+ for(j = 0; j < batch; ++j){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + i*spatial + k;
+ mean[i] += x[index];
+ }
+ }
+ mean[i] *= scale;
+ }
+}
+
+void variance_cpu(float *x, float *mean, int batch, int filters, int spatial, float *variance)
+{
+ float scale = 1./(batch * spatial - 1);
+ int i,j,k;
+ for(i = 0; i < filters; ++i){
+ variance[i] = 0;
+ for(j = 0; j < batch; ++j){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + i*spatial + k;
+ variance[i] += pow((x[index] - mean[i]), 2);
+ }
+ }
+ variance[i] *= scale;
+ }
+}
+
+void l2normalize_cpu(float *x, float *dx, int batch, int filters, int spatial)
+{
+ int b,f,i;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < spatial; ++i){
+ float sum = 0;
+ for(f = 0; f < filters; ++f){
+ int index = b*filters*spatial + f*spatial + i;
+ sum += powf(x[index], 2);
+ }
+ sum = sqrtf(sum);
+ for(f = 0; f < filters; ++f){
+ int index = b*filters*spatial + f*spatial + i;
+ x[index] /= sum;
+ dx[index] = (1 - x[index]) / sum;
+ }
+ }
+ }
+}
+
+
+void normalize_cpu(float *x, float *mean, float *variance, int batch, int filters, int spatial)
+{
+ int b, f, i;
+ for(b = 0; b < batch; ++b){
+ for(f = 0; f < filters; ++f){
+ for(i = 0; i < spatial; ++i){
+ int index = b*filters*spatial + f*spatial + i;
+ x[index] = (x[index] - mean[f])/(sqrt(variance[f]) + .000001f);
+ }
+ }
+ }
+}
+
+void const_cpu(int N, float ALPHA, float *X, int INCX)
+{
+ int i;
+ for(i = 0; i < N; ++i) X[i*INCX] = ALPHA;
+}
+
+void mul_cpu(int N, float *X, int INCX, float *Y, int INCY)
+{
+ int i;
+ for(i = 0; i < N; ++i) Y[i*INCY] *= X[i*INCX];
+}
+
+void pow_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
+{
+ int i;
+ for(i = 0; i < N; ++i) Y[i*INCY] = pow(X[i*INCX], ALPHA);
+}
+
+void axpy_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
+{
+ int i;
+ for(i = 0; i < N; ++i) Y[i*INCY] += ALPHA*X[i*INCX];
+}
+
+void scal_cpu(int N, float ALPHA, float *X, int INCX)
+{
+ int i;
+ for(i = 0; i < N; ++i) X[i*INCX] *= ALPHA;
+}
+
+void fill_cpu(int N, float ALPHA, float *X, int INCX)
+{
+ int i;
+ for(i = 0; i < N; ++i) X[i*INCX] = ALPHA;
+}
+
+void deinter_cpu(int NX, float *X, int NY, float *Y, int B, float *OUT)
+{
+ int i, j;
+ int index = 0;
+ for(j = 0; j < B; ++j) {
+ for(i = 0; i < NX; ++i){
+ if(X) X[j*NX + i] += OUT[index];
+ ++index;
+ }
+ for(i = 0; i < NY; ++i){
+ if(Y) Y[j*NY + i] += OUT[index];
+ ++index;
+ }
+ }
+}
+
+void inter_cpu(int NX, float *X, int NY, float *Y, int B, float *OUT)
+{
+ int i, j;
+ int index = 0;
+ for(j = 0; j < B; ++j) {
+ for(i = 0; i < NX; ++i){
+ OUT[index++] = X[j*NX + i];
+ }
+ for(i = 0; i < NY; ++i){
+ OUT[index++] = Y[j*NY + i];
+ }
+ }
+}
+
+void copy_cpu(int N, float *X, int INCX, float *Y, int INCY)
+{
+ int i;
+ for(i = 0; i < N; ++i) Y[i*INCY] = X[i*INCX];
+}
+
+void mult_add_into_cpu(int N, float *X, float *Y, float *Z)
+{
+ int i;
+ for(i = 0; i < N; ++i) Z[i] += X[i]*Y[i];
+}
+
+void smooth_l1_cpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ float diff = truth[i] - pred[i];
+ float abs_val = fabs(diff);
+ if(abs_val < 1) {
+ error[i] = diff * diff;
+ delta[i] = diff;
+ }
+ else {
+ error[i] = 2*abs_val - 1;
+ delta[i] = (diff < 0) ? 1 : -1;
+ }
+ }
+}
+
+void l1_cpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ float diff = truth[i] - pred[i];
+ error[i] = fabs(diff);
+ delta[i] = diff > 0 ? 1 : -1;
+ }
+}
+
+void softmax_x_ent_cpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ float t = truth[i];
+ float p = pred[i];
+ error[i] = (t) ? -log(p) : 0;
+ delta[i] = t-p;
+ }
+}
+
+void logistic_x_ent_cpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ float t = truth[i];
+ float p = pred[i];
+ error[i] = -t*log(p) - (1-t)*log(1-p);
+ delta[i] = t-p;
+ }
+}
+
+void l2_cpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ float diff = truth[i] - pred[i];
+ error[i] = diff * diff;
+ delta[i] = diff;
+ }
+}
+
+float dot_cpu(int N, float *X, int INCX, float *Y, int INCY)
+{
+ int i;
+ float dot = 0;
+ for(i = 0; i < N; ++i) dot += X[i*INCX] * Y[i*INCY];
+ return dot;
+}
+
+void softmax(float *input, int n, float temp, int stride, float *output)
+{
+ int i;
+ float sum = 0;
+ float largest = -FLT_MAX;
+ for(i = 0; i < n; ++i){
+ if(input[i*stride] > largest) largest = input[i*stride];
+ }
+ for(i = 0; i < n; ++i){
+ float e = exp(input[i*stride]/temp - largest/temp);
+ sum += e;
+ output[i*stride] = e;
+ }
+ for(i = 0; i < n; ++i){
+ output[i*stride] /= sum;
+ }
+}
+
+
+void softmax_cpu(float *input, int n, int batch, int batch_offset, int groups, int group_offset, int stride, float temp, float *output)
+{
+ int g, b;
+ for(b = 0; b < batch; ++b){
+ for(g = 0; g < groups; ++g){
+ softmax(input + b*batch_offset + g*group_offset, n, temp, stride, output + b*batch_offset + g*group_offset);
+ }
+ }
+}
+
+void upsample_cpu(float *in, int w, int h, int c, int batch, int stride, int forward, float scale, float *out)
+{
+ int i, j, k, b;
+ for(b = 0; b < batch; ++b){
+ for(k = 0; k < c; ++k){
+ for(j = 0; j < h*stride; ++j){
+ for(i = 0; i < w*stride; ++i){
+ int in_index = b*w*h*c + k*w*h + (j/stride)*w + i/stride;
+ int out_index = b*w*h*c*stride*stride + k*w*h*stride*stride + j*w*stride + i;
+ if(forward) out[out_index] = scale*in[in_index];
+ else in[in_index] += scale*out[out_index];
+ }
+ }
+ }
+ }
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas.h"
new file mode 100644
index 00000000..707291de
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas.h"
@@ -0,0 +1,105 @@
+#ifndef BLAS_H
+#define BLAS_H
+#include "darknet.h"
+
+void flatten(float *x, int size, int layers, int batch, int forward);
+void pm(int M, int N, float *A);
+float *random_matrix(int rows, int cols);
+void time_random_matrix(int TA, int TB, int m, int k, int n);
+void reorg_cpu(float *x, int w, int h, int c, int batch, int stride, int forward, float *out);
+
+void test_blas();
+
+void inter_cpu(int NX, float *X, int NY, float *Y, int B, float *OUT);
+void deinter_cpu(int NX, float *X, int NY, float *Y, int B, float *OUT);
+void mult_add_into_cpu(int N, float *X, float *Y, float *Z);
+
+void const_cpu(int N, float ALPHA, float *X, int INCX);
+void constrain_gpu(int N, float ALPHA, float * X, int INCX);
+void pow_cpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY);
+void mul_cpu(int N, float *X, int INCX, float *Y, int INCY);
+
+int test_gpu_blas();
+void shortcut_cpu(int batch, int w1, int h1, int c1, float *add, int w2, int h2, int c2, float s1, float s2, float *out);
+
+void mean_cpu(float *x, int batch, int filters, int spatial, float *mean);
+void variance_cpu(float *x, float *mean, int batch, int filters, int spatial, float *variance);
+
+void scale_bias(float *output, float *scales, int batch, int n, int size);
+void backward_scale_cpu(float *x_norm, float *delta, int batch, int n, int size, float *scale_updates);
+void mean_delta_cpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta);
+void variance_delta_cpu(float *x, float *delta, float *mean, float *variance, int batch, int filters, int spatial, float *variance_delta);
+void normalize_delta_cpu(float *x, float *mean, float *variance, float *mean_delta, float *variance_delta, int batch, int filters, int spatial, float *delta);
+void l2normalize_cpu(float *x, float *dx, int batch, int filters, int spatial);
+
+void smooth_l1_cpu(int n, float *pred, float *truth, float *delta, float *error);
+void l2_cpu(int n, float *pred, float *truth, float *delta, float *error);
+void l1_cpu(int n, float *pred, float *truth, float *delta, float *error);
+void logistic_x_ent_cpu(int n, float *pred, float *truth, float *delta, float *error);
+void softmax_x_ent_cpu(int n, float *pred, float *truth, float *delta, float *error);
+void weighted_sum_cpu(float *a, float *b, float *s, int num, float *c);
+void weighted_delta_cpu(float *a, float *b, float *s, float *da, float *db, float *ds, int n, float *dc);
+
+void softmax(float *input, int n, float temp, int stride, float *output);
+void softmax_cpu(float *input, int n, int batch, int batch_offset, int groups, int group_offset, int stride, float temp, float *output);
+void upsample_cpu(float *in, int w, int h, int c, int batch, int stride, int forward, float scale, float *out);
+
+#ifdef GPU
+#include "cuda.h"
+#include "tree.h"
+
+void axpy_gpu(int N, float ALPHA, float * X, int INCX, float * Y, int INCY);
+void axpy_gpu_offset(int N, float ALPHA, float * X, int OFFX, int INCX, float * Y, int OFFY, int INCY);
+void copy_gpu(int N, float * X, int INCX, float * Y, int INCY);
+void copy_gpu_offset(int N, float * X, int OFFX, int INCX, float * Y, int OFFY, int INCY);
+void add_gpu(int N, float ALPHA, float * X, int INCX);
+void supp_gpu(int N, float ALPHA, float * X, int INCX);
+void mask_gpu(int N, float * X, float mask_num, float * mask, float val);
+void scale_mask_gpu(int N, float * X, float mask_num, float * mask, float scale);
+void const_gpu(int N, float ALPHA, float *X, int INCX);
+void pow_gpu(int N, float ALPHA, float *X, int INCX, float *Y, int INCY);
+void mul_gpu(int N, float *X, int INCX, float *Y, int INCY);
+
+void mean_gpu(float *x, int batch, int filters, int spatial, float *mean);
+void variance_gpu(float *x, float *mean, int batch, int filters, int spatial, float *variance);
+void normalize_gpu(float *x, float *mean, float *variance, int batch, int filters, int spatial);
+void l2normalize_gpu(float *x, float *dx, int batch, int filters, int spatial);
+
+void normalize_delta_gpu(float *x, float *mean, float *variance, float *mean_delta, float *variance_delta, int batch, int filters, int spatial, float *delta);
+
+void fast_mean_delta_gpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta);
+void fast_variance_delta_gpu(float *x, float *delta, float *mean, float *variance, int batch, int filters, int spatial, float *variance_delta);
+
+void fast_variance_gpu(float *x, float *mean, int batch, int filters, int spatial, float *variance);
+void fast_mean_gpu(float *x, int batch, int filters, int spatial, float *mean);
+void shortcut_gpu(int batch, int w1, int h1, int c1, float *add, int w2, int h2, int c2, float s1, float s2, float *out);
+void scale_bias_gpu(float *output, float *biases, int batch, int n, int size);
+void backward_scale_gpu(float *x_norm, float *delta, int batch, int n, int size, float *scale_updates);
+void scale_bias_gpu(float *output, float *biases, int batch, int n, int size);
+void add_bias_gpu(float *output, float *biases, int batch, int n, int size);
+void backward_bias_gpu(float *bias_updates, float *delta, int batch, int n, int size);
+
+void logistic_x_ent_gpu(int n, float *pred, float *truth, float *delta, float *error);
+void softmax_x_ent_gpu(int n, float *pred, float *truth, float *delta, float *error);
+void smooth_l1_gpu(int n, float *pred, float *truth, float *delta, float *error);
+void l2_gpu(int n, float *pred, float *truth, float *delta, float *error);
+void l1_gpu(int n, float *pred, float *truth, float *delta, float *error);
+void wgan_gpu(int n, float *pred, float *truth, float *delta, float *error);
+void weighted_delta_gpu(float *a, float *b, float *s, float *da, float *db, float *ds, int num, float *dc);
+void weighted_sum_gpu(float *a, float *b, float *s, int num, float *c);
+void mult_add_into_gpu(int num, float *a, float *b, float *c);
+void inter_gpu(int NX, float *X, int NY, float *Y, int B, float *OUT);
+void deinter_gpu(int NX, float *X, int NY, float *Y, int B, float *OUT);
+
+void reorg_gpu(float *x, int w, int h, int c, int batch, int stride, int forward, float *out);
+
+void softmax_gpu(float *input, int n, int batch, int batch_offset, int groups, int group_offset, int stride, float temp, float *output);
+void adam_update_gpu(float *w, float *d, float *m, float *v, float B1, float B2, float eps, float decay, float rate, int n, int batch, int t);
+void adam_gpu(int n, float *x, float *m, float *v, float B1, float B2, float rate, float eps, int t);
+
+void flatten_gpu(float *x, int spatial, int layers, int batch, int forward, float *out);
+void softmax_tree(float *input, int spatial, int batch, int stride, float temp, float *output, tree hier);
+void upsample_gpu(float *in, int w, int h, int c, int batch, int stride, int forward, float scale, float *out);
+
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas_kernels.cu"
new file mode 100644
index 00000000..47e82179
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/blas_kernels.cu"
@@ -0,0 +1,1035 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+#include
+
+extern "C" {
+#include "blas.h"
+#include "cuda.h"
+#include "utils.h"
+}
+
+__global__ void scale_bias_kernel(float *output, float *biases, int n, int size)
+{
+ int offset = blockIdx.x * blockDim.x + threadIdx.x;
+ int filter = blockIdx.y;
+ int batch = blockIdx.z;
+
+ if(offset < size) output[(batch*n+filter)*size + offset] *= biases[filter];
+}
+
+void scale_bias_gpu(float *output, float *biases, int batch, int n, int size)
+{
+ dim3 dimGrid((size-1)/BLOCK + 1, n, batch);
+ dim3 dimBlock(BLOCK, 1, 1);
+
+ scale_bias_kernel<<>>(output, biases, n, size);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void backward_scale_kernel(float *x_norm, float *delta, int batch, int n, int size, float *scale_updates)
+{
+ __shared__ float part[BLOCK];
+ int i,b;
+ int filter = blockIdx.x;
+ int p = threadIdx.x;
+ float sum = 0;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < size; i += BLOCK){
+ int index = p + i + size*(filter + n*b);
+ sum += (p+i < size) ? delta[index]*x_norm[index] : 0;
+ }
+ }
+ part[p] = sum;
+ __syncthreads();
+ if (p == 0) {
+ for(i = 0; i < BLOCK; ++i) scale_updates[filter] += part[i];
+ }
+}
+
+void backward_scale_gpu(float *x_norm, float *delta, int batch, int n, int size, float *scale_updates)
+{
+ backward_scale_kernel<<>>(x_norm, delta, batch, n, size, scale_updates);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void add_bias_kernel(float *output, float *biases, int batch, int n, int size)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (index >= n*size*batch) return;
+ int i = index % size;
+ index /= size;
+ int j = index % n;
+ index /= n;
+ int k = index;
+
+ output[(k*n+j)*size + i] += biases[j];
+}
+
+void add_bias_gpu(float *output, float *biases, int batch, int n, int size)
+{
+ int num = n*size*batch;
+
+ add_bias_kernel<<>>(output, biases, batch, n, size);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void backward_bias_conn_kernel(float *bias_updates, float *delta, int batch, int n)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (index >= n) return;
+ int b;
+ float sum = 0;
+ for(b = 0; b < batch; ++b){
+ int i = b*n + index;
+ sum += delta[i];
+ }
+ bias_updates[index] += sum;
+}
+
+__global__ void backward_bias_kernel(float *bias_updates, float *delta, int batch, int n, int size)
+{
+ __shared__ float part[BLOCK];
+ int i,b;
+ int filter = blockIdx.x;
+ int p = threadIdx.x;
+ float sum = 0;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < size; i += BLOCK){
+ int index = p + i + size*(filter + n*b);
+ sum += (p+i < size) ? delta[index] : 0;
+ }
+ }
+ part[p] = sum;
+ __syncthreads();
+ if (p == 0) {
+ for(i = 0; i < BLOCK; ++i) bias_updates[filter] += part[i];
+ }
+}
+
+void backward_bias_gpu(float *bias_updates, float *delta, int batch, int n, int size)
+{
+ if(size == 1){
+ backward_bias_conn_kernel<<>>(bias_updates, delta, batch, n);
+ }else{
+ backward_bias_kernel<<>>(bias_updates, delta, batch, n, size);
+ }
+ check_error(cudaPeekAtLastError());
+}
+
+/*
+__global__ void dot_kernel(float *output, float scale, int batch, int n, int size, float *delta)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ int f1 = index / n;
+ int f2 = index % n;
+ if (f2 <= f1) return;
+
+ float sum = 0;
+ float norm1 = 0;
+ float norm2 = 0;
+ int b, i;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < size; ++i){
+ int i1 = b * size * n + f1 * size + i;
+ int i2 = b * size * n + f2 * size + i;
+ sum += output[i1] * output[i2];
+ norm1 += output[i1] * output[i1];
+ norm2 += output[i2] * output[i2];
+ }
+ }
+ norm1 = sqrt(norm1);
+ norm2 = sqrt(norm2);
+ float norm = norm1 * norm2;
+ sum = sum / norm;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < size; ++i){
+ int i1 = b * size * n + f1 * size + i;
+ int i2 = b * size * n + f2 * size + i;
+ delta[i1] += - scale * sum * output[i2] / norm;
+ delta[i2] += - scale * sum * output[i1] / norm;
+ }
+ }
+}
+
+void dot_error_gpu(layer l)
+{
+ dot_kernel<<>>(l.output_gpu, l.dot, l.batch, l.n, l.out_w * l.out_h, l.delta_gpu);
+ check_error(cudaPeekAtLastError());
+}
+*/
+
+
+__global__ void adam_kernel(int N, float *x, float *m, float *v, float B1, float B2, float rate, float eps, int t)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (index >= N) return;
+
+ float mhat = m[index] / (1.f - powf(B1, t));
+ float vhat = v[index] / (1.f - powf(B2, t));
+
+ x[index] = x[index] + rate * mhat / (sqrtf(vhat) + eps);
+}
+
+extern "C" void adam_gpu(int n, float *x, float *m, float *v, float B1, float B2, float rate, float eps, int t)
+{
+ adam_kernel<<>>(n, x, m, v, B1, B2, rate, eps, t);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void adam_update_gpu(float *w, float *d, float *m, float *v, float B1, float B2, float eps, float decay, float rate, int n, int batch, int t)
+{
+ scal_gpu(n, B1, m, 1);
+ scal_gpu(n, B2, v, 1);
+ axpy_gpu(n, -decay*batch, w, 1, d, 1);
+
+ axpy_gpu(n, (1-B1), d, 1, m, 1);
+ mul_gpu(n, d, 1, d, 1);
+ axpy_gpu(n, (1-B2), d, 1, v, 1);
+
+ adam_gpu(n, w, m, v, B1, B2, rate, eps, t);
+ fill_gpu(n, 0, d, 1);
+}
+
+__global__ void normalize_kernel(int N, float *x, float *mean, float *variance, int batch, int filters, int spatial)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (index >= N) return;
+ int f = (index/spatial)%filters;
+
+ x[index] = (x[index] - mean[f])/(sqrtf(variance[f] + .00001f));
+}
+
+__global__ void normalize_delta_kernel(int N, float *x, float *mean, float *variance, float *mean_delta, float *variance_delta, int batch, int filters, int spatial, float *delta)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (index >= N) return;
+ int f = (index/spatial)%filters;
+
+ delta[index] = delta[index] * 1.f/(sqrtf(variance[f] + .00001f)) + variance_delta[f] * 2.f * (x[index] - mean[f]) / (spatial * batch) + mean_delta[f]/(spatial*batch);
+}
+
+extern "C" void normalize_delta_gpu(float *x, float *mean, float *variance, float *mean_delta, float *variance_delta, int batch, int filters, int spatial, float *delta)
+{
+ size_t N = batch*filters*spatial;
+ normalize_delta_kernel<<>>(N, x, mean, variance, mean_delta, variance_delta, batch, filters, spatial, delta);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void variance_delta_kernel(float *x, float *delta, float *mean, float *variance, int batch, int filters, int spatial, float *variance_delta)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (i >= filters) return;
+ int j,k;
+ variance_delta[i] = 0;
+ for(j = 0; j < batch; ++j){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + i*spatial + k;
+ variance_delta[i] += delta[index]*(x[index] - mean[i]);
+ }
+ }
+ variance_delta[i] *= -.5f * powf(variance[i] + .00001f, (float)(-3.f/2.f));
+}
+
+__global__ void accumulate_kernel(float *x, int n, int groups, float *sum)
+{
+ int k;
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (i >= groups) return;
+ sum[i] = 0;
+ for(k = 0; k < n; ++k){
+ sum[i] += x[k*groups + i];
+ }
+}
+
+__global__ void fast_mean_delta_kernel(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
+{
+ const int threads = BLOCK;
+ __shared__ float local[threads];
+
+ int id = threadIdx.x;
+ local[id] = 0;
+
+ int filter = blockIdx.x;
+
+ int i, j;
+ for(j = 0; j < batch; ++j){
+ for(i = 0; i < spatial; i += threads){
+ int index = j*spatial*filters + filter*spatial + i + id;
+ local[id] += (i+id < spatial) ? delta[index] : 0;
+ }
+ }
+
+ __syncthreads();
+
+ if(id == 0){
+ mean_delta[filter] = 0;
+ for(i = 0; i < threads; ++i){
+ mean_delta[filter] += local[i];
+ }
+ mean_delta[filter] *= (-1.f/sqrtf(variance[filter] + .00001f));
+ }
+}
+
+__global__ void fast_variance_delta_kernel(float *x, float *delta, float *mean, float *variance, int batch, int filters, int spatial, float *variance_delta)
+{
+ const int threads = BLOCK;
+ __shared__ float local[threads];
+
+ int id = threadIdx.x;
+ local[id] = 0;
+
+ int filter = blockIdx.x;
+
+ int i, j;
+ for(j = 0; j < batch; ++j){
+ for(i = 0; i < spatial; i += threads){
+ int index = j*spatial*filters + filter*spatial + i + id;
+
+ local[id] += (i+id < spatial) ? delta[index]*(x[index] - mean[filter]) : 0;
+ }
+ }
+
+ __syncthreads();
+
+ if(id == 0){
+ variance_delta[filter] = 0;
+ for(i = 0; i < threads; ++i){
+ variance_delta[filter] += local[i];
+ }
+ variance_delta[filter] *= -.5f * powf(variance[filter] + .00001f, (float)(-3.f/2.f));
+ }
+}
+
+
+__global__ void mean_delta_kernel(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (i >= filters) return;
+ int j,k;
+ mean_delta[i] = 0;
+ for (j = 0; j < batch; ++j) {
+ for (k = 0; k < spatial; ++k) {
+ int index = j*filters*spatial + i*spatial + k;
+ mean_delta[i] += delta[index];
+ }
+ }
+ mean_delta[i] *= (-1.f/sqrtf(variance[i] + .00001f));
+}
+
+extern "C" void mean_delta_gpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
+{
+ mean_delta_kernel<<>>(delta, variance, batch, filters, spatial, mean_delta);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void fast_mean_delta_gpu(float *delta, float *variance, int batch, int filters, int spatial, float *mean_delta)
+{
+ fast_mean_delta_kernel<<>>(delta, variance, batch, filters, spatial, mean_delta);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void fast_variance_delta_gpu(float *x, float *delta, float *mean, float *variance, int batch, int filters, int spatial, float *variance_delta)
+{
+ fast_variance_delta_kernel<<>>(x, delta, mean, variance, batch, filters, spatial, variance_delta);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void mean_kernel(float *x, int batch, int filters, int spatial, float *mean)
+{
+ float scale = 1.f/(batch * spatial);
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (i >= filters) return;
+ int j,k;
+ mean[i] = 0;
+ for(j = 0; j < batch; ++j){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + i*spatial + k;
+ mean[i] += x[index];
+ }
+ }
+ mean[i] *= scale;
+}
+
+__global__ void variance_kernel(float *x, float *mean, int batch, int filters, int spatial, float *variance)
+{
+ float scale = 1.f/(batch * spatial - 1);
+ int j,k;
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (i >= filters) return;
+ variance[i] = 0;
+ for(j = 0; j < batch; ++j){
+ for(k = 0; k < spatial; ++k){
+ int index = j*filters*spatial + i*spatial + k;
+ variance[i] += powf((x[index] - mean[i]), 2);
+ }
+ }
+ variance[i] *= scale;
+}
+
+__global__ void reorg_kernel(int N, float *x, int w, int h, int c, int batch, int stride, int forward, float *out)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i >= N) return;
+ int in_index = i;
+ int in_w = i%w;
+ i = i/w;
+ int in_h = i%h;
+ i = i/h;
+ int in_c = i%c;
+ i = i/c;
+ int b = i%batch;
+
+ int out_c = c/(stride*stride);
+
+ int c2 = in_c % out_c;
+ int offset = in_c / out_c;
+ int w2 = in_w*stride + offset % stride;
+ int h2 = in_h*stride + offset / stride;
+ //printf("%d\n", offset);
+ int out_index = w2 + w*stride*(h2 + h*stride*(c2 + out_c*b));
+
+ // printf("%d %d %d\n", w2, h2, c2);
+ //printf("%d %d\n", in_index, out_index);
+ //if(out_index >= N || out_index < 0) printf("bad bad bad \n");
+
+ if(forward) out[out_index] = x[in_index];
+ else out[in_index] = x[out_index];
+ //if(forward) out[1] = x[1];
+ //else out[0] = x[0];
+}
+
+__global__ void axpy_kernel(int N, float ALPHA, float *X, int OFFX, int INCX, float *Y, int OFFY, int INCY)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) Y[OFFY+i*INCY] += ALPHA*X[OFFX+i*INCX];
+}
+
+__global__ void pow_kernel(int N, float ALPHA, float *X, int INCX, float *Y, int INCY)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) Y[i*INCY] = pow(X[i*INCX], ALPHA);
+}
+
+__global__ void const_kernel(int N, float ALPHA, float *X, int INCX)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) X[i*INCX] = ALPHA;
+}
+
+__global__ void constrain_kernel(int N, float ALPHA, float *X, int INCX)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) X[i*INCX] = fminf(ALPHA, fmaxf(-ALPHA, X[i*INCX]));
+}
+
+__global__ void supp_kernel(int N, float ALPHA, float *X, int INCX)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) {
+ if((X[i*INCX] * X[i*INCX]) < (ALPHA * ALPHA)) X[i*INCX] = 0;
+ }
+}
+
+__global__ void add_kernel(int N, float ALPHA, float *X, int INCX)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) X[i*INCX] += ALPHA;
+}
+
+__global__ void scal_kernel(int N, float ALPHA, float *X, int INCX)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) X[i*INCX] *= ALPHA;
+}
+
+__global__ void fill_kernel(int N, float ALPHA, float *X, int INCX)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) X[i*INCX] = ALPHA;
+}
+
+__global__ void copy_kernel(int N, float *X, int OFFX, int INCX, float *Y, int OFFY, int INCY)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) Y[i*INCY + OFFY] = X[i*INCX + OFFX];
+}
+
+__global__ void mul_kernel(int N, float *X, int INCX, float *Y, int INCY)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < N) Y[i*INCY] *= X[i*INCX];
+}
+
+
+extern "C" void normalize_gpu(float *x, float *mean, float *variance, int batch, int filters, int spatial)
+{
+ size_t N = batch*filters*spatial;
+ normalize_kernel<<>>(N, x, mean, variance, batch, filters, spatial);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void l2norm_kernel(int N, float *x, float *dx, int batch, int filters, int spatial)
+{
+ int index = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (index >= N) return;
+ int b = index / spatial;
+ int i = index % spatial;
+ int f;
+ float sum = 0;
+ for(f = 0; f < filters; ++f){
+ int index = b*filters*spatial + f*spatial + i;
+ sum += powf(x[index], 2);
+ }
+ sum = sqrtf(sum);
+ if(sum == 0) sum = 1;
+ //printf("%f\n", sum);
+ for(f = 0; f < filters; ++f){
+ int index = b*filters*spatial + f*spatial + i;
+ x[index] /= sum;
+ dx[index] = (1 - x[index]) / sum;
+ }
+}
+
+extern "C" void l2normalize_gpu(float *x, float *dx, int batch, int filters, int spatial)
+{
+ size_t N = batch*spatial;
+ l2norm_kernel<<>>(N, x, dx, batch, filters, spatial);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void fast_mean_kernel(float *x, int batch, int filters, int spatial, float *mean)
+{
+ const int threads = BLOCK;
+ __shared__ float local[threads];
+
+ int id = threadIdx.x;
+ local[id] = 0;
+
+ int filter = blockIdx.x;
+
+ int i, j;
+ for(j = 0; j < batch; ++j){
+ for(i = 0; i < spatial; i += threads){
+ int index = j*spatial*filters + filter*spatial + i + id;
+ local[id] += (i+id < spatial) ? x[index] : 0;
+ }
+ }
+
+ __syncthreads();
+
+ if(id == 0){
+ mean[filter] = 0;
+ for(i = 0; i < threads; ++i){
+ mean[filter] += local[i];
+ }
+ mean[filter] /= spatial * batch;
+ }
+}
+
+__global__ void fast_variance_kernel(float *x, float *mean, int batch, int filters, int spatial, float *variance)
+{
+ const int threads = BLOCK;
+ __shared__ float local[threads];
+
+ int id = threadIdx.x;
+ local[id] = 0;
+
+ int filter = blockIdx.x;
+
+ int i, j;
+ for(j = 0; j < batch; ++j){
+ for(i = 0; i < spatial; i += threads){
+ int index = j*spatial*filters + filter*spatial + i + id;
+
+ local[id] += (i+id < spatial) ? powf((x[index] - mean[filter]), 2) : 0;
+ }
+ }
+
+ __syncthreads();
+
+ if(id == 0){
+ variance[filter] = 0;
+ for(i = 0; i < threads; ++i){
+ variance[filter] += local[i];
+ }
+ variance[filter] /= (spatial * batch - 1);
+ }
+}
+
+extern "C" void fast_mean_gpu(float *x, int batch, int filters, int spatial, float *mean)
+{
+ fast_mean_kernel<<>>(x, batch, filters, spatial, mean);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void fast_variance_gpu(float *x, float *mean, int batch, int filters, int spatial, float *variance)
+{
+ fast_variance_kernel<<>>(x, mean, batch, filters, spatial, variance);
+ check_error(cudaPeekAtLastError());
+}
+
+
+extern "C" void mean_gpu(float *x, int batch, int filters, int spatial, float *mean)
+{
+ mean_kernel<<>>(x, batch, filters, spatial, mean);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void variance_gpu(float *x, float *mean, int batch, int filters, int spatial, float *variance)
+{
+ variance_kernel<<>>(x, mean, batch, filters, spatial, variance);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void axpy_gpu(int N, float ALPHA, float * X, int INCX, float * Y, int INCY)
+{
+ axpy_gpu_offset(N, ALPHA, X, 0, INCX, Y, 0, INCY);
+}
+
+extern "C" void pow_gpu(int N, float ALPHA, float * X, int INCX, float * Y, int INCY)
+{
+ pow_kernel<<>>(N, ALPHA, X, INCX, Y, INCY);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void axpy_gpu_offset(int N, float ALPHA, float * X, int OFFX, int INCX, float * Y, int OFFY, int INCY)
+{
+ axpy_kernel<<>>(N, ALPHA, X, OFFX, INCX, Y, OFFY, INCY);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void copy_gpu(int N, float * X, int INCX, float * Y, int INCY)
+{
+ copy_gpu_offset(N, X, 0, INCX, Y, 0, INCY);
+}
+
+extern "C" void mul_gpu(int N, float * X, int INCX, float * Y, int INCY)
+{
+ mul_kernel<<>>(N, X, INCX, Y, INCY);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void copy_gpu_offset(int N, float * X, int OFFX, int INCX, float * Y, int OFFY, int INCY)
+{
+ copy_kernel<<>>(N, X, OFFX, INCX, Y, OFFY, INCY);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void flatten_kernel(int N, float *x, int spatial, int layers, int batch, int forward, float *out)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i >= N) return;
+ int in_s = i%spatial;
+ i = i/spatial;
+ int in_c = i%layers;
+ i = i/layers;
+ int b = i;
+
+ int i1 = b*layers*spatial + in_c*spatial + in_s;
+ int i2 = b*layers*spatial + in_s*layers + in_c;
+
+ if (forward) out[i2] = x[i1];
+ else out[i1] = x[i2];
+}
+
+extern "C" void flatten_gpu(float *x, int spatial, int layers, int batch, int forward, float *out)
+{
+ int size = spatial*batch*layers;
+ flatten_kernel<<>>(size, x, spatial, layers, batch, forward, out);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void reorg_gpu(float *x, int w, int h, int c, int batch, int stride, int forward, float *out)
+{
+ int size = w*h*c*batch;
+ reorg_kernel<<>>(size, x, w, h, c, batch, stride, forward, out);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void mask_kernel(int n, float *x, float mask_num, float *mask, float val)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n && mask[i] == mask_num) x[i] = val;
+}
+
+extern "C" void mask_gpu(int N, float * X, float mask_num, float * mask, float val)
+{
+ mask_kernel<<>>(N, X, mask_num, mask, val);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void scale_mask_kernel(int n, float *x, float mask_num, float *mask, float scale)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n && mask[i] == mask_num) x[i] *= scale;
+}
+
+extern "C" void scale_mask_gpu(int N, float * X, float mask_num, float * mask, float scale)
+{
+ scale_mask_kernel<<>>(N, X, mask_num, mask, scale);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void const_gpu(int N, float ALPHA, float * X, int INCX)
+{
+ const_kernel<<>>(N, ALPHA, X, INCX);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void constrain_gpu(int N, float ALPHA, float * X, int INCX)
+{
+ constrain_kernel<<>>(N, ALPHA, X, INCX);
+ check_error(cudaPeekAtLastError());
+}
+
+
+extern "C" void add_gpu(int N, float ALPHA, float * X, int INCX)
+{
+ add_kernel<<>>(N, ALPHA, X, INCX);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void scal_gpu(int N, float ALPHA, float * X, int INCX)
+{
+ scal_kernel<<>>(N, ALPHA, X, INCX);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void supp_gpu(int N, float ALPHA, float * X, int INCX)
+{
+ supp_kernel<<>>(N, ALPHA, X, INCX);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void fill_gpu(int N, float ALPHA, float * X, int INCX)
+{
+ fill_kernel<<>>(N, ALPHA, X, INCX);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void shortcut_kernel(int size, int minw, int minh, int minc, int stride, int sample, int batch, int w1, int h1, int c1, float *add, int w2, int h2, int c2, float s1, float s2, float *out)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (id >= size) return;
+ int i = id % minw;
+ id /= minw;
+ int j = id % minh;
+ id /= minh;
+ int k = id % minc;
+ id /= minc;
+ int b = id % batch;
+
+ int out_index = i*sample + w2*(j*sample + h2*(k + c2*b));
+ int add_index = i*stride + w1*(j*stride + h1*(k + c1*b));
+ out[out_index] = s1*out[out_index] + s2*add[add_index];
+ //out[out_index] += add[add_index];
+}
+
+extern "C" void shortcut_gpu(int batch, int w1, int h1, int c1, float *add, int w2, int h2, int c2, float s1, float s2, float *out)
+{
+ int minw = (w1 < w2) ? w1 : w2;
+ int minh = (h1 < h2) ? h1 : h2;
+ int minc = (c1 < c2) ? c1 : c2;
+
+ int stride = w1/w2;
+ int sample = w2/w1;
+ assert(stride == h1/h2);
+ assert(sample == h2/h1);
+ if(stride < 1) stride = 1;
+ if(sample < 1) sample = 1;
+
+ int size = batch * minw * minh * minc;
+ shortcut_kernel<<>>(size, minw, minh, minc, stride, sample, batch, w1, h1, c1, add, w2, h2, c2, s1, s2, out);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void smooth_l1_kernel(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ float diff = truth[i] - pred[i];
+ float abs_val = fabsf(diff);
+ if(abs_val < 1) {
+ error[i] = diff * diff;
+ delta[i] = diff;
+ }
+ else {
+ error[i] = 2*abs_val - 1;
+ delta[i] = (diff > 0) ? 1 : -1;
+ }
+ }
+}
+
+extern "C" void smooth_l1_gpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ smooth_l1_kernel<<>>(n, pred, truth, delta, error);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void softmax_x_ent_kernel(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ float t = truth[i];
+ float p = pred[i];
+ error[i] = (t) ? -log(p) : 0;
+ delta[i] = t-p;
+ }
+}
+
+extern "C" void softmax_x_ent_gpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ softmax_x_ent_kernel<<>>(n, pred, truth, delta, error);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void logistic_x_ent_kernel(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ float t = truth[i];
+ float p = pred[i];
+ error[i] = -t*log(p+.0000001) - (1-t)*log(1-p+.0000001);
+ delta[i] = t-p;
+ }
+}
+
+extern "C" void logistic_x_ent_gpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ logistic_x_ent_kernel<<>>(n, pred, truth, delta, error);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void l2_kernel(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ float diff = truth[i] - pred[i];
+ error[i] = diff * diff; //I know this is technically wrong, deal with it.
+ delta[i] = diff;
+ }
+}
+
+extern "C" void l2_gpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ l2_kernel<<>>(n, pred, truth, delta, error);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void l1_kernel(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ float diff = truth[i] - pred[i];
+ error[i] = abs(diff);
+ delta[i] = (diff > 0) ? 1 : -1;
+ }
+}
+
+extern "C" void l1_gpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ l1_kernel<<>>(n, pred, truth, delta, error);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void wgan_kernel(int n, float *pred, float *truth, float *delta, float *error)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ error[i] = truth[i] ? -pred[i] : pred[i];
+ delta[i] = (truth[i] > 0) ? 1 : -1;
+ }
+}
+
+extern "C" void wgan_gpu(int n, float *pred, float *truth, float *delta, float *error)
+{
+ wgan_kernel<<>>(n, pred, truth, delta, error);
+ check_error(cudaPeekAtLastError());
+}
+
+
+
+
+__global__ void weighted_sum_kernel(int n, float *a, float *b, float *s, float *c)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ c[i] = s[i]*a[i] + (1-s[i])*(b ? b[i] : 0);
+ }
+}
+
+__global__ void deinter_kernel(int NX, float *X, int NY, float *Y, int B, float *OUT)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < (NX+NY)*B){
+ int b = i / (NX+NY);
+ int j = i % (NX+NY);
+ if (j < NX){
+ if(X) X[b*NX + j] += OUT[i];
+ } else {
+ if(Y) Y[b*NY + j - NX] += OUT[i];
+ }
+ }
+}
+
+extern "C" void deinter_gpu(int NX, float *X, int NY, float *Y, int B, float *OUT)
+{
+ deinter_kernel<<>>(NX, X, NY, Y, B, OUT);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void inter_kernel(int NX, float *X, int NY, float *Y, int B, float *OUT)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < (NX+NY)*B){
+ int b = i / (NX+NY);
+ int j = i % (NX+NY);
+ if (j < NX){
+ OUT[i] = X[b*NX + j];
+ } else {
+ OUT[i] = Y[b*NY + j - NX];
+ }
+ }
+}
+
+extern "C" void inter_gpu(int NX, float *X, int NY, float *Y, int B, float *OUT)
+{
+ inter_kernel<<>>(NX, X, NY, Y, B, OUT);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void weighted_sum_gpu(float *a, float *b, float *s, int num, float *c)
+{
+ weighted_sum_kernel<<>>(num, a, b, s, c);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void weighted_delta_kernel(int n, float *a, float *b, float *s, float *da, float *db, float *ds, float *dc)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ if(da) da[i] += dc[i] * s[i];
+ if(db) db[i] += dc[i] * (1-s[i]);
+ ds[i] += dc[i] * (a[i] - b[i]);
+ }
+}
+
+extern "C" void weighted_delta_gpu(float *a, float *b, float *s, float *da, float *db, float *ds, int num, float *dc)
+{
+ weighted_delta_kernel<<>>(num, a, b, s, da, db, ds, dc);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void mult_add_into_kernel(int n, float *a, float *b, float *c)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i < n){
+ c[i] += a[i]*b[i];
+ }
+}
+
+extern "C" void mult_add_into_gpu(int num, float *a, float *b, float *c)
+{
+ mult_add_into_kernel<<>>(num, a, b, c);
+ check_error(cudaPeekAtLastError());
+}
+
+
+__device__ void softmax_device(float *input, int n, float temp, int stride, float *output)
+{
+ int i;
+ float sum = 0;
+ float largest = -INFINITY;
+ for(i = 0; i < n; ++i){
+ int val = input[i*stride];
+ largest = (val>largest) ? val : largest;
+ }
+ for(i = 0; i < n; ++i){
+ float e = expf(input[i*stride]/temp - largest/temp);
+ sum += e;
+ output[i*stride] = e;
+ }
+ for(i = 0; i < n; ++i){
+ output[i*stride] /= sum;
+ }
+}
+
+
+__global__ void softmax_tree_kernel(float *input, int spatial, int batch, int stride, float temp, float *output, int groups, int *group_size, int *group_offset)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (id >= spatial*batch*groups) return;
+ int s = id % spatial;
+ id = id / spatial;
+ int g = id % groups;
+ int b = id / groups;
+ int goff = group_offset[g]*spatial;
+ int boff = b*stride;
+ softmax_device(input + goff + boff + s, group_size[g], temp, spatial, output + goff + boff + s);
+}
+
+extern "C" void softmax_tree(float *input, int spatial, int batch, int stride, float temp, float *output, tree hier)
+{
+ int *tree_groups_size = cuda_make_int_array(hier.group_size, hier.groups);
+ int *tree_groups_offset = cuda_make_int_array(hier.group_offset, hier.groups);
+ /*
+ static int *tree_groups_size = 0;
+ static int *tree_groups_offset = 0;
+ if(!tree_groups_size){
+ tree_groups_size = cuda_make_int_array(hier.group_size, hier.groups);
+ tree_groups_offset = cuda_make_int_array(hier.group_offset, hier.groups);
+ }
+ */
+ int num = spatial*batch*hier.groups;
+ softmax_tree_kernel<<>>(input, spatial, batch, stride, temp, output, hier.groups, tree_groups_size, tree_groups_offset);
+ check_error(cudaPeekAtLastError());
+ cuda_free((float *)tree_groups_size);
+ cuda_free((float *)tree_groups_offset);
+}
+
+__global__ void softmax_kernel(float *input, int n, int batch, int batch_offset, int groups, int group_offset, int stride, float temp, float *output)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (id >= batch*groups) return;
+ int b = id / groups;
+ int g = id % groups;
+ softmax_device(input + b*batch_offset + g*group_offset, n, temp, stride, output + b*batch_offset + g*group_offset);
+}
+
+extern "C" void softmax_gpu(float *input, int n, int batch, int batch_offset, int groups, int group_offset, int stride, float temp, float *output)
+{
+ softmax_kernel<<>>(input, n, batch, batch_offset, groups, group_offset, stride, temp, output);
+ check_error(cudaPeekAtLastError());
+}
+
+
+__global__ void upsample_kernel(size_t N, float *x, int w, int h, int c, int batch, int stride, int forward, float scale, float *out)
+{
+ size_t i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(i >= N) return;
+ int out_index = i;
+ int out_w = i%(w*stride);
+ i = i/(w*stride);
+ int out_h = i%(h*stride);
+ i = i/(h*stride);
+ int out_c = i%c;
+ i = i/c;
+ int b = i%batch;
+
+ int in_w = out_w / stride;
+ int in_h = out_h / stride;
+ int in_c = out_c;
+
+ int in_index = b*w*h*c + in_c*w*h + in_h*w + in_w;
+
+
+ if(forward) out[out_index] += scale * x[in_index];
+ else atomicAdd(x+in_index, scale * out[out_index]);
+}
+extern "C" void upsample_gpu(float *in, int w, int h, int c, int batch, int stride, int forward, float scale, float *out)
+{
+ size_t size = w*h*c*batch*stride*stride;
+ upsample_kernel<<>>(size, in, w, h, c, batch, stride, forward, scale, out);
+ check_error(cudaPeekAtLastError());
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/box.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/box.c"
new file mode 100644
index 00000000..8a1772c9
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/box.c"
@@ -0,0 +1,357 @@
+#include "box.h"
+#include
+#include
+#include
+
+int nms_comparator(const void *pa, const void *pb)
+{
+ detection a = *(detection *)pa;
+ detection b = *(detection *)pb;
+ float diff = 0;
+ if(b.sort_class >= 0){
+ diff = a.prob[b.sort_class] - b.prob[b.sort_class];
+ } else {
+ diff = a.objectness - b.objectness;
+ }
+ if(diff < 0) return 1;
+ else if(diff > 0) return -1;
+ return 0;
+}
+
+void do_nms_obj(detection *dets, int total, int classes, float thresh)
+{
+ int i, j, k;
+ k = total-1;
+ for(i = 0; i <= k; ++i){
+ if(dets[i].objectness == 0){
+ detection swap = dets[i];
+ dets[i] = dets[k];
+ dets[k] = swap;
+ --k;
+ --i;
+ }
+ }
+ total = k+1;
+
+ for(i = 0; i < total; ++i){
+ dets[i].sort_class = -1;
+ }
+
+ qsort(dets, total, sizeof(detection), nms_comparator);
+ for(i = 0; i < total; ++i){
+ if(dets[i].objectness == 0) continue;
+ box a = dets[i].bbox;
+ for(j = i+1; j < total; ++j){
+ if(dets[j].objectness == 0) continue;
+ box b = dets[j].bbox;
+ if (box_iou(a, b) > thresh){
+ dets[j].objectness = 0;
+ for(k = 0; k < classes; ++k){
+ dets[j].prob[k] = 0;
+ }
+ }
+ }
+ }
+}
+
+
+void do_nms_sort(detection *dets, int total, int classes, float thresh)
+{
+ int i, j, k;
+ k = total-1;
+ for(i = 0; i <= k; ++i){
+ if(dets[i].objectness == 0){
+ detection swap = dets[i];
+ dets[i] = dets[k];
+ dets[k] = swap;
+ --k;
+ --i;
+ }
+ }
+ total = k+1;
+
+ for(k = 0; k < classes; ++k){
+ for(i = 0; i < total; ++i){
+ dets[i].sort_class = k;
+ }
+ qsort(dets, total, sizeof(detection), nms_comparator);
+ for(i = 0; i < total; ++i){
+ if(dets[i].prob[k] == 0) continue;
+ box a = dets[i].bbox;
+ for(j = i+1; j < total; ++j){
+ box b = dets[j].bbox;
+ if (box_iou(a, b) > thresh){
+ dets[j].prob[k] = 0;
+ }
+ }
+ }
+ }
+}
+
+box float_to_box(float *f, int stride)
+{
+ box b = {0};
+ b.x = f[0];
+ b.y = f[1*stride];
+ b.w = f[2*stride];
+ b.h = f[3*stride];
+ return b;
+}
+
+dbox derivative(box a, box b)
+{
+ dbox d;
+ d.dx = 0;
+ d.dw = 0;
+ float l1 = a.x - a.w/2;
+ float l2 = b.x - b.w/2;
+ if (l1 > l2){
+ d.dx -= 1;
+ d.dw += .5;
+ }
+ float r1 = a.x + a.w/2;
+ float r2 = b.x + b.w/2;
+ if(r1 < r2){
+ d.dx += 1;
+ d.dw += .5;
+ }
+ if (l1 > r2) {
+ d.dx = -1;
+ d.dw = 0;
+ }
+ if (r1 < l2){
+ d.dx = 1;
+ d.dw = 0;
+ }
+
+ d.dy = 0;
+ d.dh = 0;
+ float t1 = a.y - a.h/2;
+ float t2 = b.y - b.h/2;
+ if (t1 > t2){
+ d.dy -= 1;
+ d.dh += .5;
+ }
+ float b1 = a.y + a.h/2;
+ float b2 = b.y + b.h/2;
+ if(b1 < b2){
+ d.dy += 1;
+ d.dh += .5;
+ }
+ if (t1 > b2) {
+ d.dy = -1;
+ d.dh = 0;
+ }
+ if (b1 < t2){
+ d.dy = 1;
+ d.dh = 0;
+ }
+ return d;
+}
+
+float overlap(float x1, float w1, float x2, float w2)
+{
+ float l1 = x1 - w1/2;
+ float l2 = x2 - w2/2;
+ float left = l1 > l2 ? l1 : l2;
+ float r1 = x1 + w1/2;
+ float r2 = x2 + w2/2;
+ float right = r1 < r2 ? r1 : r2;
+ return right - left;
+}
+
+float box_intersection(box a, box b)
+{
+ float w = overlap(a.x, a.w, b.x, b.w);
+ float h = overlap(a.y, a.h, b.y, b.h);
+ if(w < 0 || h < 0) return 0;
+ float area = w*h;
+ return area;
+}
+
+float box_union(box a, box b)
+{
+ float i = box_intersection(a, b);
+ float u = a.w*a.h + b.w*b.h - i;
+ return u;
+}
+
+float box_iou(box a, box b)
+{
+ return box_intersection(a, b)/box_union(a, b);
+}
+
+float box_rmse(box a, box b)
+{
+ return sqrt(pow(a.x-b.x, 2) +
+ pow(a.y-b.y, 2) +
+ pow(a.w-b.w, 2) +
+ pow(a.h-b.h, 2));
+}
+
+dbox dintersect(box a, box b)
+{
+ float w = overlap(a.x, a.w, b.x, b.w);
+ float h = overlap(a.y, a.h, b.y, b.h);
+ dbox dover = derivative(a, b);
+ dbox di;
+
+ di.dw = dover.dw*h;
+ di.dx = dover.dx*h;
+ di.dh = dover.dh*w;
+ di.dy = dover.dy*w;
+
+ return di;
+}
+
+dbox dunion(box a, box b)
+{
+ dbox du;
+
+ dbox di = dintersect(a, b);
+ du.dw = a.h - di.dw;
+ du.dh = a.w - di.dh;
+ du.dx = -di.dx;
+ du.dy = -di.dy;
+
+ return du;
+}
+
+
+void test_dunion()
+{
+ box a = {0, 0, 1, 1};
+ box dxa= {0+.0001, 0, 1, 1};
+ box dya= {0, 0+.0001, 1, 1};
+ box dwa= {0, 0, 1+.0001, 1};
+ box dha= {0, 0, 1, 1+.0001};
+
+ box b = {.5, .5, .2, .2};
+ dbox di = dunion(a,b);
+ printf("Union: %f %f %f %f\n", di.dx, di.dy, di.dw, di.dh);
+ float inter = box_union(a, b);
+ float xinter = box_union(dxa, b);
+ float yinter = box_union(dya, b);
+ float winter = box_union(dwa, b);
+ float hinter = box_union(dha, b);
+ xinter = (xinter - inter)/(.0001);
+ yinter = (yinter - inter)/(.0001);
+ winter = (winter - inter)/(.0001);
+ hinter = (hinter - inter)/(.0001);
+ printf("Union Manual %f %f %f %f\n", xinter, yinter, winter, hinter);
+}
+void test_dintersect()
+{
+ box a = {0, 0, 1, 1};
+ box dxa= {0+.0001, 0, 1, 1};
+ box dya= {0, 0+.0001, 1, 1};
+ box dwa= {0, 0, 1+.0001, 1};
+ box dha= {0, 0, 1, 1+.0001};
+
+ box b = {.5, .5, .2, .2};
+ dbox di = dintersect(a,b);
+ printf("Inter: %f %f %f %f\n", di.dx, di.dy, di.dw, di.dh);
+ float inter = box_intersection(a, b);
+ float xinter = box_intersection(dxa, b);
+ float yinter = box_intersection(dya, b);
+ float winter = box_intersection(dwa, b);
+ float hinter = box_intersection(dha, b);
+ xinter = (xinter - inter)/(.0001);
+ yinter = (yinter - inter)/(.0001);
+ winter = (winter - inter)/(.0001);
+ hinter = (hinter - inter)/(.0001);
+ printf("Inter Manual %f %f %f %f\n", xinter, yinter, winter, hinter);
+}
+
+void test_box()
+{
+ test_dintersect();
+ test_dunion();
+ box a = {0, 0, 1, 1};
+ box dxa= {0+.00001, 0, 1, 1};
+ box dya= {0, 0+.00001, 1, 1};
+ box dwa= {0, 0, 1+.00001, 1};
+ box dha= {0, 0, 1, 1+.00001};
+
+ box b = {.5, 0, .2, .2};
+
+ float iou = box_iou(a,b);
+ iou = (1-iou)*(1-iou);
+ printf("%f\n", iou);
+ dbox d = diou(a, b);
+ printf("%f %f %f %f\n", d.dx, d.dy, d.dw, d.dh);
+
+ float xiou = box_iou(dxa, b);
+ float yiou = box_iou(dya, b);
+ float wiou = box_iou(dwa, b);
+ float hiou = box_iou(dha, b);
+ xiou = ((1-xiou)*(1-xiou) - iou)/(.00001);
+ yiou = ((1-yiou)*(1-yiou) - iou)/(.00001);
+ wiou = ((1-wiou)*(1-wiou) - iou)/(.00001);
+ hiou = ((1-hiou)*(1-hiou) - iou)/(.00001);
+ printf("manual %f %f %f %f\n", xiou, yiou, wiou, hiou);
+}
+
+dbox diou(box a, box b)
+{
+ float u = box_union(a,b);
+ float i = box_intersection(a,b);
+ dbox di = dintersect(a,b);
+ dbox du = dunion(a,b);
+ dbox dd = {0,0,0,0};
+
+ if(i <= 0 || 1) {
+ dd.dx = b.x - a.x;
+ dd.dy = b.y - a.y;
+ dd.dw = b.w - a.w;
+ dd.dh = b.h - a.h;
+ return dd;
+ }
+
+ dd.dx = 2*pow((1-(i/u)),1)*(di.dx*u - du.dx*i)/(u*u);
+ dd.dy = 2*pow((1-(i/u)),1)*(di.dy*u - du.dy*i)/(u*u);
+ dd.dw = 2*pow((1-(i/u)),1)*(di.dw*u - du.dw*i)/(u*u);
+ dd.dh = 2*pow((1-(i/u)),1)*(di.dh*u - du.dh*i)/(u*u);
+ return dd;
+}
+
+
+void do_nms(box *boxes, float **probs, int total, int classes, float thresh)
+{
+ int i, j, k;
+ for(i = 0; i < total; ++i){
+ int any = 0;
+ for(k = 0; k < classes; ++k) any = any || (probs[i][k] > 0);
+ if(!any) {
+ continue;
+ }
+ for(j = i+1; j < total; ++j){
+ if (box_iou(boxes[i], boxes[j]) > thresh){
+ for(k = 0; k < classes; ++k){
+ if (probs[i][k] < probs[j][k]) probs[i][k] = 0;
+ else probs[j][k] = 0;
+ }
+ }
+ }
+ }
+}
+
+box encode_box(box b, box anchor)
+{
+ box encode;
+ encode.x = (b.x - anchor.x) / anchor.w;
+ encode.y = (b.y - anchor.y) / anchor.h;
+ encode.w = log2(b.w / anchor.w);
+ encode.h = log2(b.h / anchor.h);
+ return encode;
+}
+
+box decode_box(box b, box anchor)
+{
+ box decode;
+ decode.x = b.x * anchor.w + anchor.x;
+ decode.y = b.y * anchor.h + anchor.y;
+ decode.w = pow(2., b.w) * anchor.w;
+ decode.h = pow(2., b.h) * anchor.h;
+ return decode;
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/box.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/box.h"
new file mode 100644
index 00000000..dda3e591
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/box.h"
@@ -0,0 +1,14 @@
+#ifndef BOX_H
+#define BOX_H
+#include "darknet.h"
+
+typedef struct{
+ float dx, dy, dw, dh;
+} dbox;
+
+float box_rmse(box a, box b);
+dbox diou(box a, box b);
+box decode_box(box b, box anchor);
+box encode_box(box b, box anchor);
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/classifier.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/classifier.h"
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/classifier.h"
@@ -0,0 +1 @@
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im.c"
new file mode 100644
index 00000000..5c4605e1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im.c"
@@ -0,0 +1,39 @@
+#include
+#include
+void col2im_add_pixel(float *im, int height, int width, int channels,
+ int row, int col, int channel, int pad, float val)
+{
+ row -= pad;
+ col -= pad;
+
+ if (row < 0 || col < 0 ||
+ row >= height || col >= width) return;
+ im[col + width*(row + height*channel)] += val;
+}
+//This one might be too, can't remember.
+void col2im_cpu(float* data_col,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float* data_im)
+{
+ int c,h,w;
+ int height_col = (height + 2*pad - ksize) / stride + 1;
+ int width_col = (width + 2*pad - ksize) / stride + 1;
+
+ int channels_col = channels * ksize * ksize;
+ for (c = 0; c < channels_col; ++c) {
+ int w_offset = c % ksize;
+ int h_offset = (c / ksize) % ksize;
+ int c_im = c / ksize / ksize;
+ for (h = 0; h < height_col; ++h) {
+ for (w = 0; w < width_col; ++w) {
+ int im_row = h_offset + h * stride;
+ int im_col = w_offset + w * stride;
+ int col_index = (c * height_col + h) * width_col + w;
+ double val = data_col[col_index];
+ col2im_add_pixel(data_im, height, width, channels,
+ im_row, im_col, c_im, pad, val);
+ }
+ }
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im.h"
new file mode 100644
index 00000000..3fbe0530
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im.h"
@@ -0,0 +1,13 @@
+#ifndef COL2IM_H
+#define COL2IM_H
+
+void col2im_cpu(float* data_col,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float* data_im);
+
+#ifdef GPU
+void col2im_gpu(float *data_col,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float *data_im);
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im_kernels.cu"
new file mode 100644
index 00000000..ba45e0fd
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/col2im_kernels.cu"
@@ -0,0 +1,58 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "col2im.h"
+#include "cuda.h"
+}
+
+// src: https://github.com/BVLC/caffe/blob/master/src/caffe/util/im2col.cu
+// You may also want to read: https://github.com/BVLC/caffe/blob/master/LICENSE
+
+__global__ void col2im_gpu_kernel(const int n, const float* data_col,
+ const int height, const int width, const int ksize,
+ const int pad,
+ const int stride,
+ const int height_col, const int width_col,
+ float *data_im) {
+ int index = blockIdx.x*blockDim.x+threadIdx.x;
+ for(; index < n; index += blockDim.x*gridDim.x){
+ float val = 0;
+ int w = index % width + pad;
+ int h = (index / width) % height + pad;
+ int c = index / (width * height);
+ // compute the start and end of the output
+ int w_col_start = (w < ksize) ? 0 : (w - ksize) / stride + 1;
+ int w_col_end = min(w / stride + 1, width_col);
+ int h_col_start = (h < ksize) ? 0 : (h - ksize) / stride + 1;
+ int h_col_end = min(h / stride + 1, height_col);
+ // equivalent implementation
+ int offset =
+ (c * ksize * ksize + h * ksize + w) * height_col * width_col;
+ int coeff_h_col = (1 - stride * ksize * height_col) * width_col;
+ int coeff_w_col = (1 - stride * height_col * width_col);
+ for (int h_col = h_col_start; h_col < h_col_end; ++h_col) {
+ for (int w_col = w_col_start; w_col < w_col_end; ++w_col) {
+ val += data_col[offset + h_col * coeff_h_col + w_col * coeff_w_col];
+ }
+ }
+ data_im[index] += val;
+ }
+}
+
+void col2im_gpu(float *data_col,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float *data_im){
+ // We are going to launch channels * height_col * width_col kernels, each
+ // kernel responsible for copying a single-channel grid.
+ int height_col = (height + 2 * pad - ksize) / stride + 1;
+ int width_col = (width + 2 * pad - ksize) / stride + 1;
+ int num_kernels = channels * height * width;
+ col2im_gpu_kernel<<<(num_kernels+BLOCK-1)/BLOCK,
+ BLOCK>>>(
+ num_kernels, data_col, height, width, ksize, pad,
+ stride, height_col,
+ width_col, data_im);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/compare.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/compare.c"
new file mode 100644
index 00000000..d2d2b3bd
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/compare.c"
@@ -0,0 +1,352 @@
+#include
+
+#include "network.h"
+#include "detection_layer.h"
+#include "cost_layer.h"
+#include "utils.h"
+#include "parser.h"
+#include "box.h"
+
+void train_compare(char *cfgfile, char *weightfile)
+{
+ srand(time(0));
+ float avg_loss = -1;
+ char *base = basecfg(cfgfile);
+ char *backup_directory = "/home/pjreddie/backup/";
+ printf("%s\n", base);
+ network net = parse_network_cfg(cfgfile);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ printf("Learning Rate: %g, Momentum: %g, Decay: %g\n", net.learning_rate, net.momentum, net.decay);
+ int imgs = 1024;
+ list *plist = get_paths("data/compare.train.list");
+ char **paths = (char **)list_to_array(plist);
+ int N = plist->size;
+ printf("%d\n", N);
+ clock_t time;
+ pthread_t load_thread;
+ data train;
+ data buffer;
+
+ load_args args = {0};
+ args.w = net.w;
+ args.h = net.h;
+ args.paths = paths;
+ args.classes = 20;
+ args.n = imgs;
+ args.m = N;
+ args.d = &buffer;
+ args.type = COMPARE_DATA;
+
+ load_thread = load_data_in_thread(args);
+ int epoch = *net.seen/N;
+ int i = 0;
+ while(1){
+ ++i;
+ time=clock();
+ pthread_join(load_thread, 0);
+ train = buffer;
+
+ load_thread = load_data_in_thread(args);
+ printf("Loaded: %lf seconds\n", sec(clock()-time));
+ time=clock();
+ float loss = train_network(net, train);
+ if(avg_loss == -1) avg_loss = loss;
+ avg_loss = avg_loss*.9 + loss*.1;
+ printf("%.3f: %f, %f avg, %lf seconds, %ld images\n", (float)*net.seen/N, loss, avg_loss, sec(clock()-time), *net.seen);
+ free_data(train);
+ if(i%100 == 0){
+ char buff[256];
+ sprintf(buff, "%s/%s_%d_minor_%d.weights",backup_directory,base, epoch, i);
+ save_weights(net, buff);
+ }
+ if(*net.seen/N > epoch){
+ epoch = *net.seen/N;
+ i = 0;
+ char buff[256];
+ sprintf(buff, "%s/%s_%d.weights",backup_directory,base, epoch);
+ save_weights(net, buff);
+ if(epoch%22 == 0) net.learning_rate *= .1;
+ }
+ }
+ pthread_join(load_thread, 0);
+ free_data(buffer);
+ free_network(net);
+ free_ptrs((void**)paths, plist->size);
+ free_list(plist);
+ free(base);
+}
+
+void validate_compare(char *filename, char *weightfile)
+{
+ int i = 0;
+ network net = parse_network_cfg(filename);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ srand(time(0));
+
+ list *plist = get_paths("data/compare.val.list");
+ //list *plist = get_paths("data/compare.val.old");
+ char **paths = (char **)list_to_array(plist);
+ int N = plist->size/2;
+ free_list(plist);
+
+ clock_t time;
+ int correct = 0;
+ int total = 0;
+ int splits = 10;
+ int num = (i+1)*N/splits - i*N/splits;
+
+ data val, buffer;
+
+ load_args args = {0};
+ args.w = net.w;
+ args.h = net.h;
+ args.paths = paths;
+ args.classes = 20;
+ args.n = num;
+ args.m = 0;
+ args.d = &buffer;
+ args.type = COMPARE_DATA;
+
+ pthread_t load_thread = load_data_in_thread(args);
+ for(i = 1; i <= splits; ++i){
+ time=clock();
+
+ pthread_join(load_thread, 0);
+ val = buffer;
+
+ num = (i+1)*N/splits - i*N/splits;
+ char **part = paths+(i*N/splits);
+ if(i != splits){
+ args.paths = part;
+ load_thread = load_data_in_thread(args);
+ }
+ printf("Loaded: %d images in %lf seconds\n", val.X.rows, sec(clock()-time));
+
+ time=clock();
+ matrix pred = network_predict_data(net, val);
+ int j,k;
+ for(j = 0; j < val.y.rows; ++j){
+ for(k = 0; k < 20; ++k){
+ if(val.y.vals[j][k*2] != val.y.vals[j][k*2+1]){
+ ++total;
+ if((val.y.vals[j][k*2] < val.y.vals[j][k*2+1]) == (pred.vals[j][k*2] < pred.vals[j][k*2+1])){
+ ++correct;
+ }
+ }
+ }
+ }
+ free_matrix(pred);
+ printf("%d: Acc: %f, %lf seconds, %d images\n", i, (float)correct/total, sec(clock()-time), val.X.rows);
+ free_data(val);
+ }
+}
+
+typedef struct {
+ network net;
+ char *filename;
+ int class;
+ int classes;
+ float elo;
+ float *elos;
+} sortable_bbox;
+
+int total_compares = 0;
+int current_class = 0;
+
+int elo_comparator(const void*a, const void *b)
+{
+ sortable_bbox box1 = *(sortable_bbox*)a;
+ sortable_bbox box2 = *(sortable_bbox*)b;
+ if(box1.elos[current_class] == box2.elos[current_class]) return 0;
+ if(box1.elos[current_class] > box2.elos[current_class]) return -1;
+ return 1;
+}
+
+int bbox_comparator(const void *a, const void *b)
+{
+ ++total_compares;
+ sortable_bbox box1 = *(sortable_bbox*)a;
+ sortable_bbox box2 = *(sortable_bbox*)b;
+ network net = box1.net;
+ int class = box1.class;
+
+ image im1 = load_image_color(box1.filename, net.w, net.h);
+ image im2 = load_image_color(box2.filename, net.w, net.h);
+ float *X = calloc(net.w*net.h*net.c, sizeof(float));
+ memcpy(X, im1.data, im1.w*im1.h*im1.c*sizeof(float));
+ memcpy(X+im1.w*im1.h*im1.c, im2.data, im2.w*im2.h*im2.c*sizeof(float));
+ float *predictions = network_predict(net, X);
+
+ free_image(im1);
+ free_image(im2);
+ free(X);
+ if (predictions[class*2] > predictions[class*2+1]){
+ return 1;
+ }
+ return -1;
+}
+
+void bbox_update(sortable_bbox *a, sortable_bbox *b, int class, int result)
+{
+ int k = 32;
+ float EA = 1./(1+pow(10, (b->elos[class] - a->elos[class])/400.));
+ float EB = 1./(1+pow(10, (a->elos[class] - b->elos[class])/400.));
+ float SA = result ? 1 : 0;
+ float SB = result ? 0 : 1;
+ a->elos[class] += k*(SA - EA);
+ b->elos[class] += k*(SB - EB);
+}
+
+void bbox_fight(network net, sortable_bbox *a, sortable_bbox *b, int classes, int class)
+{
+ image im1 = load_image_color(a->filename, net.w, net.h);
+ image im2 = load_image_color(b->filename, net.w, net.h);
+ float *X = calloc(net.w*net.h*net.c, sizeof(float));
+ memcpy(X, im1.data, im1.w*im1.h*im1.c*sizeof(float));
+ memcpy(X+im1.w*im1.h*im1.c, im2.data, im2.w*im2.h*im2.c*sizeof(float));
+ float *predictions = network_predict(net, X);
+ ++total_compares;
+
+ int i;
+ for(i = 0; i < classes; ++i){
+ if(class < 0 || class == i){
+ int result = predictions[i*2] > predictions[i*2+1];
+ bbox_update(a, b, i, result);
+ }
+ }
+
+ free_image(im1);
+ free_image(im2);
+ free(X);
+}
+
+void SortMaster3000(char *filename, char *weightfile)
+{
+ int i = 0;
+ network net = parse_network_cfg(filename);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ srand(time(0));
+ set_batch_network(&net, 1);
+
+ list *plist = get_paths("data/compare.sort.list");
+ //list *plist = get_paths("data/compare.val.old");
+ char **paths = (char **)list_to_array(plist);
+ int N = plist->size;
+ free_list(plist);
+ sortable_bbox *boxes = calloc(N, sizeof(sortable_bbox));
+ printf("Sorting %d boxes...\n", N);
+ for(i = 0; i < N; ++i){
+ boxes[i].filename = paths[i];
+ boxes[i].net = net;
+ boxes[i].class = 7;
+ boxes[i].elo = 1500;
+ }
+ clock_t time=clock();
+ qsort(boxes, N, sizeof(sortable_bbox), bbox_comparator);
+ for(i = 0; i < N; ++i){
+ printf("%s\n", boxes[i].filename);
+ }
+ printf("Sorted in %d compares, %f secs\n", total_compares, sec(clock()-time));
+}
+
+void BattleRoyaleWithCheese(char *filename, char *weightfile)
+{
+ int classes = 20;
+ int i,j;
+ network net = parse_network_cfg(filename);
+ if(weightfile){
+ load_weights(&net, weightfile);
+ }
+ srand(time(0));
+ set_batch_network(&net, 1);
+
+ list *plist = get_paths("data/compare.sort.list");
+ //list *plist = get_paths("data/compare.small.list");
+ //list *plist = get_paths("data/compare.cat.list");
+ //list *plist = get_paths("data/compare.val.old");
+ char **paths = (char **)list_to_array(plist);
+ int N = plist->size;
+ int total = N;
+ free_list(plist);
+ sortable_bbox *boxes = calloc(N, sizeof(sortable_bbox));
+ printf("Battling %d boxes...\n", N);
+ for(i = 0; i < N; ++i){
+ boxes[i].filename = paths[i];
+ boxes[i].net = net;
+ boxes[i].classes = classes;
+ boxes[i].elos = calloc(classes, sizeof(float));;
+ for(j = 0; j < classes; ++j){
+ boxes[i].elos[j] = 1500;
+ }
+ }
+ int round;
+ clock_t time=clock();
+ for(round = 1; round <= 4; ++round){
+ clock_t round_time=clock();
+ printf("Round: %d\n", round);
+ shuffle(boxes, N, sizeof(sortable_bbox));
+ for(i = 0; i < N/2; ++i){
+ bbox_fight(net, boxes+i*2, boxes+i*2+1, classes, -1);
+ }
+ printf("Round: %f secs, %d remaining\n", sec(clock()-round_time), N);
+ }
+
+ int class;
+
+ for (class = 0; class < classes; ++class){
+
+ N = total;
+ current_class = class;
+ qsort(boxes, N, sizeof(sortable_bbox), elo_comparator);
+ N /= 2;
+
+ for(round = 1; round <= 100; ++round){
+ clock_t round_time=clock();
+ printf("Round: %d\n", round);
+
+ sorta_shuffle(boxes, N, sizeof(sortable_bbox), 10);
+ for(i = 0; i < N/2; ++i){
+ bbox_fight(net, boxes+i*2, boxes+i*2+1, classes, class);
+ }
+ qsort(boxes, N, sizeof(sortable_bbox), elo_comparator);
+ if(round <= 20) N = (N*9/10)/2*2;
+
+ printf("Round: %f secs, %d remaining\n", sec(clock()-round_time), N);
+ }
+ char buff[256];
+ sprintf(buff, "results/battle_%d.log", class);
+ FILE *outfp = fopen(buff, "w");
+ for(i = 0; i < N; ++i){
+ fprintf(outfp, "%s %f\n", boxes[i].filename, boxes[i].elos[class]);
+ }
+ fclose(outfp);
+ }
+ printf("Tournament in %d compares, %f secs\n", total_compares, sec(clock()-time));
+}
+
+void run_compare(int argc, char **argv)
+{
+ if(argc < 4){
+ fprintf(stderr, "usage: %s %s [train/test/valid] [cfg] [weights (optional)]\n", argv[0], argv[1]);
+ return;
+ }
+
+ char *cfg = argv[3];
+ char *weights = (argc > 4) ? argv[4] : 0;
+ //char *filename = (argc > 5) ? argv[5]: 0;
+ if(0==strcmp(argv[2], "train")) train_compare(cfg, weights);
+ else if(0==strcmp(argv[2], "valid")) validate_compare(cfg, weights);
+ else if(0==strcmp(argv[2], "sort")) SortMaster3000(cfg, weights);
+ else if(0==strcmp(argv[2], "battle")) BattleRoyaleWithCheese(cfg, weights);
+ /*
+ else if(0==strcmp(argv[2], "train")) train_coco(cfg, weights);
+ else if(0==strcmp(argv[2], "extract")) extract_boxes(cfg, weights);
+ else if(0==strcmp(argv[2], "valid")) validate_recall(cfg, weights);
+ */
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/connected_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/connected_layer.c"
new file mode 100644
index 00000000..353f4e56
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/connected_layer.c"
@@ -0,0 +1,336 @@
+#include "connected_layer.h"
+#include "convolutional_layer.h"
+#include "batchnorm_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "blas.h"
+#include "gemm.h"
+
+#include
+#include
+#include
+#include
+
+layer make_connected_layer(int batch, int inputs, int outputs, ACTIVATION activation, int batch_normalize, int adam)
+{
+ int i;
+ layer l = {0};
+ l.learning_rate_scale = 1;
+ l.type = CONNECTED;
+
+ l.inputs = inputs;
+ l.outputs = outputs;
+ l.batch=batch;
+ l.batch_normalize = batch_normalize;
+ l.h = 1;
+ l.w = 1;
+ l.c = inputs;
+ l.out_h = 1;
+ l.out_w = 1;
+ l.out_c = outputs;
+
+ l.output = calloc(batch*outputs, sizeof(float));
+ l.delta = calloc(batch*outputs, sizeof(float));
+
+ l.weight_updates = calloc(inputs*outputs, sizeof(float));
+ l.bias_updates = calloc(outputs, sizeof(float));
+
+ l.weights = calloc(outputs*inputs, sizeof(float));
+ l.biases = calloc(outputs, sizeof(float));
+
+ l.forward = forward_connected_layer;
+ l.backward = backward_connected_layer;
+ l.update = update_connected_layer;
+
+ //float scale = 1./sqrt(inputs);
+ float scale = sqrt(2./inputs);
+ for(i = 0; i < outputs*inputs; ++i){
+ l.weights[i] = scale*rand_uniform(-1, 1);
+ }
+
+ for(i = 0; i < outputs; ++i){
+ l.biases[i] = 0;
+ }
+
+ if(adam){
+ l.m = calloc(l.inputs*l.outputs, sizeof(float));
+ l.v = calloc(l.inputs*l.outputs, sizeof(float));
+ l.bias_m = calloc(l.outputs, sizeof(float));
+ l.scale_m = calloc(l.outputs, sizeof(float));
+ l.bias_v = calloc(l.outputs, sizeof(float));
+ l.scale_v = calloc(l.outputs, sizeof(float));
+ }
+ if(batch_normalize){
+ l.scales = calloc(outputs, sizeof(float));
+ l.scale_updates = calloc(outputs, sizeof(float));
+ for(i = 0; i < outputs; ++i){
+ l.scales[i] = 1;
+ }
+
+ l.mean = calloc(outputs, sizeof(float));
+ l.mean_delta = calloc(outputs, sizeof(float));
+ l.variance = calloc(outputs, sizeof(float));
+ l.variance_delta = calloc(outputs, sizeof(float));
+
+ l.rolling_mean = calloc(outputs, sizeof(float));
+ l.rolling_variance = calloc(outputs, sizeof(float));
+
+ l.x = calloc(batch*outputs, sizeof(float));
+ l.x_norm = calloc(batch*outputs, sizeof(float));
+ }
+
+#ifdef GPU
+ l.forward_gpu = forward_connected_layer_gpu;
+ l.backward_gpu = backward_connected_layer_gpu;
+ l.update_gpu = update_connected_layer_gpu;
+
+ l.weights_gpu = cuda_make_array(l.weights, outputs*inputs);
+ l.biases_gpu = cuda_make_array(l.biases, outputs);
+
+ l.weight_updates_gpu = cuda_make_array(l.weight_updates, outputs*inputs);
+ l.bias_updates_gpu = cuda_make_array(l.bias_updates, outputs);
+
+ l.output_gpu = cuda_make_array(l.output, outputs*batch);
+ l.delta_gpu = cuda_make_array(l.delta, outputs*batch);
+ if (adam) {
+ l.m_gpu = cuda_make_array(0, inputs*outputs);
+ l.v_gpu = cuda_make_array(0, inputs*outputs);
+ l.bias_m_gpu = cuda_make_array(0, outputs);
+ l.bias_v_gpu = cuda_make_array(0, outputs);
+ l.scale_m_gpu = cuda_make_array(0, outputs);
+ l.scale_v_gpu = cuda_make_array(0, outputs);
+ }
+
+ if(batch_normalize){
+ l.mean_gpu = cuda_make_array(l.mean, outputs);
+ l.variance_gpu = cuda_make_array(l.variance, outputs);
+
+ l.rolling_mean_gpu = cuda_make_array(l.mean, outputs);
+ l.rolling_variance_gpu = cuda_make_array(l.variance, outputs);
+
+ l.mean_delta_gpu = cuda_make_array(l.mean, outputs);
+ l.variance_delta_gpu = cuda_make_array(l.variance, outputs);
+
+ l.scales_gpu = cuda_make_array(l.scales, outputs);
+ l.scale_updates_gpu = cuda_make_array(l.scale_updates, outputs);
+
+ l.x_gpu = cuda_make_array(l.output, l.batch*outputs);
+ l.x_norm_gpu = cuda_make_array(l.output, l.batch*outputs);
+#ifdef CUDNN
+ cudnnCreateTensorDescriptor(&l.normTensorDesc);
+ cudnnCreateTensorDescriptor(&l.dstTensorDesc);
+ cudnnSetTensor4dDescriptor(l.dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l.batch, l.out_c, l.out_h, l.out_w);
+ cudnnSetTensor4dDescriptor(l.normTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l.out_c, 1, 1);
+#endif
+ }
+#endif
+ l.activation = activation;
+ fprintf(stderr, "connected %4d -> %4d\n", inputs, outputs);
+ return l;
+}
+
+void update_connected_layer(layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+ axpy_cpu(l.outputs, learning_rate/batch, l.bias_updates, 1, l.biases, 1);
+ scal_cpu(l.outputs, momentum, l.bias_updates, 1);
+
+ if(l.batch_normalize){
+ axpy_cpu(l.outputs, learning_rate/batch, l.scale_updates, 1, l.scales, 1);
+ scal_cpu(l.outputs, momentum, l.scale_updates, 1);
+ }
+
+ axpy_cpu(l.inputs*l.outputs, -decay*batch, l.weights, 1, l.weight_updates, 1);
+ axpy_cpu(l.inputs*l.outputs, learning_rate/batch, l.weight_updates, 1, l.weights, 1);
+ scal_cpu(l.inputs*l.outputs, momentum, l.weight_updates, 1);
+}
+
+void forward_connected_layer(layer l, network net)
+{
+ fill_cpu(l.outputs*l.batch, 0, l.output, 1);
+ int m = l.batch;
+ int k = l.inputs;
+ int n = l.outputs;
+ float *a = net.input;
+ float *b = l.weights;
+ float *c = l.output;
+ gemm(0,1,m,n,k,1,a,k,b,k,1,c,n);
+ if(l.batch_normalize){
+ forward_batchnorm_layer(l, net);
+ } else {
+ add_bias(l.output, l.biases, l.batch, l.outputs, 1);
+ }
+ activate_array(l.output, l.outputs*l.batch, l.activation);
+}
+
+void backward_connected_layer(layer l, network net)
+{
+ gradient_array(l.output, l.outputs*l.batch, l.activation, l.delta);
+
+ if(l.batch_normalize){
+ backward_batchnorm_layer(l, net);
+ } else {
+ backward_bias(l.bias_updates, l.delta, l.batch, l.outputs, 1);
+ }
+
+ int m = l.outputs;
+ int k = l.batch;
+ int n = l.inputs;
+ float *a = l.delta;
+ float *b = net.input;
+ float *c = l.weight_updates;
+ gemm(1,0,m,n,k,1,a,m,b,n,1,c,n);
+
+ m = l.batch;
+ k = l.outputs;
+ n = l.inputs;
+
+ a = l.delta;
+ b = l.weights;
+ c = net.delta;
+
+ if(c) gemm(0,0,m,n,k,1,a,k,b,n,1,c,n);
+}
+
+
+void denormalize_connected_layer(layer l)
+{
+ int i, j;
+ for(i = 0; i < l.outputs; ++i){
+ float scale = l.scales[i]/sqrt(l.rolling_variance[i] + .000001);
+ for(j = 0; j < l.inputs; ++j){
+ l.weights[i*l.inputs + j] *= scale;
+ }
+ l.biases[i] -= l.rolling_mean[i] * scale;
+ l.scales[i] = 1;
+ l.rolling_mean[i] = 0;
+ l.rolling_variance[i] = 1;
+ }
+}
+
+
+void statistics_connected_layer(layer l)
+{
+ if(l.batch_normalize){
+ printf("Scales ");
+ print_statistics(l.scales, l.outputs);
+ /*
+ printf("Rolling Mean ");
+ print_statistics(l.rolling_mean, l.outputs);
+ printf("Rolling Variance ");
+ print_statistics(l.rolling_variance, l.outputs);
+ */
+ }
+ printf("Biases ");
+ print_statistics(l.biases, l.outputs);
+ printf("Weights ");
+ print_statistics(l.weights, l.outputs);
+}
+
+#ifdef GPU
+
+void pull_connected_layer(layer l)
+{
+ cuda_pull_array(l.weights_gpu, l.weights, l.inputs*l.outputs);
+ cuda_pull_array(l.biases_gpu, l.biases, l.outputs);
+ cuda_pull_array(l.weight_updates_gpu, l.weight_updates, l.inputs*l.outputs);
+ cuda_pull_array(l.bias_updates_gpu, l.bias_updates, l.outputs);
+ if (l.batch_normalize){
+ cuda_pull_array(l.scales_gpu, l.scales, l.outputs);
+ cuda_pull_array(l.rolling_mean_gpu, l.rolling_mean, l.outputs);
+ cuda_pull_array(l.rolling_variance_gpu, l.rolling_variance, l.outputs);
+ }
+}
+
+void push_connected_layer(layer l)
+{
+ cuda_push_array(l.weights_gpu, l.weights, l.inputs*l.outputs);
+ cuda_push_array(l.biases_gpu, l.biases, l.outputs);
+ cuda_push_array(l.weight_updates_gpu, l.weight_updates, l.inputs*l.outputs);
+ cuda_push_array(l.bias_updates_gpu, l.bias_updates, l.outputs);
+ if (l.batch_normalize){
+ cuda_push_array(l.scales_gpu, l.scales, l.outputs);
+ cuda_push_array(l.rolling_mean_gpu, l.rolling_mean, l.outputs);
+ cuda_push_array(l.rolling_variance_gpu, l.rolling_variance, l.outputs);
+ }
+}
+
+void update_connected_layer_gpu(layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+ if(a.adam){
+ adam_update_gpu(l.weights_gpu, l.weight_updates_gpu, l.m_gpu, l.v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.inputs*l.outputs, batch, a.t);
+ adam_update_gpu(l.biases_gpu, l.bias_updates_gpu, l.bias_m_gpu, l.bias_v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.outputs, batch, a.t);
+ if(l.scales_gpu){
+ adam_update_gpu(l.scales_gpu, l.scale_updates_gpu, l.scale_m_gpu, l.scale_v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.outputs, batch, a.t);
+ }
+ }else{
+ axpy_gpu(l.outputs, learning_rate/batch, l.bias_updates_gpu, 1, l.biases_gpu, 1);
+ scal_gpu(l.outputs, momentum, l.bias_updates_gpu, 1);
+
+ if(l.batch_normalize){
+ axpy_gpu(l.outputs, learning_rate/batch, l.scale_updates_gpu, 1, l.scales_gpu, 1);
+ scal_gpu(l.outputs, momentum, l.scale_updates_gpu, 1);
+ }
+
+ axpy_gpu(l.inputs*l.outputs, -decay*batch, l.weights_gpu, 1, l.weight_updates_gpu, 1);
+ axpy_gpu(l.inputs*l.outputs, learning_rate/batch, l.weight_updates_gpu, 1, l.weights_gpu, 1);
+ scal_gpu(l.inputs*l.outputs, momentum, l.weight_updates_gpu, 1);
+ }
+}
+
+void forward_connected_layer_gpu(layer l, network net)
+{
+ fill_gpu(l.outputs*l.batch, 0, l.output_gpu, 1);
+
+ int m = l.batch;
+ int k = l.inputs;
+ int n = l.outputs;
+ float * a = net.input_gpu;
+ float * b = l.weights_gpu;
+ float * c = l.output_gpu;
+ gemm_gpu(0,1,m,n,k,1,a,k,b,k,1,c,n);
+
+ if (l.batch_normalize) {
+ forward_batchnorm_layer_gpu(l, net);
+ } else {
+ add_bias_gpu(l.output_gpu, l.biases_gpu, l.batch, l.outputs, 1);
+ }
+ activate_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation);
+}
+
+void backward_connected_layer_gpu(layer l, network net)
+{
+ constrain_gpu(l.outputs*l.batch, 1, l.delta_gpu, 1);
+ gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
+ if(l.batch_normalize){
+ backward_batchnorm_layer_gpu(l, net);
+ } else {
+ backward_bias_gpu(l.bias_updates_gpu, l.delta_gpu, l.batch, l.outputs, 1);
+ }
+
+ int m = l.outputs;
+ int k = l.batch;
+ int n = l.inputs;
+ float * a = l.delta_gpu;
+ float * b = net.input_gpu;
+ float * c = l.weight_updates_gpu;
+ gemm_gpu(1,0,m,n,k,1,a,m,b,n,1,c,n);
+
+ m = l.batch;
+ k = l.outputs;
+ n = l.inputs;
+
+ a = l.delta_gpu;
+ b = l.weights_gpu;
+ c = net.delta_gpu;
+
+ if(c) gemm_gpu(0,0,m,n,k,1,a,k,b,n,1,c,n);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/connected_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/connected_layer.h"
new file mode 100644
index 00000000..6727a964
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/connected_layer.h"
@@ -0,0 +1,23 @@
+#ifndef CONNECTED_LAYER_H
+#define CONNECTED_LAYER_H
+
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_connected_layer(int batch, int inputs, int outputs, ACTIVATION activation, int batch_normalize, int adam);
+
+void forward_connected_layer(layer l, network net);
+void backward_connected_layer(layer l, network net);
+void update_connected_layer(layer l, update_args a);
+
+#ifdef GPU
+void forward_connected_layer_gpu(layer l, network net);
+void backward_connected_layer_gpu(layer l, network net);
+void update_connected_layer_gpu(layer l, update_args a);
+void push_connected_layer(layer l);
+void pull_connected_layer(layer l);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_kernels.cu"
new file mode 100644
index 00000000..4a1047b8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_kernels.cu"
@@ -0,0 +1,330 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "convolutional_layer.h"
+#include "batchnorm_layer.h"
+#include "gemm.h"
+#include "blas.h"
+#include "im2col.h"
+#include "col2im.h"
+#include "utils.h"
+#include "cuda.h"
+}
+
+__global__ void binarize_kernel(float *x, int n, float *binary)
+{
+ int i = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (i >= n) return;
+ binary[i] = (x[i] >= 0) ? 1 : -1;
+}
+
+void binarize_gpu(float *x, int n, float *binary)
+{
+ binarize_kernel<<>>(x, n, binary);
+ check_error(cudaPeekAtLastError());
+}
+
+__global__ void binarize_input_kernel(float *input, int n, int size, float *binary)
+{
+ int s = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (s >= size) return;
+ int i = 0;
+ float mean = 0;
+ for(i = 0; i < n; ++i){
+ mean += fabsf(input[i*size + s]);
+ }
+ mean = mean / n;
+ for(i = 0; i < n; ++i){
+ binary[i*size + s] = (input[i*size + s] > 0) ? mean : -mean;
+ }
+}
+
+void binarize_input_gpu(float *input, int n, int size, float *binary)
+{
+ binarize_input_kernel<<>>(input, n, size, binary);
+ check_error(cudaPeekAtLastError());
+}
+
+
+__global__ void binarize_weights_kernel(float *weights, int n, int size, float *binary)
+{
+ int f = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if (f >= n) return;
+ int i = 0;
+ float mean = 0;
+ for(i = 0; i < size; ++i){
+ mean += fabsf(weights[f*size + i]);
+ }
+ mean = mean / size;
+ for(i = 0; i < size; ++i){
+ binary[f*size + i] = (weights[f*size + i] > 0) ? mean : -mean;
+ //binary[f*size + i] = weights[f*size + i];
+ }
+}
+
+void binarize_weights_gpu(float *weights, int n, int size, float *binary)
+{
+ binarize_weights_kernel<<>>(weights, n, size, binary);
+ check_error(cudaPeekAtLastError());
+}
+
+void forward_convolutional_layer_gpu(convolutional_layer l, network net)
+{
+ fill_gpu(l.outputs*l.batch, 0, l.output_gpu, 1);
+ if(l.binary){
+ binarize_weights_gpu(l.weights_gpu, l.n, l.c/l.groups*l.size*l.size, l.binary_weights_gpu);
+ swap_binary(&l);
+ }
+
+ if(l.xnor){
+ binarize_weights_gpu(l.weights_gpu, l.n, l.c/l.groups*l.size*l.size, l.binary_weights_gpu);
+ swap_binary(&l);
+ binarize_gpu(net.input_gpu, l.c*l.h*l.w*l.batch, l.binary_input_gpu);
+ net.input_gpu = l.binary_input_gpu;
+ }
+
+#ifdef CUDNN
+ float one = 1;
+ cudnnConvolutionForward(cudnn_handle(),
+ &one,
+ l.srcTensorDesc,
+ net.input_gpu,
+ l.weightDesc,
+ l.weights_gpu,
+ l.convDesc,
+ l.fw_algo,
+ net.workspace,
+ l.workspace_size,
+ &one,
+ l.dstTensorDesc,
+ l.output_gpu);
+
+#else
+ int i, j;
+ int m = l.n/l.groups;
+ int k = l.size*l.size*l.c/l.groups;
+ int n = l.out_w*l.out_h;
+ for(i = 0; i < l.batch; ++i){
+ for(j = 0; j < l.groups; ++j){
+ float *a = l.weights_gpu + j*l.nweights/l.groups;
+ float *b = net.workspace;
+ float *c = l.output_gpu + (i*l.groups + j)*n*m;
+ float *im = net.input_gpu + (i*l.groups + j)*l.c/l.groups*l.h*l.w;
+
+ if (l.size == 1){
+ b = im;
+ } else {
+ im2col_gpu(im, l.c/l.groups, l.h, l.w, l.size, l.stride, l.pad, b);
+ }
+ gemm_gpu(0,0,m,n,k,1,a,k,b,n,1,c,n);
+ }
+ }
+#endif
+
+ if (l.batch_normalize) {
+ forward_batchnorm_layer_gpu(l, net);
+ } else {
+ add_bias_gpu(l.output_gpu, l.biases_gpu, l.batch, l.n, l.out_w*l.out_h);
+ }
+
+ activate_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation);
+ //if(l.dot > 0) dot_error_gpu(l);
+ if(l.binary || l.xnor) swap_binary(&l);
+}
+
+__global__ void smooth_kernel(float *x, int n, int w, int h, int c, int size, float rate, float *delta)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= n) return;
+
+ int j = id % w;
+ id /= w;
+ int i = id % h;
+ id /= h;
+ int k = id % c;
+ id /= c;
+ int b = id;
+
+ int w_offset = -(size/2.f);
+ int h_offset = -(size/2.f);
+
+ int out_index = j + w*(i + h*(k + c*b));
+ int l, m;
+ for(l = 0; l < size; ++l){
+ for(m = 0; m < size; ++m){
+ int cur_h = h_offset + i + l;
+ int cur_w = w_offset + j + m;
+ int index = cur_w + w*(cur_h + h*(k + b*c));
+ int valid = (cur_h >= 0 && cur_h < h &&
+ cur_w >= 0 && cur_w < w);
+ delta[out_index] += valid ? rate*(x[index] - x[out_index]) : 0;
+ }
+ }
+}
+
+extern "C" void smooth_layer(layer l, int size, float rate)
+{
+ int h = l.out_h;
+ int w = l.out_w;
+ int c = l.out_c;
+
+ size_t n = h*w*c*l.batch;
+
+ smooth_kernel<<>>(l.output_gpu, n, l.w, l.h, l.c, size, rate, l.delta_gpu);
+ check_error(cudaPeekAtLastError());
+}
+
+void backward_convolutional_layer_gpu(convolutional_layer l, network net)
+{
+ if(l.smooth){
+ smooth_layer(l, 5, l.smooth);
+ }
+ //constrain_gpu(l.outputs*l.batch, 1, l.delta_gpu, 1);
+ gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
+
+
+ if(l.batch_normalize){
+ backward_batchnorm_layer_gpu(l, net);
+ } else {
+ backward_bias_gpu(l.bias_updates_gpu, l.delta_gpu, l.batch, l.n, l.out_w*l.out_h);
+ }
+ float *original_input = net.input_gpu;
+
+ if(l.xnor) net.input_gpu = l.binary_input_gpu;
+#ifdef CUDNN
+ float one = 1;
+ cudnnConvolutionBackwardFilter(cudnn_handle(),
+ &one,
+ l.srcTensorDesc,
+ net.input_gpu,
+ l.ddstTensorDesc,
+ l.delta_gpu,
+ l.convDesc,
+ l.bf_algo,
+ net.workspace,
+ l.workspace_size,
+ &one,
+ l.dweightDesc,
+ l.weight_updates_gpu);
+
+ if(net.delta_gpu){
+ if(l.binary || l.xnor) swap_binary(&l);
+ cudnnConvolutionBackwardData(cudnn_handle(),
+ &one,
+ l.weightDesc,
+ l.weights_gpu,
+ l.ddstTensorDesc,
+ l.delta_gpu,
+ l.convDesc,
+ l.bd_algo,
+ net.workspace,
+ l.workspace_size,
+ &one,
+ l.dsrcTensorDesc,
+ net.delta_gpu);
+ if(l.binary || l.xnor) swap_binary(&l);
+ if(l.xnor) gradient_array_gpu(original_input, l.batch*l.c*l.h*l.w, HARDTAN, net.delta_gpu);
+ }
+
+#else
+ int m = l.n/l.groups;
+ int n = l.size*l.size*l.c/l.groups;
+ int k = l.out_w*l.out_h;
+
+ int i, j;
+ for(i = 0; i < l.batch; ++i){
+ for(j = 0; j < l.groups; ++j){
+ float *a = l.delta_gpu + (i*l.groups + j)*m*k;
+ float *b = net.workspace;
+ float *c = l.weight_updates_gpu + j*l.nweights/l.groups;
+
+ float *im = net.input_gpu+(i*l.groups + j)*l.c/l.groups*l.h*l.w;
+ float *imd = net.delta_gpu+(i*l.groups + j)*l.c/l.groups*l.h*l.w;
+
+ im2col_gpu(im, l.c/l.groups, l.h, l.w, l.size, l.stride, l.pad, b);
+ gemm_gpu(0,1,m,n,k,1,a,k,b,k,1,c,n);
+
+ if (net.delta_gpu) {
+ if (l.binary || l.xnor) swap_binary(&l);
+ a = l.weights_gpu + j*l.nweights/l.groups;
+ b = l.delta_gpu + (i*l.groups + j)*m*k;
+ c = net.workspace;
+ if (l.size == 1) {
+ c = imd;
+ }
+
+ gemm_gpu(1,0,n,k,m,1,a,n,b,k,0,c,k);
+
+ if (l.size != 1) {
+ col2im_gpu(net.workspace, l.c/l.groups, l.h, l.w, l.size, l.stride, l.pad, imd);
+ }
+ if(l.binary || l.xnor) {
+ swap_binary(&l);
+ }
+ }
+ if(l.xnor) gradient_array_gpu(original_input + i*l.c*l.h*l.w, l.c*l.h*l.w, HARDTAN, net.delta_gpu + i*l.c*l.h*l.w);
+ }
+ }
+#endif
+}
+
+void pull_convolutional_layer(layer l)
+{
+ cuda_pull_array(l.weights_gpu, l.weights, l.nweights);
+ cuda_pull_array(l.biases_gpu, l.biases, l.n);
+ cuda_pull_array(l.weight_updates_gpu, l.weight_updates, l.nweights);
+ cuda_pull_array(l.bias_updates_gpu, l.bias_updates, l.n);
+ if (l.batch_normalize){
+ cuda_pull_array(l.scales_gpu, l.scales, l.n);
+ cuda_pull_array(l.rolling_mean_gpu, l.rolling_mean, l.n);
+ cuda_pull_array(l.rolling_variance_gpu, l.rolling_variance, l.n);
+ }
+}
+
+void push_convolutional_layer(layer l)
+{
+ cuda_push_array(l.weights_gpu, l.weights, l.nweights);
+ cuda_push_array(l.biases_gpu, l.biases, l.n);
+ cuda_push_array(l.weight_updates_gpu, l.weight_updates, l.nweights);
+ cuda_push_array(l.bias_updates_gpu, l.bias_updates, l.n);
+ if (l.batch_normalize){
+ cuda_push_array(l.scales_gpu, l.scales, l.n);
+ cuda_push_array(l.rolling_mean_gpu, l.rolling_mean, l.n);
+ cuda_push_array(l.rolling_variance_gpu, l.rolling_variance, l.n);
+ }
+}
+
+void update_convolutional_layer_gpu(layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+
+ if(a.adam){
+ adam_update_gpu(l.weights_gpu, l.weight_updates_gpu, l.m_gpu, l.v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.nweights, batch, a.t);
+ adam_update_gpu(l.biases_gpu, l.bias_updates_gpu, l.bias_m_gpu, l.bias_v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.n, batch, a.t);
+ if(l.scales_gpu){
+ adam_update_gpu(l.scales_gpu, l.scale_updates_gpu, l.scale_m_gpu, l.scale_v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.n, batch, a.t);
+ }
+ }else{
+ axpy_gpu(l.nweights, -decay*batch, l.weights_gpu, 1, l.weight_updates_gpu, 1);
+ axpy_gpu(l.nweights, learning_rate/batch, l.weight_updates_gpu, 1, l.weights_gpu, 1);
+ scal_gpu(l.nweights, momentum, l.weight_updates_gpu, 1);
+
+ axpy_gpu(l.n, learning_rate/batch, l.bias_updates_gpu, 1, l.biases_gpu, 1);
+ scal_gpu(l.n, momentum, l.bias_updates_gpu, 1);
+
+ if(l.scales_gpu){
+ axpy_gpu(l.n, learning_rate/batch, l.scale_updates_gpu, 1, l.scales_gpu, 1);
+ scal_gpu(l.n, momentum, l.scale_updates_gpu, 1);
+ }
+ }
+ if(l.clip){
+ constrain_gpu(l.nweights, l.clip, l.weights_gpu, 1);
+ }
+}
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_layer.c"
new file mode 100644
index 00000000..1fb58b09
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_layer.c"
@@ -0,0 +1,622 @@
+#include "convolutional_layer.h"
+#include "utils.h"
+#include "batchnorm_layer.h"
+#include "im2col.h"
+#include "col2im.h"
+#include "blas.h"
+#include "gemm.h"
+#include
+#include
+
+#ifdef AI2
+#include "xnor_layer.h"
+#endif
+
+void swap_binary(convolutional_layer *l)
+{
+ float *swap = l->weights;
+ l->weights = l->binary_weights;
+ l->binary_weights = swap;
+
+#ifdef GPU
+ swap = l->weights_gpu;
+ l->weights_gpu = l->binary_weights_gpu;
+ l->binary_weights_gpu = swap;
+#endif
+}
+
+void binarize_weights(float *weights, int n, int size, float *binary)
+{
+ int i, f;
+ for(f = 0; f < n; ++f){
+ float mean = 0;
+ for(i = 0; i < size; ++i){
+ mean += fabs(weights[f*size + i]);
+ }
+ mean = mean / size;
+ for(i = 0; i < size; ++i){
+ binary[f*size + i] = (weights[f*size + i] > 0) ? mean : -mean;
+ }
+ }
+}
+
+void binarize_cpu(float *input, int n, float *binary)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ binary[i] = (input[i] > 0) ? 1 : -1;
+ }
+}
+
+void binarize_input(float *input, int n, int size, float *binary)
+{
+ int i, s;
+ for(s = 0; s < size; ++s){
+ float mean = 0;
+ for(i = 0; i < n; ++i){
+ mean += fabs(input[i*size + s]);
+ }
+ mean = mean / n;
+ for(i = 0; i < n; ++i){
+ binary[i*size + s] = (input[i*size + s] > 0) ? mean : -mean;
+ }
+ }
+}
+
+int convolutional_out_height(convolutional_layer l)
+{
+ return (l.h + 2*l.pad - l.size) / l.stride + 1;
+}
+
+int convolutional_out_width(convolutional_layer l)
+{
+ return (l.w + 2*l.pad - l.size) / l.stride + 1;
+}
+
+image get_convolutional_image(convolutional_layer l)
+{
+ return float_to_image(l.out_w,l.out_h,l.out_c,l.output);
+}
+
+image get_convolutional_delta(convolutional_layer l)
+{
+ return float_to_image(l.out_w,l.out_h,l.out_c,l.delta);
+}
+
+static size_t get_workspace_size(layer l){
+#ifdef CUDNN
+ if(gpu_index >= 0){
+ size_t most = 0;
+ size_t s = 0;
+ cudnnGetConvolutionForwardWorkspaceSize(cudnn_handle(),
+ l.srcTensorDesc,
+ l.weightDesc,
+ l.convDesc,
+ l.dstTensorDesc,
+ l.fw_algo,
+ &s);
+ if (s > most) most = s;
+ cudnnGetConvolutionBackwardFilterWorkspaceSize(cudnn_handle(),
+ l.srcTensorDesc,
+ l.ddstTensorDesc,
+ l.convDesc,
+ l.dweightDesc,
+ l.bf_algo,
+ &s);
+ if (s > most) most = s;
+ cudnnGetConvolutionBackwardDataWorkspaceSize(cudnn_handle(),
+ l.weightDesc,
+ l.ddstTensorDesc,
+ l.convDesc,
+ l.dsrcTensorDesc,
+ l.bd_algo,
+ &s);
+ if (s > most) most = s;
+ return most;
+ }
+#endif
+ return (size_t)l.out_h*l.out_w*l.size*l.size*l.c/l.groups*sizeof(float);
+}
+
+#ifdef GPU
+#ifdef CUDNN
+void cudnn_convolutional_setup(layer *l)
+{
+ cudnnSetTensor4dDescriptor(l->dsrcTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l->batch, l->c, l->h, l->w);
+ cudnnSetTensor4dDescriptor(l->ddstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l->batch, l->out_c, l->out_h, l->out_w);
+
+ cudnnSetTensor4dDescriptor(l->srcTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l->batch, l->c, l->h, l->w);
+ cudnnSetTensor4dDescriptor(l->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l->batch, l->out_c, l->out_h, l->out_w);
+ cudnnSetTensor4dDescriptor(l->normTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l->out_c, 1, 1);
+
+ cudnnSetFilter4dDescriptor(l->dweightDesc, CUDNN_DATA_FLOAT, CUDNN_TENSOR_NCHW, l->n, l->c/l->groups, l->size, l->size);
+ cudnnSetFilter4dDescriptor(l->weightDesc, CUDNN_DATA_FLOAT, CUDNN_TENSOR_NCHW, l->n, l->c/l->groups, l->size, l->size);
+ #if CUDNN_MAJOR >= 6
+ cudnnSetConvolution2dDescriptor(l->convDesc, l->pad, l->pad, l->stride, l->stride, 1, 1, CUDNN_CROSS_CORRELATION, CUDNN_DATA_FLOAT);
+ #else
+ cudnnSetConvolution2dDescriptor(l->convDesc, l->pad, l->pad, l->stride, l->stride, 1, 1, CUDNN_CROSS_CORRELATION);
+ #endif
+
+ #if CUDNN_MAJOR >= 7
+ cudnnSetConvolutionGroupCount(l->convDesc, l->groups);
+ #else
+ if(l->groups > 1){
+ error("CUDNN < 7 doesn't support groups, please upgrade!");
+ }
+ #endif
+
+ cudnnGetConvolutionForwardAlgorithm(cudnn_handle(),
+ l->srcTensorDesc,
+ l->weightDesc,
+ l->convDesc,
+ l->dstTensorDesc,
+ CUDNN_CONVOLUTION_FWD_SPECIFY_WORKSPACE_LIMIT,
+ 2000000000,
+ &l->fw_algo);
+ cudnnGetConvolutionBackwardDataAlgorithm(cudnn_handle(),
+ l->weightDesc,
+ l->ddstTensorDesc,
+ l->convDesc,
+ l->dsrcTensorDesc,
+ CUDNN_CONVOLUTION_BWD_DATA_SPECIFY_WORKSPACE_LIMIT,
+ 2000000000,
+ &l->bd_algo);
+ cudnnGetConvolutionBackwardFilterAlgorithm(cudnn_handle(),
+ l->srcTensorDesc,
+ l->ddstTensorDesc,
+ l->convDesc,
+ l->dweightDesc,
+ CUDNN_CONVOLUTION_BWD_FILTER_SPECIFY_WORKSPACE_LIMIT,
+ 2000000000,
+ &l->bf_algo);
+}
+#endif
+#endif
+
+convolutional_layer make_convolutional_layer(int batch, int h, int w, int c, int n, int groups, int size, int stride, int padding, ACTIVATION activation, int batch_normalize, int binary, int xnor, int adam)
+{
+ int i;
+ convolutional_layer l = {0};
+ l.type = CONVOLUTIONAL;
+
+ l.groups = groups;
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.n = n;
+ l.binary = binary;
+ l.xnor = xnor;
+ l.batch = batch;
+ l.stride = stride;
+ l.size = size;
+ l.pad = padding;
+ l.batch_normalize = batch_normalize;
+
+ l.weights = calloc(c/groups*n*size*size, sizeof(float));
+ l.weight_updates = calloc(c/groups*n*size*size, sizeof(float));
+
+ l.biases = calloc(n, sizeof(float));
+ l.bias_updates = calloc(n, sizeof(float));
+
+ l.nweights = c/groups*n*size*size;
+ l.nbiases = n;
+
+ // float scale = 1./sqrt(size*size*c);
+ float scale = sqrt(2./(size*size*c/l.groups));
+ //printf("convscale %f\n", scale);
+ //scale = .02;
+ //for(i = 0; i < c*n*size*size; ++i) l.weights[i] = scale*rand_uniform(-1, 1);
+ for(i = 0; i < l.nweights; ++i) l.weights[i] = scale*rand_normal();
+ int out_w = convolutional_out_width(l);
+ int out_h = convolutional_out_height(l);
+ l.out_h = out_h;
+ l.out_w = out_w;
+ l.out_c = n;
+ l.outputs = l.out_h * l.out_w * l.out_c;
+ l.inputs = l.w * l.h * l.c;
+
+ l.output = calloc(l.batch*l.outputs, sizeof(float));
+ l.delta = calloc(l.batch*l.outputs, sizeof(float));
+
+ l.forward = forward_convolutional_layer;
+ l.backward = backward_convolutional_layer;
+ l.update = update_convolutional_layer;
+ if(binary){
+ l.binary_weights = calloc(l.nweights, sizeof(float));
+ l.cweights = calloc(l.nweights, sizeof(char));
+ l.scales = calloc(n, sizeof(float));
+ }
+ if(xnor){
+ l.binary_weights = calloc(l.nweights, sizeof(float));
+ l.binary_input = calloc(l.inputs*l.batch, sizeof(float));
+ }
+
+ if(batch_normalize){
+ l.scales = calloc(n, sizeof(float));
+ l.scale_updates = calloc(n, sizeof(float));
+ for(i = 0; i < n; ++i){
+ l.scales[i] = 1;
+ }
+
+ l.mean = calloc(n, sizeof(float));
+ l.variance = calloc(n, sizeof(float));
+
+ l.mean_delta = calloc(n, sizeof(float));
+ l.variance_delta = calloc(n, sizeof(float));
+
+ l.rolling_mean = calloc(n, sizeof(float));
+ l.rolling_variance = calloc(n, sizeof(float));
+ l.x = calloc(l.batch*l.outputs, sizeof(float));
+ l.x_norm = calloc(l.batch*l.outputs, sizeof(float));
+ }
+ if(adam){
+ l.m = calloc(l.nweights, sizeof(float));
+ l.v = calloc(l.nweights, sizeof(float));
+ l.bias_m = calloc(n, sizeof(float));
+ l.scale_m = calloc(n, sizeof(float));
+ l.bias_v = calloc(n, sizeof(float));
+ l.scale_v = calloc(n, sizeof(float));
+ }
+
+#ifdef GPU
+ l.forward_gpu = forward_convolutional_layer_gpu;
+ l.backward_gpu = backward_convolutional_layer_gpu;
+ l.update_gpu = update_convolutional_layer_gpu;
+
+ if(gpu_index >= 0){
+ if (adam) {
+ l.m_gpu = cuda_make_array(l.m, l.nweights);
+ l.v_gpu = cuda_make_array(l.v, l.nweights);
+ l.bias_m_gpu = cuda_make_array(l.bias_m, n);
+ l.bias_v_gpu = cuda_make_array(l.bias_v, n);
+ l.scale_m_gpu = cuda_make_array(l.scale_m, n);
+ l.scale_v_gpu = cuda_make_array(l.scale_v, n);
+ }
+
+ l.weights_gpu = cuda_make_array(l.weights, l.nweights);
+ l.weight_updates_gpu = cuda_make_array(l.weight_updates, l.nweights);
+
+ l.biases_gpu = cuda_make_array(l.biases, n);
+ l.bias_updates_gpu = cuda_make_array(l.bias_updates, n);
+
+ l.delta_gpu = cuda_make_array(l.delta, l.batch*out_h*out_w*n);
+ l.output_gpu = cuda_make_array(l.output, l.batch*out_h*out_w*n);
+
+ if(binary){
+ l.binary_weights_gpu = cuda_make_array(l.weights, l.nweights);
+ }
+ if(xnor){
+ l.binary_weights_gpu = cuda_make_array(l.weights, l.nweights);
+ l.binary_input_gpu = cuda_make_array(0, l.inputs*l.batch);
+ }
+
+ if(batch_normalize){
+ l.mean_gpu = cuda_make_array(l.mean, n);
+ l.variance_gpu = cuda_make_array(l.variance, n);
+
+ l.rolling_mean_gpu = cuda_make_array(l.mean, n);
+ l.rolling_variance_gpu = cuda_make_array(l.variance, n);
+
+ l.mean_delta_gpu = cuda_make_array(l.mean, n);
+ l.variance_delta_gpu = cuda_make_array(l.variance, n);
+
+ l.scales_gpu = cuda_make_array(l.scales, n);
+ l.scale_updates_gpu = cuda_make_array(l.scale_updates, n);
+
+ l.x_gpu = cuda_make_array(l.output, l.batch*out_h*out_w*n);
+ l.x_norm_gpu = cuda_make_array(l.output, l.batch*out_h*out_w*n);
+ }
+#ifdef CUDNN
+ cudnnCreateTensorDescriptor(&l.normTensorDesc);
+ cudnnCreateTensorDescriptor(&l.srcTensorDesc);
+ cudnnCreateTensorDescriptor(&l.dstTensorDesc);
+ cudnnCreateFilterDescriptor(&l.weightDesc);
+ cudnnCreateTensorDescriptor(&l.dsrcTensorDesc);
+ cudnnCreateTensorDescriptor(&l.ddstTensorDesc);
+ cudnnCreateFilterDescriptor(&l.dweightDesc);
+ cudnnCreateConvolutionDescriptor(&l.convDesc);
+ cudnn_convolutional_setup(&l);
+#endif
+ }
+#endif
+ l.workspace_size = get_workspace_size(l);
+ l.activation = activation;
+
+ fprintf(stderr, "conv %5d %2d x%2d /%2d %4d x%4d x%4d -> %4d x%4d x%4d %5.3f BFLOPs\n", n, size, size, stride, w, h, c, l.out_w, l.out_h, l.out_c, (2.0 * l.n * l.size*l.size*l.c/l.groups * l.out_h*l.out_w)/1000000000.);
+
+ return l;
+}
+
+void denormalize_convolutional_layer(convolutional_layer l)
+{
+ int i, j;
+ for(i = 0; i < l.n; ++i){
+ float scale = l.scales[i]/sqrt(l.rolling_variance[i] + .00001);
+ for(j = 0; j < l.c/l.groups*l.size*l.size; ++j){
+ l.weights[i*l.c/l.groups*l.size*l.size + j] *= scale;
+ }
+ l.biases[i] -= l.rolling_mean[i] * scale;
+ l.scales[i] = 1;
+ l.rolling_mean[i] = 0;
+ l.rolling_variance[i] = 1;
+ }
+}
+
+/*
+void test_convolutional_layer()
+{
+ convolutional_layer l = make_convolutional_layer(1, 5, 5, 3, 2, 5, 2, 1, LEAKY, 1, 0, 0, 0);
+ l.batch_normalize = 1;
+ float data[] = {1,1,1,1,1,
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 1,1,1,1,1,
+ 2,2,2,2,2,
+ 2,2,2,2,2,
+ 2,2,2,2,2,
+ 2,2,2,2,2,
+ 2,2,2,2,2,
+ 3,3,3,3,3,
+ 3,3,3,3,3,
+ 3,3,3,3,3,
+ 3,3,3,3,3,
+ 3,3,3,3,3};
+ //net.input = data;
+ //forward_convolutional_layer(l);
+}
+*/
+
+void resize_convolutional_layer(convolutional_layer *l, int w, int h)
+{
+ l->w = w;
+ l->h = h;
+ int out_w = convolutional_out_width(*l);
+ int out_h = convolutional_out_height(*l);
+
+ l->out_w = out_w;
+ l->out_h = out_h;
+
+ l->outputs = l->out_h * l->out_w * l->out_c;
+ l->inputs = l->w * l->h * l->c;
+
+ l->output = realloc(l->output, l->batch*l->outputs*sizeof(float));
+ l->delta = realloc(l->delta, l->batch*l->outputs*sizeof(float));
+ if(l->batch_normalize){
+ l->x = realloc(l->x, l->batch*l->outputs*sizeof(float));
+ l->x_norm = realloc(l->x_norm, l->batch*l->outputs*sizeof(float));
+ }
+
+#ifdef GPU
+ cuda_free(l->delta_gpu);
+ cuda_free(l->output_gpu);
+
+ l->delta_gpu = cuda_make_array(l->delta, l->batch*l->outputs);
+ l->output_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+
+ if(l->batch_normalize){
+ cuda_free(l->x_gpu);
+ cuda_free(l->x_norm_gpu);
+
+ l->x_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+ l->x_norm_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+ }
+#ifdef CUDNN
+ cudnn_convolutional_setup(l);
+#endif
+#endif
+ l->workspace_size = get_workspace_size(*l);
+}
+
+void add_bias(float *output, float *biases, int batch, int n, int size)
+{
+ int i,j,b;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < n; ++i){
+ for(j = 0; j < size; ++j){
+ output[(b*n + i)*size + j] += biases[i];
+ }
+ }
+ }
+}
+
+void scale_bias(float *output, float *scales, int batch, int n, int size)
+{
+ int i,j,b;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < n; ++i){
+ for(j = 0; j < size; ++j){
+ output[(b*n + i)*size + j] *= scales[i];
+ }
+ }
+ }
+}
+
+void backward_bias(float *bias_updates, float *delta, int batch, int n, int size)
+{
+ int i,b;
+ for(b = 0; b < batch; ++b){
+ for(i = 0; i < n; ++i){
+ bias_updates[i] += sum_array(delta+size*(i+b*n), size);
+ }
+ }
+}
+
+void forward_convolutional_layer(convolutional_layer l, network net)
+{
+ int i, j;
+
+ fill_cpu(l.outputs*l.batch, 0, l.output, 1);
+
+ if(l.xnor){
+ binarize_weights(l.weights, l.n, l.c/l.groups*l.size*l.size, l.binary_weights);
+ swap_binary(&l);
+ binarize_cpu(net.input, l.c*l.h*l.w*l.batch, l.binary_input);
+ net.input = l.binary_input;
+ }
+
+ int m = l.n/l.groups;
+ int k = l.size*l.size*l.c/l.groups;
+ int n = l.out_w*l.out_h;
+ for(i = 0; i < l.batch; ++i){
+ for(j = 0; j < l.groups; ++j){
+ float *a = l.weights + j*l.nweights/l.groups;
+ float *b = net.workspace;
+ float *c = l.output + (i*l.groups + j)*n*m;
+ float *im = net.input + (i*l.groups + j)*l.c/l.groups*l.h*l.w;
+
+ if (l.size == 1) {
+ b = im;
+ } else {
+ im2col_cpu(im, l.c/l.groups, l.h, l.w, l.size, l.stride, l.pad, b);
+ }
+ gemm(0,0,m,n,k,1,a,k,b,n,1,c,n);
+ }
+ }
+
+ if(l.batch_normalize){
+ forward_batchnorm_layer(l, net);
+ } else {
+ add_bias(l.output, l.biases, l.batch, l.n, l.out_h*l.out_w);
+ }
+
+ activate_array(l.output, l.outputs*l.batch, l.activation);
+ if(l.binary || l.xnor) swap_binary(&l);
+}
+
+void backward_convolutional_layer(convolutional_layer l, network net)
+{
+ int i, j;
+ int m = l.n/l.groups;
+ int n = l.size*l.size*l.c/l.groups;
+ int k = l.out_w*l.out_h;
+
+ gradient_array(l.output, l.outputs*l.batch, l.activation, l.delta);
+
+ if(l.batch_normalize){
+ backward_batchnorm_layer(l, net);
+ } else {
+ backward_bias(l.bias_updates, l.delta, l.batch, l.n, k);
+ }
+
+ for(i = 0; i < l.batch; ++i){
+ for(j = 0; j < l.groups; ++j){
+ float *a = l.delta + (i*l.groups + j)*m*k;
+ float *b = net.workspace;
+ float *c = l.weight_updates + j*l.nweights/l.groups;
+
+ float *im = net.input + (i*l.groups + j)*l.c/l.groups*l.h*l.w;
+ float *imd = net.delta + (i*l.groups + j)*l.c/l.groups*l.h*l.w;
+
+ if(l.size == 1){
+ b = im;
+ } else {
+ im2col_cpu(im, l.c/l.groups, l.h, l.w,
+ l.size, l.stride, l.pad, b);
+ }
+
+ gemm(0,1,m,n,k,1,a,k,b,k,1,c,n);
+
+ if (net.delta) {
+ a = l.weights + j*l.nweights/l.groups;
+ b = l.delta + (i*l.groups + j)*m*k;
+ c = net.workspace;
+ if (l.size == 1) {
+ c = imd;
+ }
+
+ gemm(1,0,n,k,m,1,a,n,b,k,0,c,k);
+
+ if (l.size != 1) {
+ col2im_cpu(net.workspace, l.c/l.groups, l.h, l.w, l.size, l.stride, l.pad, imd);
+ }
+ }
+ }
+ }
+}
+
+void update_convolutional_layer(convolutional_layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+
+ axpy_cpu(l.n, learning_rate/batch, l.bias_updates, 1, l.biases, 1);
+ scal_cpu(l.n, momentum, l.bias_updates, 1);
+
+ if(l.scales){
+ axpy_cpu(l.n, learning_rate/batch, l.scale_updates, 1, l.scales, 1);
+ scal_cpu(l.n, momentum, l.scale_updates, 1);
+ }
+
+ axpy_cpu(l.nweights, -decay*batch, l.weights, 1, l.weight_updates, 1);
+ axpy_cpu(l.nweights, learning_rate/batch, l.weight_updates, 1, l.weights, 1);
+ scal_cpu(l.nweights, momentum, l.weight_updates, 1);
+}
+
+
+image get_convolutional_weight(convolutional_layer l, int i)
+{
+ int h = l.size;
+ int w = l.size;
+ int c = l.c/l.groups;
+ return float_to_image(w,h,c,l.weights+i*h*w*c);
+}
+
+void rgbgr_weights(convolutional_layer l)
+{
+ int i;
+ for(i = 0; i < l.n; ++i){
+ image im = get_convolutional_weight(l, i);
+ if (im.c == 3) {
+ rgbgr_image(im);
+ }
+ }
+}
+
+void rescale_weights(convolutional_layer l, float scale, float trans)
+{
+ int i;
+ for(i = 0; i < l.n; ++i){
+ image im = get_convolutional_weight(l, i);
+ if (im.c == 3) {
+ scale_image(im, scale);
+ float sum = sum_array(im.data, im.w*im.h*im.c);
+ l.biases[i] += sum*trans;
+ }
+ }
+}
+
+image *get_weights(convolutional_layer l)
+{
+ image *weights = calloc(l.n, sizeof(image));
+ int i;
+ for(i = 0; i < l.n; ++i){
+ weights[i] = copy_image(get_convolutional_weight(l, i));
+ normalize_image(weights[i]);
+ /*
+ char buff[256];
+ sprintf(buff, "filter%d", i);
+ save_image(weights[i], buff);
+ */
+ }
+ //error("hey");
+ return weights;
+}
+
+image *visualize_convolutional_layer(convolutional_layer l, char *window, image *prev_weights)
+{
+ image *single_weights = get_weights(l);
+ show_images(single_weights, l.n, window);
+
+ image delta = get_convolutional_image(l);
+ image dc = collapse_image_layers(delta, 1);
+ char buff[256];
+ sprintf(buff, "%s: Output", window);
+ //show_image(dc, buff);
+ //save_image(dc, buff);
+ free_image(dc);
+ return single_weights;
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_layer.h"
new file mode 100644
index 00000000..6c261f5f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/convolutional_layer.h"
@@ -0,0 +1,50 @@
+#ifndef CONVOLUTIONAL_LAYER_H
+#define CONVOLUTIONAL_LAYER_H
+
+#include "cuda.h"
+#include "image.h"
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+typedef layer convolutional_layer;
+
+#ifdef GPU
+void forward_convolutional_layer_gpu(convolutional_layer layer, network net);
+void backward_convolutional_layer_gpu(convolutional_layer layer, network net);
+void update_convolutional_layer_gpu(convolutional_layer layer, update_args a);
+
+void push_convolutional_layer(convolutional_layer layer);
+void pull_convolutional_layer(convolutional_layer layer);
+
+void add_bias_gpu(float *output, float *biases, int batch, int n, int size);
+void backward_bias_gpu(float *bias_updates, float *delta, int batch, int n, int size);
+void adam_update_gpu(float *w, float *d, float *m, float *v, float B1, float B2, float eps, float decay, float rate, int n, int batch, int t);
+#ifdef CUDNN
+void cudnn_convolutional_setup(layer *l);
+#endif
+#endif
+
+convolutional_layer make_convolutional_layer(int batch, int h, int w, int c, int n, int groups, int size, int stride, int padding, ACTIVATION activation, int batch_normalize, int binary, int xnor, int adam);
+void resize_convolutional_layer(convolutional_layer *layer, int w, int h);
+void forward_convolutional_layer(const convolutional_layer layer, network net);
+void update_convolutional_layer(convolutional_layer layer, update_args a);
+image *visualize_convolutional_layer(convolutional_layer layer, char *window, image *prev_weights);
+void binarize_weights(float *weights, int n, int size, float *binary);
+void swap_binary(convolutional_layer *l);
+void binarize_weights2(float *weights, int n, int size, char *binary, float *scales);
+
+void backward_convolutional_layer(convolutional_layer layer, network net);
+
+void add_bias(float *output, float *biases, int batch, int n, int size);
+void backward_bias(float *bias_updates, float *delta, int batch, int n, int size);
+
+image get_convolutional_image(convolutional_layer layer);
+image get_convolutional_delta(convolutional_layer layer);
+image get_convolutional_weight(convolutional_layer layer, int i);
+
+int convolutional_out_height(convolutional_layer layer);
+int convolutional_out_width(convolutional_layer layer);
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cost_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cost_layer.c"
new file mode 100644
index 00000000..2138ff26
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cost_layer.c"
@@ -0,0 +1,176 @@
+#include "cost_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "blas.h"
+#include
+#include
+#include
+#include
+
+COST_TYPE get_cost_type(char *s)
+{
+ if (strcmp(s, "seg")==0) return SEG;
+ if (strcmp(s, "sse")==0) return SSE;
+ if (strcmp(s, "masked")==0) return MASKED;
+ if (strcmp(s, "smooth")==0) return SMOOTH;
+ if (strcmp(s, "L1")==0) return L1;
+ if (strcmp(s, "wgan")==0) return WGAN;
+ fprintf(stderr, "Couldn't find cost type %s, going with SSE\n", s);
+ return SSE;
+}
+
+char *get_cost_string(COST_TYPE a)
+{
+ switch(a){
+ case SEG:
+ return "seg";
+ case SSE:
+ return "sse";
+ case MASKED:
+ return "masked";
+ case SMOOTH:
+ return "smooth";
+ case L1:
+ return "L1";
+ case WGAN:
+ return "wgan";
+ }
+ return "sse";
+}
+
+cost_layer make_cost_layer(int batch, int inputs, COST_TYPE cost_type, float scale)
+{
+ fprintf(stderr, "cost %4d\n", inputs);
+ cost_layer l = {0};
+ l.type = COST;
+
+ l.scale = scale;
+ l.batch = batch;
+ l.inputs = inputs;
+ l.outputs = inputs;
+ l.cost_type = cost_type;
+ l.delta = calloc(inputs*batch, sizeof(float));
+ l.output = calloc(inputs*batch, sizeof(float));
+ l.cost = calloc(1, sizeof(float));
+
+ l.forward = forward_cost_layer;
+ l.backward = backward_cost_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_cost_layer_gpu;
+ l.backward_gpu = backward_cost_layer_gpu;
+
+ l.delta_gpu = cuda_make_array(l.output, inputs*batch);
+ l.output_gpu = cuda_make_array(l.delta, inputs*batch);
+ #endif
+ return l;
+}
+
+void resize_cost_layer(cost_layer *l, int inputs)
+{
+ l->inputs = inputs;
+ l->outputs = inputs;
+ l->delta = realloc(l->delta, inputs*l->batch*sizeof(float));
+ l->output = realloc(l->output, inputs*l->batch*sizeof(float));
+#ifdef GPU
+ cuda_free(l->delta_gpu);
+ cuda_free(l->output_gpu);
+ l->delta_gpu = cuda_make_array(l->delta, inputs*l->batch);
+ l->output_gpu = cuda_make_array(l->output, inputs*l->batch);
+#endif
+}
+
+void forward_cost_layer(cost_layer l, network net)
+{
+ if (!net.truth) return;
+ if(l.cost_type == MASKED){
+ int i;
+ for(i = 0; i < l.batch*l.inputs; ++i){
+ if(net.truth[i] == SECRET_NUM) net.input[i] = SECRET_NUM;
+ }
+ }
+ if(l.cost_type == SMOOTH){
+ smooth_l1_cpu(l.batch*l.inputs, net.input, net.truth, l.delta, l.output);
+ }else if(l.cost_type == L1){
+ l1_cpu(l.batch*l.inputs, net.input, net.truth, l.delta, l.output);
+ } else {
+ l2_cpu(l.batch*l.inputs, net.input, net.truth, l.delta, l.output);
+ }
+ l.cost[0] = sum_array(l.output, l.batch*l.inputs);
+}
+
+void backward_cost_layer(const cost_layer l, network net)
+{
+ axpy_cpu(l.batch*l.inputs, l.scale, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void pull_cost_layer(cost_layer l)
+{
+ cuda_pull_array(l.delta_gpu, l.delta, l.batch*l.inputs);
+}
+
+void push_cost_layer(cost_layer l)
+{
+ cuda_push_array(l.delta_gpu, l.delta, l.batch*l.inputs);
+}
+
+int float_abs_compare (const void * a, const void * b)
+{
+ float fa = *(const float*) a;
+ if(fa < 0) fa = -fa;
+ float fb = *(const float*) b;
+ if(fb < 0) fb = -fb;
+ return (fa > fb) - (fa < fb);
+}
+
+void forward_cost_layer_gpu(cost_layer l, network net)
+{
+ if (!net.truth) return;
+ if(l.smooth){
+ scal_gpu(l.batch*l.inputs, (1-l.smooth), net.truth_gpu, 1);
+ add_gpu(l.batch*l.inputs, l.smooth * 1./l.inputs, net.truth_gpu, 1);
+ }
+
+ if(l.cost_type == SMOOTH){
+ smooth_l1_gpu(l.batch*l.inputs, net.input_gpu, net.truth_gpu, l.delta_gpu, l.output_gpu);
+ } else if (l.cost_type == L1){
+ l1_gpu(l.batch*l.inputs, net.input_gpu, net.truth_gpu, l.delta_gpu, l.output_gpu);
+ } else if (l.cost_type == WGAN){
+ wgan_gpu(l.batch*l.inputs, net.input_gpu, net.truth_gpu, l.delta_gpu, l.output_gpu);
+ } else {
+ l2_gpu(l.batch*l.inputs, net.input_gpu, net.truth_gpu, l.delta_gpu, l.output_gpu);
+ }
+
+ if (l.cost_type == SEG && l.noobject_scale != 1) {
+ scale_mask_gpu(l.batch*l.inputs, l.delta_gpu, 0, net.truth_gpu, l.noobject_scale);
+ scale_mask_gpu(l.batch*l.inputs, l.output_gpu, 0, net.truth_gpu, l.noobject_scale);
+ }
+ if (l.cost_type == MASKED) {
+ mask_gpu(l.batch*l.inputs, net.delta_gpu, SECRET_NUM, net.truth_gpu, 0);
+ }
+
+ if(l.ratio){
+ cuda_pull_array(l.delta_gpu, l.delta, l.batch*l.inputs);
+ qsort(l.delta, l.batch*l.inputs, sizeof(float), float_abs_compare);
+ int n = (1-l.ratio) * l.batch*l.inputs;
+ float thresh = l.delta[n];
+ thresh = 0;
+ printf("%f\n", thresh);
+ supp_gpu(l.batch*l.inputs, thresh, l.delta_gpu, 1);
+ }
+
+ if(l.thresh){
+ supp_gpu(l.batch*l.inputs, l.thresh*1./l.inputs, l.delta_gpu, 1);
+ }
+
+ cuda_pull_array(l.output_gpu, l.output, l.batch*l.inputs);
+ l.cost[0] = sum_array(l.output, l.batch*l.inputs);
+}
+
+void backward_cost_layer_gpu(const cost_layer l, network net)
+{
+ axpy_gpu(l.batch*l.inputs, l.scale, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cost_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cost_layer.h"
new file mode 100644
index 00000000..ceb64de0
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cost_layer.h"
@@ -0,0 +1,20 @@
+#ifndef COST_LAYER_H
+#define COST_LAYER_H
+#include "layer.h"
+#include "network.h"
+
+typedef layer cost_layer;
+
+COST_TYPE get_cost_type(char *s);
+char *get_cost_string(COST_TYPE a);
+cost_layer make_cost_layer(int batch, int inputs, COST_TYPE type, float scale);
+void forward_cost_layer(const cost_layer l, network net);
+void backward_cost_layer(const cost_layer l, network net);
+void resize_cost_layer(cost_layer *l, int inputs);
+
+#ifdef GPU
+void forward_cost_layer_gpu(cost_layer l, network net);
+void backward_cost_layer_gpu(const cost_layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crnn_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crnn_layer.c"
new file mode 100644
index 00000000..7dd29f62
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crnn_layer.c"
@@ -0,0 +1,283 @@
+#include "crnn_layer.h"
+#include "convolutional_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "blas.h"
+#include "gemm.h"
+
+#include
+#include
+#include
+#include
+
+static void increment_layer(layer *l, int steps)
+{
+ int num = l->outputs*l->batch*steps;
+ l->output += num;
+ l->delta += num;
+ l->x += num;
+ l->x_norm += num;
+
+#ifdef GPU
+ l->output_gpu += num;
+ l->delta_gpu += num;
+ l->x_gpu += num;
+ l->x_norm_gpu += num;
+#endif
+}
+
+layer make_crnn_layer(int batch, int h, int w, int c, int hidden_filters, int output_filters, int steps, ACTIVATION activation, int batch_normalize)
+{
+ fprintf(stderr, "CRNN Layer: %d x %d x %d image, %d filters\n", h,w,c,output_filters);
+ batch = batch / steps;
+ layer l = {0};
+ l.batch = batch;
+ l.type = CRNN;
+ l.steps = steps;
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.out_h = h;
+ l.out_w = w;
+ l.out_c = output_filters;
+ l.inputs = h*w*c;
+ l.hidden = h * w * hidden_filters;
+ l.outputs = l.out_h * l.out_w * l.out_c;
+
+ l.state = calloc(l.hidden*batch*(steps+1), sizeof(float));
+
+ l.input_layer = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.input_layer) = make_convolutional_layer(batch*steps, h, w, c, hidden_filters, 1, 3, 1, 1, activation, batch_normalize, 0, 0, 0);
+ l.input_layer->batch = batch;
+
+ l.self_layer = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.self_layer) = make_convolutional_layer(batch*steps, h, w, hidden_filters, hidden_filters, 1, 3, 1, 1, activation, batch_normalize, 0, 0, 0);
+ l.self_layer->batch = batch;
+
+ l.output_layer = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.output_layer) = make_convolutional_layer(batch*steps, h, w, hidden_filters, output_filters, 1, 3, 1, 1, activation, batch_normalize, 0, 0, 0);
+ l.output_layer->batch = batch;
+
+ l.output = l.output_layer->output;
+ l.delta = l.output_layer->delta;
+
+ l.forward = forward_crnn_layer;
+ l.backward = backward_crnn_layer;
+ l.update = update_crnn_layer;
+
+#ifdef GPU
+ l.forward_gpu = forward_crnn_layer_gpu;
+ l.backward_gpu = backward_crnn_layer_gpu;
+ l.update_gpu = update_crnn_layer_gpu;
+
+ l.state_gpu = cuda_make_array(l.state, l.hidden*batch*(steps+1));
+ l.output_gpu = l.output_layer->output_gpu;
+ l.delta_gpu = l.output_layer->delta_gpu;
+#endif
+
+ return l;
+}
+
+void update_crnn_layer(layer l, update_args a)
+{
+ update_convolutional_layer(*(l.input_layer), a);
+ update_convolutional_layer(*(l.self_layer), a);
+ update_convolutional_layer(*(l.output_layer), a);
+}
+
+void forward_crnn_layer(layer l, network net)
+{
+ network s = net;
+ s.train = net.train;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+
+ fill_cpu(l.outputs * l.batch * l.steps, 0, output_layer.delta, 1);
+ fill_cpu(l.hidden * l.batch * l.steps, 0, self_layer.delta, 1);
+ fill_cpu(l.hidden * l.batch * l.steps, 0, input_layer.delta, 1);
+ if(net.train) fill_cpu(l.hidden * l.batch, 0, l.state, 1);
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input = net.input;
+ forward_convolutional_layer(input_layer, s);
+
+ s.input = l.state;
+ forward_convolutional_layer(self_layer, s);
+
+ float *old_state = l.state;
+ if(net.train) l.state += l.hidden*l.batch;
+ if(l.shortcut){
+ copy_cpu(l.hidden * l.batch, old_state, 1, l.state, 1);
+ }else{
+ fill_cpu(l.hidden * l.batch, 0, l.state, 1);
+ }
+ axpy_cpu(l.hidden * l.batch, 1, input_layer.output, 1, l.state, 1);
+ axpy_cpu(l.hidden * l.batch, 1, self_layer.output, 1, l.state, 1);
+
+ s.input = l.state;
+ forward_convolutional_layer(output_layer, s);
+
+ net.input += l.inputs*l.batch;
+ increment_layer(&input_layer, 1);
+ increment_layer(&self_layer, 1);
+ increment_layer(&output_layer, 1);
+ }
+}
+
+void backward_crnn_layer(layer l, network net)
+{
+ network s = net;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+
+ increment_layer(&input_layer, l.steps-1);
+ increment_layer(&self_layer, l.steps-1);
+ increment_layer(&output_layer, l.steps-1);
+
+ l.state += l.hidden*l.batch*l.steps;
+ for (i = l.steps-1; i >= 0; --i) {
+ copy_cpu(l.hidden * l.batch, input_layer.output, 1, l.state, 1);
+ axpy_cpu(l.hidden * l.batch, 1, self_layer.output, 1, l.state, 1);
+
+ s.input = l.state;
+ s.delta = self_layer.delta;
+ backward_convolutional_layer(output_layer, s);
+
+ l.state -= l.hidden*l.batch;
+ /*
+ if(i > 0){
+ copy_cpu(l.hidden * l.batch, input_layer.output - l.hidden*l.batch, 1, l.state, 1);
+ axpy_cpu(l.hidden * l.batch, 1, self_layer.output - l.hidden*l.batch, 1, l.state, 1);
+ }else{
+ fill_cpu(l.hidden * l.batch, 0, l.state, 1);
+ }
+ */
+
+ s.input = l.state;
+ s.delta = self_layer.delta - l.hidden*l.batch;
+ if (i == 0) s.delta = 0;
+ backward_convolutional_layer(self_layer, s);
+
+ copy_cpu(l.hidden*l.batch, self_layer.delta, 1, input_layer.delta, 1);
+ if (i > 0 && l.shortcut) axpy_cpu(l.hidden*l.batch, 1, self_layer.delta, 1, self_layer.delta - l.hidden*l.batch, 1);
+ s.input = net.input + i*l.inputs*l.batch;
+ if(net.delta) s.delta = net.delta + i*l.inputs*l.batch;
+ else s.delta = 0;
+ backward_convolutional_layer(input_layer, s);
+
+ increment_layer(&input_layer, -1);
+ increment_layer(&self_layer, -1);
+ increment_layer(&output_layer, -1);
+ }
+}
+
+#ifdef GPU
+
+void pull_crnn_layer(layer l)
+{
+ pull_convolutional_layer(*(l.input_layer));
+ pull_convolutional_layer(*(l.self_layer));
+ pull_convolutional_layer(*(l.output_layer));
+}
+
+void push_crnn_layer(layer l)
+{
+ push_convolutional_layer(*(l.input_layer));
+ push_convolutional_layer(*(l.self_layer));
+ push_convolutional_layer(*(l.output_layer));
+}
+
+void update_crnn_layer_gpu(layer l, update_args a)
+{
+ update_convolutional_layer_gpu(*(l.input_layer), a);
+ update_convolutional_layer_gpu(*(l.self_layer), a);
+ update_convolutional_layer_gpu(*(l.output_layer), a);
+}
+
+void forward_crnn_layer_gpu(layer l, network net)
+{
+ network s = net;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+
+ fill_gpu(l.outputs * l.batch * l.steps, 0, output_layer.delta_gpu, 1);
+ fill_gpu(l.hidden * l.batch * l.steps, 0, self_layer.delta_gpu, 1);
+ fill_gpu(l.hidden * l.batch * l.steps, 0, input_layer.delta_gpu, 1);
+ if(net.train) fill_gpu(l.hidden * l.batch, 0, l.state_gpu, 1);
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input_gpu = net.input_gpu;
+ forward_convolutional_layer_gpu(input_layer, s);
+
+ s.input_gpu = l.state_gpu;
+ forward_convolutional_layer_gpu(self_layer, s);
+
+ float *old_state = l.state_gpu;
+ if(net.train) l.state_gpu += l.hidden*l.batch;
+ if(l.shortcut){
+ copy_gpu(l.hidden * l.batch, old_state, 1, l.state_gpu, 1);
+ }else{
+ fill_gpu(l.hidden * l.batch, 0, l.state_gpu, 1);
+ }
+ axpy_gpu(l.hidden * l.batch, 1, input_layer.output_gpu, 1, l.state_gpu, 1);
+ axpy_gpu(l.hidden * l.batch, 1, self_layer.output_gpu, 1, l.state_gpu, 1);
+
+ s.input_gpu = l.state_gpu;
+ forward_convolutional_layer_gpu(output_layer, s);
+
+ net.input_gpu += l.inputs*l.batch;
+ increment_layer(&input_layer, 1);
+ increment_layer(&self_layer, 1);
+ increment_layer(&output_layer, 1);
+ }
+}
+
+void backward_crnn_layer_gpu(layer l, network net)
+{
+ network s = net;
+ s.train = net.train;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+ increment_layer(&input_layer, l.steps - 1);
+ increment_layer(&self_layer, l.steps - 1);
+ increment_layer(&output_layer, l.steps - 1);
+ l.state_gpu += l.hidden*l.batch*l.steps;
+ for (i = l.steps-1; i >= 0; --i) {
+ copy_gpu(l.hidden * l.batch, input_layer.output_gpu, 1, l.state_gpu, 1);
+ axpy_gpu(l.hidden * l.batch, 1, self_layer.output_gpu, 1, l.state_gpu, 1);
+
+ s.input_gpu = l.state_gpu;
+ s.delta_gpu = self_layer.delta_gpu;
+ backward_convolutional_layer_gpu(output_layer, s);
+
+ l.state_gpu -= l.hidden*l.batch;
+
+ s.input_gpu = l.state_gpu;
+ s.delta_gpu = self_layer.delta_gpu - l.hidden*l.batch;
+ if (i == 0) s.delta_gpu = 0;
+ backward_convolutional_layer_gpu(self_layer, s);
+
+ copy_gpu(l.hidden*l.batch, self_layer.delta_gpu, 1, input_layer.delta_gpu, 1);
+ if (i > 0 && l.shortcut) axpy_gpu(l.hidden*l.batch, 1, self_layer.delta_gpu, 1, self_layer.delta_gpu - l.hidden*l.batch, 1);
+ s.input_gpu = net.input_gpu + i*l.inputs*l.batch;
+ if(net.delta_gpu) s.delta_gpu = net.delta_gpu + i*l.inputs*l.batch;
+ else s.delta_gpu = 0;
+ backward_convolutional_layer_gpu(input_layer, s);
+
+ increment_layer(&input_layer, -1);
+ increment_layer(&self_layer, -1);
+ increment_layer(&output_layer, -1);
+ }
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crnn_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crnn_layer.h"
new file mode 100644
index 00000000..515f3783
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crnn_layer.h"
@@ -0,0 +1,24 @@
+
+#ifndef CRNN_LAYER_H
+#define CRNN_LAYER_H
+
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_crnn_layer(int batch, int h, int w, int c, int hidden_filters, int output_filters, int steps, ACTIVATION activation, int batch_normalize);
+
+void forward_crnn_layer(layer l, network net);
+void backward_crnn_layer(layer l, network net);
+void update_crnn_layer(layer l, update_args a);
+
+#ifdef GPU
+void forward_crnn_layer_gpu(layer l, network net);
+void backward_crnn_layer_gpu(layer l, network net);
+void update_crnn_layer_gpu(layer l, update_args a);
+void push_crnn_layer(layer l);
+void pull_crnn_layer(layer l);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer.c"
new file mode 100644
index 00000000..3b918529
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer.c"
@@ -0,0 +1,103 @@
+#include "crop_layer.h"
+#include "cuda.h"
+#include
+
+image get_crop_image(crop_layer l)
+{
+ int h = l.out_h;
+ int w = l.out_w;
+ int c = l.out_c;
+ return float_to_image(w,h,c,l.output);
+}
+
+void backward_crop_layer(const crop_layer l, network net){}
+void backward_crop_layer_gpu(const crop_layer l, network net){}
+
+crop_layer make_crop_layer(int batch, int h, int w, int c, int crop_height, int crop_width, int flip, float angle, float saturation, float exposure)
+{
+ fprintf(stderr, "Crop Layer: %d x %d -> %d x %d x %d image\n", h,w,crop_height,crop_width,c);
+ crop_layer l = {0};
+ l.type = CROP;
+ l.batch = batch;
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.scale = (float)crop_height / h;
+ l.flip = flip;
+ l.angle = angle;
+ l.saturation = saturation;
+ l.exposure = exposure;
+ l.out_w = crop_width;
+ l.out_h = crop_height;
+ l.out_c = c;
+ l.inputs = l.w * l.h * l.c;
+ l.outputs = l.out_w * l.out_h * l.out_c;
+ l.output = calloc(l.outputs*batch, sizeof(float));
+ l.forward = forward_crop_layer;
+ l.backward = backward_crop_layer;
+
+ #ifdef GPU
+ l.forward_gpu = forward_crop_layer_gpu;
+ l.backward_gpu = backward_crop_layer_gpu;
+ l.output_gpu = cuda_make_array(l.output, l.outputs*batch);
+ l.rand_gpu = cuda_make_array(0, l.batch*8);
+ #endif
+ return l;
+}
+
+void resize_crop_layer(layer *l, int w, int h)
+{
+ l->w = w;
+ l->h = h;
+
+ l->out_w = l->scale*w;
+ l->out_h = l->scale*h;
+
+ l->inputs = l->w * l->h * l->c;
+ l->outputs = l->out_h * l->out_w * l->out_c;
+
+ l->output = realloc(l->output, l->batch*l->outputs*sizeof(float));
+ #ifdef GPU
+ cuda_free(l->output_gpu);
+ l->output_gpu = cuda_make_array(l->output, l->outputs*l->batch);
+ #endif
+}
+
+
+void forward_crop_layer(const crop_layer l, network net)
+{
+ int i,j,c,b,row,col;
+ int index;
+ int count = 0;
+ int flip = (l.flip && rand()%2);
+ int dh = rand()%(l.h - l.out_h + 1);
+ int dw = rand()%(l.w - l.out_w + 1);
+ float scale = 2;
+ float trans = -1;
+ if(l.noadjust){
+ scale = 1;
+ trans = 0;
+ }
+ if(!net.train){
+ flip = 0;
+ dh = (l.h - l.out_h)/2;
+ dw = (l.w - l.out_w)/2;
+ }
+ for(b = 0; b < l.batch; ++b){
+ for(c = 0; c < l.c; ++c){
+ for(i = 0; i < l.out_h; ++i){
+ for(j = 0; j < l.out_w; ++j){
+ if(flip){
+ col = l.w - dw - j - 1;
+ }else{
+ col = j + dw;
+ }
+ row = i + dh;
+ index = col+l.w*(row+l.h*(c + l.c*b));
+ l.output[count++] = net.input[index]*scale + trans;
+ }
+ }
+ }
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer.h"
new file mode 100644
index 00000000..3b5883c4
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer.h"
@@ -0,0 +1,20 @@
+#ifndef CROP_LAYER_H
+#define CROP_LAYER_H
+
+#include "image.h"
+#include "layer.h"
+#include "network.h"
+
+typedef layer crop_layer;
+
+image get_crop_image(crop_layer l);
+crop_layer make_crop_layer(int batch, int h, int w, int c, int crop_height, int crop_width, int flip, float angle, float saturation, float exposure);
+void forward_crop_layer(const crop_layer l, network net);
+void resize_crop_layer(layer *l, int w, int h);
+
+#ifdef GPU
+void forward_crop_layer_gpu(crop_layer l, network net);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer_kernels.cu"
new file mode 100644
index 00000000..b5b9f554
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/crop_layer_kernels.cu"
@@ -0,0 +1,225 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "crop_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "image.h"
+}
+
+__device__ float get_pixel_kernel(float *image, int w, int h, int x, int y, int c)
+{
+ if(x < 0 || x >= w || y < 0 || y >= h) return 0;
+ return image[x + w*(y + c*h)];
+}
+
+__device__ float3 rgb_to_hsv_kernel(float3 rgb)
+{
+ float r = rgb.x;
+ float g = rgb.y;
+ float b = rgb.z;
+
+ float h, s, v;
+ float max = (r > g) ? ( (r > b) ? r : b) : ( (g > b) ? g : b);
+ float min = (r < g) ? ( (r < b) ? r : b) : ( (g < b) ? g : b);
+ float delta = max - min;
+ v = max;
+ if(max == 0){
+ s = 0;
+ h = -1;
+ }else{
+ s = delta/max;
+ if(r == max){
+ h = (g - b) / delta;
+ } else if (g == max) {
+ h = 2 + (b - r) / delta;
+ } else {
+ h = 4 + (r - g) / delta;
+ }
+ if (h < 0) h += 6;
+ }
+ return make_float3(h, s, v);
+}
+
+__device__ float3 hsv_to_rgb_kernel(float3 hsv)
+{
+ float h = hsv.x;
+ float s = hsv.y;
+ float v = hsv.z;
+
+ float r, g, b;
+ float f, p, q, t;
+
+ if (s == 0) {
+ r = g = b = v;
+ } else {
+ int index = (int) floorf(h);
+ f = h - index;
+ p = v*(1-s);
+ q = v*(1-s*f);
+ t = v*(1-s*(1-f));
+ if(index == 0){
+ r = v; g = t; b = p;
+ } else if(index == 1){
+ r = q; g = v; b = p;
+ } else if(index == 2){
+ r = p; g = v; b = t;
+ } else if(index == 3){
+ r = p; g = q; b = v;
+ } else if(index == 4){
+ r = t; g = p; b = v;
+ } else {
+ r = v; g = p; b = q;
+ }
+ }
+ r = (r < 0) ? 0 : ((r > 1) ? 1 : r);
+ g = (g < 0) ? 0 : ((g > 1) ? 1 : g);
+ b = (b < 0) ? 0 : ((b > 1) ? 1 : b);
+ return make_float3(r, g, b);
+}
+
+__device__ float bilinear_interpolate_kernel(float *image, int w, int h, float x, float y, int c)
+{
+ int ix = (int) floorf(x);
+ int iy = (int) floorf(y);
+
+ float dx = x - ix;
+ float dy = y - iy;
+
+ float val = (1-dy) * (1-dx) * get_pixel_kernel(image, w, h, ix, iy, c) +
+ dy * (1-dx) * get_pixel_kernel(image, w, h, ix, iy+1, c) +
+ (1-dy) * dx * get_pixel_kernel(image, w, h, ix+1, iy, c) +
+ dy * dx * get_pixel_kernel(image, w, h, ix+1, iy+1, c);
+ return val;
+}
+
+__global__ void levels_image_kernel(float *image, float *rand, int batch, int w, int h, int train, float saturation, float exposure, float translate, float scale, float shift)
+{
+ int size = batch * w * h;
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= size) return;
+ int x = id % w;
+ id /= w;
+ int y = id % h;
+ id /= h;
+ float rshift = rand[0];
+ float gshift = rand[1];
+ float bshift = rand[2];
+ float r0 = rand[8*id + 0];
+ float r1 = rand[8*id + 1];
+ float r2 = rand[8*id + 2];
+ float r3 = rand[8*id + 3];
+
+ saturation = r0*(saturation - 1) + 1;
+ saturation = (r1 > .5f) ? 1.f/saturation : saturation;
+ exposure = r2*(exposure - 1) + 1;
+ exposure = (r3 > .5f) ? 1.f/exposure : exposure;
+
+ size_t offset = id * h * w * 3;
+ image += offset;
+ float r = image[x + w*(y + h*0)];
+ float g = image[x + w*(y + h*1)];
+ float b = image[x + w*(y + h*2)];
+ float3 rgb = make_float3(r,g,b);
+ if(train){
+ float3 hsv = rgb_to_hsv_kernel(rgb);
+ hsv.y *= saturation;
+ hsv.z *= exposure;
+ rgb = hsv_to_rgb_kernel(hsv);
+ } else {
+ shift = 0;
+ }
+ image[x + w*(y + h*0)] = rgb.x*scale + translate + (rshift - .5f)*shift;
+ image[x + w*(y + h*1)] = rgb.y*scale + translate + (gshift - .5f)*shift;
+ image[x + w*(y + h*2)] = rgb.z*scale + translate + (bshift - .5f)*shift;
+}
+
+__global__ void forward_crop_layer_kernel(float *input, float *rand, int size, int c, int h, int w, int crop_height, int crop_width, int train, int flip, float angle, float *output)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= size) return;
+
+ float cx = w/2.f;
+ float cy = h/2.f;
+
+ int count = id;
+ int j = id % crop_width;
+ id /= crop_width;
+ int i = id % crop_height;
+ id /= crop_height;
+ int k = id % c;
+ id /= c;
+ int b = id;
+
+ float r4 = rand[8*b + 4];
+ float r5 = rand[8*b + 5];
+ float r6 = rand[8*b + 6];
+ float r7 = rand[8*b + 7];
+
+ float dw = (w - crop_width)*r4;
+ float dh = (h - crop_height)*r5;
+ flip = (flip && (r6 > .5f));
+ angle = 2*angle*r7 - angle;
+ if(!train){
+ dw = (w - crop_width)/2.f;
+ dh = (h - crop_height)/2.f;
+ flip = 0;
+ angle = 0;
+ }
+
+ input += w*h*c*b;
+
+ float x = (flip) ? w - dw - j - 1 : j + dw;
+ float y = i + dh;
+
+ float rx = cosf(angle)*(x-cx) - sinf(angle)*(y-cy) + cx;
+ float ry = sinf(angle)*(x-cx) + cosf(angle)*(y-cy) + cy;
+
+ output[count] = bilinear_interpolate_kernel(input, w, h, rx, ry, k);
+}
+
+extern "C" void forward_crop_layer_gpu(crop_layer layer, network net)
+{
+ cuda_random(layer.rand_gpu, layer.batch*8);
+
+ float radians = layer.angle*3.14159265f/180.f;
+
+ float scale = 2;
+ float translate = -1;
+ if(layer.noadjust){
+ scale = 1;
+ translate = 0;
+ }
+
+ int size = layer.batch * layer.w * layer.h;
+
+ levels_image_kernel<<>>(net.input_gpu, layer.rand_gpu, layer.batch, layer.w, layer.h, net.train, layer.saturation, layer.exposure, translate, scale, layer.shift);
+ check_error(cudaPeekAtLastError());
+
+ size = layer.batch*layer.c*layer.out_w*layer.out_h;
+
+ forward_crop_layer_kernel<<>>(net.input_gpu, layer.rand_gpu, size, layer.c, layer.h, layer.w, layer.out_h, layer.out_w, net.train, layer.flip, radians, layer.output_gpu);
+ check_error(cudaPeekAtLastError());
+
+/*
+ cuda_pull_array(layer.output_gpu, layer.output, size);
+ image im = float_to_image(layer.crop_width, layer.crop_height, layer.c, layer.output + 0*(size/layer.batch));
+ image im2 = float_to_image(layer.crop_width, layer.crop_height, layer.c, layer.output + 1*(size/layer.batch));
+ image im3 = float_to_image(layer.crop_width, layer.crop_height, layer.c, layer.output + 2*(size/layer.batch));
+
+ translate_image(im, -translate);
+ scale_image(im, 1/scale);
+ translate_image(im2, -translate);
+ scale_image(im2, 1/scale);
+ translate_image(im3, -translate);
+ scale_image(im3, 1/scale);
+
+ show_image(im, "cropped");
+ show_image(im2, "cropped2");
+ show_image(im3, "cropped3");
+ cvWaitKey(0);
+ */
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cuda.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cuda.c"
new file mode 100644
index 00000000..48aba6e4
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cuda.c"
@@ -0,0 +1,178 @@
+int gpu_index = 0;
+
+#ifdef GPU
+
+#include "cuda.h"
+#include "utils.h"
+#include "blas.h"
+#include
+#include
+#include
+
+void cuda_set_device(int n)
+{
+ gpu_index = n;
+ cudaError_t status = cudaSetDevice(n);
+ check_error(status);
+}
+
+int cuda_get_device()
+{
+ int n = 0;
+ cudaError_t status = cudaGetDevice(&n);
+ check_error(status);
+ return n;
+}
+
+void check_error(cudaError_t status)
+{
+ //cudaDeviceSynchronize();
+ cudaError_t status2 = cudaGetLastError();
+ if (status != cudaSuccess)
+ {
+ const char *s = cudaGetErrorString(status);
+ char buffer[256];
+ printf("CUDA Error: %s\n", s);
+ assert(0);
+ snprintf(buffer, 256, "CUDA Error: %s", s);
+ error(buffer);
+ }
+ if (status2 != cudaSuccess)
+ {
+ const char *s = cudaGetErrorString(status);
+ char buffer[256];
+ printf("CUDA Error Prev: %s\n", s);
+ assert(0);
+ snprintf(buffer, 256, "CUDA Error Prev: %s", s);
+ error(buffer);
+ }
+}
+
+dim3 cuda_gridsize(size_t n){
+ size_t k = (n-1) / BLOCK + 1;
+ size_t x = k;
+ size_t y = 1;
+ if(x > 65535){
+ x = ceil(sqrt(k));
+ y = (n-1)/(x*BLOCK) + 1;
+ }
+ dim3 d = {x, y, 1};
+ //printf("%ld %ld %ld %ld\n", n, x, y, x*y*BLOCK);
+ return d;
+}
+
+#ifdef CUDNN
+cudnnHandle_t cudnn_handle()
+{
+ static int init[16] = {0};
+ static cudnnHandle_t handle[16];
+ int i = cuda_get_device();
+ if(!init[i]) {
+ cudnnCreate(&handle[i]);
+ init[i] = 1;
+ }
+ return handle[i];
+}
+#endif
+
+cublasHandle_t blas_handle()
+{
+ static int init[16] = {0};
+ static cublasHandle_t handle[16];
+ int i = cuda_get_device();
+ if(!init[i]) {
+ cublasCreate(&handle[i]);
+ init[i] = 1;
+ }
+ return handle[i];
+}
+
+float *cuda_make_array(float *x, size_t n)
+{
+ float *x_gpu;
+ size_t size = sizeof(float)*n;
+ cudaError_t status = cudaMalloc((void **)&x_gpu, size);
+ check_error(status);
+ if(x){
+ status = cudaMemcpy(x_gpu, x, size, cudaMemcpyHostToDevice);
+ check_error(status);
+ } else {
+ fill_gpu(n, 0, x_gpu, 1);
+ }
+ if(!x_gpu) error("Cuda malloc failed\n");
+ return x_gpu;
+}
+
+void cuda_random(float *x_gpu, size_t n)
+{
+ static curandGenerator_t gen[16];
+ static int init[16] = {0};
+ int i = cuda_get_device();
+ if(!init[i]){
+ curandCreateGenerator(&gen[i], CURAND_RNG_PSEUDO_DEFAULT);
+ curandSetPseudoRandomGeneratorSeed(gen[i], time(0));
+ init[i] = 1;
+ }
+ curandGenerateUniform(gen[i], x_gpu, n);
+ check_error(cudaPeekAtLastError());
+}
+
+float cuda_compare(float *x_gpu, float *x, size_t n, char *s)
+{
+ float *tmp = calloc(n, sizeof(float));
+ cuda_pull_array(x_gpu, tmp, n);
+ //int i;
+ //for(i = 0; i < n; ++i) printf("%f %f\n", tmp[i], x[i]);
+ axpy_cpu(n, -1, x, 1, tmp, 1);
+ float err = dot_cpu(n, tmp, 1, tmp, 1);
+ printf("Error %s: %f\n", s, sqrt(err/n));
+ free(tmp);
+ return err;
+}
+
+int *cuda_make_int_array(int *x, size_t n)
+{
+ int *x_gpu;
+ size_t size = sizeof(int)*n;
+ cudaError_t status = cudaMalloc((void **)&x_gpu, size);
+ check_error(status);
+ if(x){
+ status = cudaMemcpy(x_gpu, x, size, cudaMemcpyHostToDevice);
+ check_error(status);
+ }
+ if(!x_gpu) error("Cuda malloc failed\n");
+ return x_gpu;
+}
+
+void cuda_free(float *x_gpu)
+{
+ cudaError_t status = cudaFree(x_gpu);
+ check_error(status);
+}
+
+void cuda_push_array(float *x_gpu, float *x, size_t n)
+{
+ size_t size = sizeof(float)*n;
+ cudaError_t status = cudaMemcpy(x_gpu, x, size, cudaMemcpyHostToDevice);
+ check_error(status);
+}
+
+void cuda_pull_array(float *x_gpu, float *x, size_t n)
+{
+ size_t size = sizeof(float)*n;
+ cudaError_t status = cudaMemcpy(x, x_gpu, size, cudaMemcpyDeviceToHost);
+ check_error(status);
+}
+
+float cuda_mag_array(float *x_gpu, size_t n)
+{
+ float *temp = calloc(n, sizeof(float));
+ cuda_pull_array(x_gpu, temp, n);
+ float m = mag_array(temp, n);
+ free(temp);
+ return m;
+}
+#else
+void cuda_set_device(int n){}
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cuda.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cuda.h"
new file mode 100644
index 00000000..a1bc2160
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/cuda.h"
@@ -0,0 +1,20 @@
+#ifndef CUDA_H
+#define CUDA_H
+
+#include "darknet.h"
+
+#ifdef GPU
+
+void check_error(cudaError_t status);
+cublasHandle_t blas_handle();
+int *cuda_make_int_array(int *x, size_t n);
+void cuda_random(float *x_gpu, size_t n);
+float cuda_compare(float *x_gpu, float *x, size_t n, char *s);
+dim3 cuda_gridsize(size_t n);
+
+#ifdef CUDNN
+cudnnHandle_t cudnn_handle();
+#endif
+
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/data.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/data.c"
new file mode 100644
index 00000000..59051b4e
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/data.c"
@@ -0,0 +1,1685 @@
+#include "data.h"
+#include "utils.h"
+#include "image.h"
+#include "cuda.h"
+
+#include
+#include
+#include
+
+pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+
+list *get_paths(char *filename)
+{
+ char *path;
+ FILE *file = fopen(filename, "r");
+ if(!file) file_error(filename);
+ list *lines = make_list();
+ while((path=fgetl(file))){
+ list_insert(lines, path);
+ }
+ fclose(file);
+ return lines;
+}
+
+/*
+char **get_random_paths_indexes(char **paths, int n, int m, int *indexes)
+{
+ char **random_paths = calloc(n, sizeof(char*));
+ int i;
+ pthread_mutex_lock(&mutex);
+ for(i = 0; i < n; ++i){
+ int index = rand()%m;
+ indexes[i] = index;
+ random_paths[i] = paths[index];
+ if(i == 0) printf("%s\n", paths[index]);
+ }
+ pthread_mutex_unlock(&mutex);
+ return random_paths;
+}
+*/
+
+char **get_random_paths(char **paths, int n, int m)
+{
+ char **random_paths = calloc(n, sizeof(char*));
+ int i;
+ pthread_mutex_lock(&mutex);
+ for(i = 0; i < n; ++i){
+ int index = rand()%m;
+ random_paths[i] = paths[index];
+ //if(i == 0) printf("%s\n", paths[index]);
+ }
+ pthread_mutex_unlock(&mutex);
+ return random_paths;
+}
+
+char **find_replace_paths(char **paths, int n, char *find, char *replace)
+{
+ char **replace_paths = calloc(n, sizeof(char*));
+ int i;
+ for(i = 0; i < n; ++i){
+ char replaced[4096];
+ find_replace(paths[i], find, replace, replaced);
+ replace_paths[i] = copy_string(replaced);
+ }
+ return replace_paths;
+}
+
+matrix load_image_paths_gray(char **paths, int n, int w, int h)
+{
+ int i;
+ matrix X;
+ X.rows = n;
+ X.vals = calloc(X.rows, sizeof(float*));
+ X.cols = 0;
+
+ for(i = 0; i < n; ++i){
+ image im = load_image(paths[i], w, h, 3);
+
+ image gray = grayscale_image(im);
+ free_image(im);
+ im = gray;
+
+ X.vals[i] = im.data;
+ X.cols = im.h*im.w*im.c;
+ }
+ return X;
+}
+
+matrix load_image_paths(char **paths, int n, int w, int h)
+{
+ int i;
+ matrix X;
+ X.rows = n;
+ X.vals = calloc(X.rows, sizeof(float*));
+ X.cols = 0;
+
+ for(i = 0; i < n; ++i){
+ image im = load_image_color(paths[i], w, h);
+ X.vals[i] = im.data;
+ X.cols = im.h*im.w*im.c;
+ }
+ return X;
+}
+
+matrix load_image_augment_paths(char **paths, int n, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure, int center)
+{
+ int i;
+ matrix X;
+ X.rows = n;
+ X.vals = calloc(X.rows, sizeof(float*));
+ X.cols = 0;
+
+ for(i = 0; i < n; ++i){
+ image im = load_image_color(paths[i], 0, 0);
+ image crop;
+ if(center){
+ crop = center_crop_image(im, size, size);
+ } else {
+ crop = random_augment_image(im, angle, aspect, min, max, size, size);
+ }
+ int flip = rand()%2;
+ if (flip) flip_image(crop);
+ random_distort_image(crop, hue, saturation, exposure);
+
+ /*
+ show_image(im, "orig");
+ show_image(crop, "crop");
+ cvWaitKey(0);
+ */
+ //grayscale_image_3c(crop);
+ free_image(im);
+ X.vals[i] = crop.data;
+ X.cols = crop.h*crop.w*crop.c;
+ }
+ return X;
+}
+
+
+box_label *read_boxes(char *filename, int *n)
+{
+ FILE *file = fopen(filename, "r");
+ if(!file) file_error(filename);
+ float x, y, h, w;
+ int id;
+ int count = 0;
+ int size = 64;
+ box_label *boxes = calloc(size, sizeof(box_label));
+ while(fscanf(file, "%d %f %f %f %f", &id, &x, &y, &w, &h) == 5){
+ if(count == size) {
+ size = size * 2;
+ boxes = realloc(boxes, size*sizeof(box_label));
+ }
+ boxes[count].id = id;
+ boxes[count].x = x;
+ boxes[count].y = y;
+ boxes[count].h = h;
+ boxes[count].w = w;
+ boxes[count].left = x - w/2;
+ boxes[count].right = x + w/2;
+ boxes[count].top = y - h/2;
+ boxes[count].bottom = y + h/2;
+ ++count;
+ }
+ fclose(file);
+ *n = count;
+ return boxes;
+}
+
+void randomize_boxes(box_label *b, int n)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ box_label swap = b[i];
+ int index = rand()%n;
+ b[i] = b[index];
+ b[index] = swap;
+ }
+}
+
+void correct_boxes(box_label *boxes, int n, float dx, float dy, float sx, float sy, int flip)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ if(boxes[i].x == 0 && boxes[i].y == 0) {
+ boxes[i].x = 999999;
+ boxes[i].y = 999999;
+ boxes[i].w = 999999;
+ boxes[i].h = 999999;
+ continue;
+ }
+ boxes[i].left = boxes[i].left * sx - dx;
+ boxes[i].right = boxes[i].right * sx - dx;
+ boxes[i].top = boxes[i].top * sy - dy;
+ boxes[i].bottom = boxes[i].bottom* sy - dy;
+
+ if(flip){
+ float swap = boxes[i].left;
+ boxes[i].left = 1. - boxes[i].right;
+ boxes[i].right = 1. - swap;
+ }
+
+ boxes[i].left = constrain(0, 1, boxes[i].left);
+ boxes[i].right = constrain(0, 1, boxes[i].right);
+ boxes[i].top = constrain(0, 1, boxes[i].top);
+ boxes[i].bottom = constrain(0, 1, boxes[i].bottom);
+
+ boxes[i].x = (boxes[i].left+boxes[i].right)/2;
+ boxes[i].y = (boxes[i].top+boxes[i].bottom)/2;
+ boxes[i].w = (boxes[i].right - boxes[i].left);
+ boxes[i].h = (boxes[i].bottom - boxes[i].top);
+
+ boxes[i].w = constrain(0, 1, boxes[i].w);
+ boxes[i].h = constrain(0, 1, boxes[i].h);
+ }
+}
+
+void fill_truth_swag(char *path, float *truth, int classes, int flip, float dx, float dy, float sx, float sy)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+
+ int count = 0;
+ box_label *boxes = read_boxes(labelpath, &count);
+ randomize_boxes(boxes, count);
+ correct_boxes(boxes, count, dx, dy, sx, sy, flip);
+ float x,y,w,h;
+ int id;
+ int i;
+
+ for (i = 0; i < count && i < 90; ++i) {
+ x = boxes[i].x;
+ y = boxes[i].y;
+ w = boxes[i].w;
+ h = boxes[i].h;
+ id = boxes[i].id;
+
+ if (w < .0 || h < .0) continue;
+
+ int index = (4+classes) * i;
+
+ truth[index++] = x;
+ truth[index++] = y;
+ truth[index++] = w;
+ truth[index++] = h;
+
+ if (id < classes) truth[index+id] = 1;
+ }
+ free(boxes);
+}
+
+void fill_truth_region(char *path, float *truth, int classes, int num_boxes, int flip, float dx, float dy, float sx, float sy)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".png", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ int count = 0;
+ box_label *boxes = read_boxes(labelpath, &count);
+ randomize_boxes(boxes, count);
+ correct_boxes(boxes, count, dx, dy, sx, sy, flip);
+ float x,y,w,h;
+ int id;
+ int i;
+
+ for (i = 0; i < count; ++i) {
+ x = boxes[i].x;
+ y = boxes[i].y;
+ w = boxes[i].w;
+ h = boxes[i].h;
+ id = boxes[i].id;
+
+ if (w < .005 || h < .005) continue;
+
+ int col = (int)(x*num_boxes);
+ int row = (int)(y*num_boxes);
+
+ x = x*num_boxes - col;
+ y = y*num_boxes - row;
+
+ int index = (col+row*num_boxes)*(5+classes);
+ if (truth[index]) continue;
+ truth[index++] = 1;
+
+ if (id < classes) truth[index+id] = 1;
+ index += classes;
+
+ truth[index++] = x;
+ truth[index++] = y;
+ truth[index++] = w;
+ truth[index++] = h;
+ }
+ free(boxes);
+}
+
+void load_rle(image im, int *rle, int n)
+{
+ int count = 0;
+ int curr = 0;
+ int i,j;
+ for(i = 0; i < n; ++i){
+ for(j = 0; j < rle[i]; ++j){
+ im.data[count++] = curr;
+ }
+ curr = 1 - curr;
+ }
+ for(; count < im.h*im.w*im.c; ++count){
+ im.data[count] = curr;
+ }
+}
+
+void or_image(image src, image dest, int c)
+{
+ int i;
+ for(i = 0; i < src.w*src.h; ++i){
+ if(src.data[i]) dest.data[dest.w*dest.h*c + i] = 1;
+ }
+}
+
+void exclusive_image(image src)
+{
+ int k, j, i;
+ int s = src.w*src.h;
+ for(k = 0; k < src.c-1; ++k){
+ for(i = 0; i < s; ++i){
+ if (src.data[k*s + i]){
+ for(j = k+1; j < src.c; ++j){
+ src.data[j*s + i] = 0;
+ }
+ }
+ }
+ }
+}
+
+box bound_image(image im)
+{
+ int x,y;
+ int minx = im.w;
+ int miny = im.h;
+ int maxx = 0;
+ int maxy = 0;
+ for(y = 0; y < im.h; ++y){
+ for(x = 0; x < im.w; ++x){
+ if(im.data[y*im.w + x]){
+ minx = (x < minx) ? x : minx;
+ miny = (y < miny) ? y : miny;
+ maxx = (x > maxx) ? x : maxx;
+ maxy = (y > maxy) ? y : maxy;
+ }
+ }
+ }
+ box b = {minx, miny, maxx-minx + 1, maxy-miny + 1};
+ //printf("%f %f %f %f\n", b.x, b.y, b.w, b.h);
+ return b;
+}
+
+void fill_truth_iseg(char *path, int num_boxes, float *truth, int classes, int w, int h, augment_args aug, int flip, int mw, int mh)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "mask", labelpath);
+ find_replace(labelpath, "JPEGImages", "mask", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ FILE *file = fopen(labelpath, "r");
+ if(!file) file_error(labelpath);
+ char buff[32788];
+ int id;
+ int i = 0;
+ int j;
+ image part = make_image(w, h, 1);
+ while((fscanf(file, "%d %s", &id, buff) == 2) && i < num_boxes){
+ int n = 0;
+ int *rle = read_intlist(buff, &n, 0);
+ load_rle(part, rle, n);
+ image sized = rotate_crop_image(part, aug.rad, aug.scale, aug.w, aug.h, aug.dx, aug.dy, aug.aspect);
+ if(flip) flip_image(sized);
+
+ image mask = resize_image(sized, mw, mh);
+ truth[i*(mw*mh+1)] = id;
+ for(j = 0; j < mw*mh; ++j){
+ truth[i*(mw*mh + 1) + 1 + j] = mask.data[j];
+ }
+ ++i;
+
+ free_image(mask);
+ free_image(sized);
+ free(rle);
+ }
+ if(i < num_boxes) truth[i*(mw*mh+1)] = -1;
+ fclose(file);
+ free_image(part);
+}
+
+void fill_truth_mask(char *path, int num_boxes, float *truth, int classes, int w, int h, augment_args aug, int flip, int mw, int mh)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "mask", labelpath);
+ find_replace(labelpath, "JPEGImages", "mask", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ FILE *file = fopen(labelpath, "r");
+ if(!file) file_error(labelpath);
+ char buff[32788];
+ int id;
+ int i = 0;
+ image part = make_image(w, h, 1);
+ while((fscanf(file, "%d %s", &id, buff) == 2) && i < num_boxes){
+ int n = 0;
+ int *rle = read_intlist(buff, &n, 0);
+ load_rle(part, rle, n);
+ image sized = rotate_crop_image(part, aug.rad, aug.scale, aug.w, aug.h, aug.dx, aug.dy, aug.aspect);
+ if(flip) flip_image(sized);
+ box b = bound_image(sized);
+ if(b.w > 0){
+ image crop = crop_image(sized, b.x, b.y, b.w, b.h);
+ image mask = resize_image(crop, mw, mh);
+ truth[i*(4 + mw*mh + 1) + 0] = (b.x + b.w/2.)/sized.w;
+ truth[i*(4 + mw*mh + 1) + 1] = (b.y + b.h/2.)/sized.h;
+ truth[i*(4 + mw*mh + 1) + 2] = b.w/sized.w;
+ truth[i*(4 + mw*mh + 1) + 3] = b.h/sized.h;
+ int j;
+ for(j = 0; j < mw*mh; ++j){
+ truth[i*(4 + mw*mh + 1) + 4 + j] = mask.data[j];
+ }
+ truth[i*(4 + mw*mh + 1) + 4 + mw*mh] = id;
+ free_image(crop);
+ free_image(mask);
+ ++i;
+ }
+ free_image(sized);
+ free(rle);
+ }
+ fclose(file);
+ free_image(part);
+}
+
+
+void fill_truth_detection(char *path, int num_boxes, float *truth, int classes, int flip, float dx, float dy, float sx, float sy)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+
+ find_replace(labelpath, "raw", "labels", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".png", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ int count = 0;
+ box_label *boxes = read_boxes(labelpath, &count);
+ randomize_boxes(boxes, count);
+ correct_boxes(boxes, count, dx, dy, sx, sy, flip);
+ if(count > num_boxes) count = num_boxes;
+ float x,y,w,h;
+ int id;
+ int i;
+ int sub = 0;
+
+ for (i = 0; i < count; ++i) {
+ x = boxes[i].x;
+ y = boxes[i].y;
+ w = boxes[i].w;
+ h = boxes[i].h;
+ id = boxes[i].id;
+
+ if ((w < .001 || h < .001)) {
+ ++sub;
+ continue;
+ }
+
+ truth[(i-sub)*5+0] = x;
+ truth[(i-sub)*5+1] = y;
+ truth[(i-sub)*5+2] = w;
+ truth[(i-sub)*5+3] = h;
+ truth[(i-sub)*5+4] = id;
+ }
+ free(boxes);
+}
+
+#define NUMCHARS 37
+
+void print_letters(float *pred, int n)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ int index = max_index(pred+i*NUMCHARS, NUMCHARS);
+ printf("%c", int_to_alphanum(index));
+ }
+ printf("\n");
+}
+
+void fill_truth_captcha(char *path, int n, float *truth)
+{
+ char *begin = strrchr(path, '/');
+ ++begin;
+ int i;
+ for(i = 0; i < strlen(begin) && i < n && begin[i] != '.'; ++i){
+ int index = alphanum_to_int(begin[i]);
+ if(index > 35) printf("Bad %c\n", begin[i]);
+ truth[i*NUMCHARS+index] = 1;
+ }
+ for(;i < n; ++i){
+ truth[i*NUMCHARS + NUMCHARS-1] = 1;
+ }
+}
+
+data load_data_captcha(char **paths, int n, int m, int k, int w, int h)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.shallow = 0;
+ d.X = load_image_paths(paths, n, w, h);
+ d.y = make_matrix(n, k*NUMCHARS);
+ int i;
+ for(i = 0; i < n; ++i){
+ fill_truth_captcha(paths[i], k, d.y.vals[i]);
+ }
+ if(m) free(paths);
+ return d;
+}
+
+data load_data_captcha_encode(char **paths, int n, int m, int w, int h)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.shallow = 0;
+ d.X = load_image_paths(paths, n, w, h);
+ d.X.cols = 17100;
+ d.y = d.X;
+ if(m) free(paths);
+ return d;
+}
+
+void fill_truth(char *path, char **labels, int k, float *truth)
+{
+ int i;
+ memset(truth, 0, k*sizeof(float));
+ int count = 0;
+ for(i = 0; i < k; ++i){
+ if(strstr(path, labels[i])){
+ truth[i] = 1;
+ ++count;
+ //printf("%s %s %d\n", path, labels[i], i);
+ }
+ }
+ if(count != 1 && (k != 1 || count != 0)) printf("Too many or too few labels: %d, %s\n", count, path);
+}
+
+void fill_hierarchy(float *truth, int k, tree *hierarchy)
+{
+ int j;
+ for(j = 0; j < k; ++j){
+ if(truth[j]){
+ int parent = hierarchy->parent[j];
+ while(parent >= 0){
+ truth[parent] = 1;
+ parent = hierarchy->parent[parent];
+ }
+ }
+ }
+ int i;
+ int count = 0;
+ for(j = 0; j < hierarchy->groups; ++j){
+ //printf("%d\n", count);
+ int mask = 1;
+ for(i = 0; i < hierarchy->group_size[j]; ++i){
+ if(truth[count + i]){
+ mask = 0;
+ break;
+ }
+ }
+ if (mask) {
+ for(i = 0; i < hierarchy->group_size[j]; ++i){
+ truth[count + i] = SECRET_NUM;
+ }
+ }
+ count += hierarchy->group_size[j];
+ }
+}
+
+matrix load_regression_labels_paths(char **paths, int n, int k)
+{
+ matrix y = make_matrix(n, k);
+ int i,j;
+ for(i = 0; i < n; ++i){
+ char labelpath[4096];
+ find_replace(paths[i], "images", "labels", labelpath);
+ find_replace(labelpath, "JPEGImages", "labels", labelpath);
+ find_replace(labelpath, ".BMP", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPeG", ".txt", labelpath);
+ find_replace(labelpath, ".Jpeg", ".txt", labelpath);
+ find_replace(labelpath, ".PNG", ".txt", labelpath);
+ find_replace(labelpath, ".TIF", ".txt", labelpath);
+ find_replace(labelpath, ".bmp", ".txt", labelpath);
+ find_replace(labelpath, ".jpeg", ".txt", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".png", ".txt", labelpath);
+ find_replace(labelpath, ".tif", ".txt", labelpath);
+
+ FILE *file = fopen(labelpath, "r");
+ for(j = 0; j < k; ++j){
+ fscanf(file, "%f", &(y.vals[i][j]));
+ }
+ fclose(file);
+ }
+ return y;
+}
+
+matrix load_labels_paths(char **paths, int n, char **labels, int k, tree *hierarchy)
+{
+ matrix y = make_matrix(n, k);
+ int i;
+ for(i = 0; i < n && labels; ++i){
+ fill_truth(paths[i], labels, k, y.vals[i]);
+ if(hierarchy){
+ fill_hierarchy(y.vals[i], k, hierarchy);
+ }
+ }
+ return y;
+}
+
+matrix load_tags_paths(char **paths, int n, int k)
+{
+ matrix y = make_matrix(n, k);
+ int i;
+ //int count = 0;
+ for(i = 0; i < n; ++i){
+ char label[4096];
+ find_replace(paths[i], "images", "labels", label);
+ find_replace(label, ".jpg", ".txt", label);
+ FILE *file = fopen(label, "r");
+ if (!file) continue;
+ //++count;
+ int tag;
+ while(fscanf(file, "%d", &tag) == 1){
+ if(tag < k){
+ y.vals[i][tag] = 1;
+ }
+ }
+ fclose(file);
+ }
+ //printf("%d/%d\n", count, n);
+ return y;
+}
+
+char **get_labels(char *filename)
+{
+ list *plist = get_paths(filename);
+ char **labels = (char **)list_to_array(plist);
+ free_list(plist);
+ return labels;
+}
+
+void free_data(data d)
+{
+ if(!d.shallow){
+ free_matrix(d.X);
+ free_matrix(d.y);
+ }else{
+ free(d.X.vals);
+ free(d.y.vals);
+ }
+}
+
+image get_segmentation_image(char *path, int w, int h, int classes)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "mask", labelpath);
+ find_replace(labelpath, "JPEGImages", "mask", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ image mask = make_image(w, h, classes);
+ FILE *file = fopen(labelpath, "r");
+ if(!file) file_error(labelpath);
+ char buff[32788];
+ int id;
+ image part = make_image(w, h, 1);
+ while(fscanf(file, "%d %s", &id, buff) == 2){
+ int n = 0;
+ int *rle = read_intlist(buff, &n, 0);
+ load_rle(part, rle, n);
+ or_image(part, mask, id);
+ free(rle);
+ }
+ //exclusive_image(mask);
+ fclose(file);
+ free_image(part);
+ return mask;
+}
+
+image get_segmentation_image2(char *path, int w, int h, int classes)
+{
+ char labelpath[4096];
+ find_replace(path, "images", "mask", labelpath);
+ find_replace(labelpath, "JPEGImages", "mask", labelpath);
+ find_replace(labelpath, ".jpg", ".txt", labelpath);
+ find_replace(labelpath, ".JPG", ".txt", labelpath);
+ find_replace(labelpath, ".JPEG", ".txt", labelpath);
+ image mask = make_image(w, h, classes+1);
+ int i;
+ for(i = 0; i < w*h; ++i){
+ mask.data[w*h*classes + i] = 1;
+ }
+ FILE *file = fopen(labelpath, "r");
+ if(!file) file_error(labelpath);
+ char buff[32788];
+ int id;
+ image part = make_image(w, h, 1);
+ while(fscanf(file, "%d %s", &id, buff) == 2){
+ int n = 0;
+ int *rle = read_intlist(buff, &n, 0);
+ load_rle(part, rle, n);
+ or_image(part, mask, id);
+ for(i = 0; i < w*h; ++i){
+ if(part.data[i]) mask.data[w*h*classes + i] = 0;
+ }
+ free(rle);
+ }
+ //exclusive_image(mask);
+ fclose(file);
+ free_image(part);
+ return mask;
+}
+
+data load_data_seg(int n, char **paths, int m, int w, int h, int classes, int min, int max, float angle, float aspect, float hue, float saturation, float exposure, int div)
+{
+ char **random_paths = get_random_paths(paths, n, m);
+ int i;
+ data d = {0};
+ d.shallow = 0;
+
+ d.X.rows = n;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*3;
+
+
+ d.y.rows = n;
+ d.y.cols = h*w*classes/div/div;
+ d.y.vals = calloc(d.X.rows, sizeof(float*));
+
+ for(i = 0; i < n; ++i){
+ image orig = load_image_color(random_paths[i], 0, 0);
+ augment_args a = random_augment_args(orig, angle, aspect, min, max, w, h);
+ image sized = rotate_crop_image(orig, a.rad, a.scale, a.w, a.h, a.dx, a.dy, a.aspect);
+
+ int flip = rand()%2;
+ if(flip) flip_image(sized);
+ random_distort_image(sized, hue, saturation, exposure);
+ d.X.vals[i] = sized.data;
+
+ image mask = get_segmentation_image(random_paths[i], orig.w, orig.h, classes);
+ //image mask = make_image(orig.w, orig.h, classes+1);
+ image sized_m = rotate_crop_image(mask, a.rad, a.scale/div, a.w/div, a.h/div, a.dx/div, a.dy/div, a.aspect);
+
+ if(flip) flip_image(sized_m);
+ d.y.vals[i] = sized_m.data;
+
+ free_image(orig);
+ free_image(mask);
+
+ /*
+ image rgb = mask_to_rgb(sized_m, classes);
+ show_image(rgb, "part");
+ show_image(sized, "orig");
+ cvWaitKey(0);
+ free_image(rgb);
+ */
+ }
+ free(random_paths);
+ return d;
+}
+
+data load_data_iseg(int n, char **paths, int m, int w, int h, int classes, int boxes, int div, int min, int max, float angle, float aspect, float hue, float saturation, float exposure)
+{
+ char **random_paths = get_random_paths(paths, n, m);
+ int i;
+ data d = {0};
+ d.shallow = 0;
+
+ d.X.rows = n;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*3;
+
+ d.y = make_matrix(n, (((w/div)*(h/div))+1)*boxes);
+
+ for(i = 0; i < n; ++i){
+ image orig = load_image_color(random_paths[i], 0, 0);
+ augment_args a = random_augment_args(orig, angle, aspect, min, max, w, h);
+ image sized = rotate_crop_image(orig, a.rad, a.scale, a.w, a.h, a.dx, a.dy, a.aspect);
+
+ int flip = rand()%2;
+ if(flip) flip_image(sized);
+ random_distort_image(sized, hue, saturation, exposure);
+ d.X.vals[i] = sized.data;
+ //show_image(sized, "image");
+
+ fill_truth_iseg(random_paths[i], boxes, d.y.vals[i], classes, orig.w, orig.h, a, flip, w/div, h/div);
+
+ free_image(orig);
+
+ /*
+ image rgb = mask_to_rgb(sized_m, classes);
+ show_image(rgb, "part");
+ show_image(sized, "orig");
+ cvWaitKey(0);
+ free_image(rgb);
+ */
+ }
+ free(random_paths);
+ return d;
+}
+
+data load_data_mask(int n, char **paths, int m, int w, int h, int classes, int boxes, int coords, int min, int max, float angle, float aspect, float hue, float saturation, float exposure)
+{
+ char **random_paths = get_random_paths(paths, n, m);
+ int i;
+ data d = {0};
+ d.shallow = 0;
+
+ d.X.rows = n;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*3;
+
+ d.y = make_matrix(n, (coords+1)*boxes);
+
+ for(i = 0; i < n; ++i){
+ image orig = load_image_color(random_paths[i], 0, 0);
+ augment_args a = random_augment_args(orig, angle, aspect, min, max, w, h);
+ image sized = rotate_crop_image(orig, a.rad, a.scale, a.w, a.h, a.dx, a.dy, a.aspect);
+
+ int flip = rand()%2;
+ if(flip) flip_image(sized);
+ random_distort_image(sized, hue, saturation, exposure);
+ d.X.vals[i] = sized.data;
+ //show_image(sized, "image");
+
+ fill_truth_mask(random_paths[i], boxes, d.y.vals[i], classes, orig.w, orig.h, a, flip, 14, 14);
+
+ free_image(orig);
+
+ /*
+ image rgb = mask_to_rgb(sized_m, classes);
+ show_image(rgb, "part");
+ show_image(sized, "orig");
+ cvWaitKey(0);
+ free_image(rgb);
+ */
+ }
+ free(random_paths);
+ return d;
+}
+
+data load_data_region(int n, char **paths, int m, int w, int h, int size, int classes, float jitter, float hue, float saturation, float exposure)
+{
+ char **random_paths = get_random_paths(paths, n, m);
+ int i;
+ data d = {0};
+ d.shallow = 0;
+
+ d.X.rows = n;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*3;
+
+
+ int k = size*size*(5+classes);
+ d.y = make_matrix(n, k);
+ for(i = 0; i < n; ++i){
+ image orig = load_image_color(random_paths[i], 0, 0);
+
+ int oh = orig.h;
+ int ow = orig.w;
+
+ int dw = (ow*jitter);
+ int dh = (oh*jitter);
+
+ int pleft = rand_uniform(-dw, dw);
+ int pright = rand_uniform(-dw, dw);
+ int ptop = rand_uniform(-dh, dh);
+ int pbot = rand_uniform(-dh, dh);
+
+ int swidth = ow - pleft - pright;
+ int sheight = oh - ptop - pbot;
+
+ float sx = (float)swidth / ow;
+ float sy = (float)sheight / oh;
+
+ int flip = rand()%2;
+ image cropped = crop_image(orig, pleft, ptop, swidth, sheight);
+
+ float dx = ((float)pleft/ow)/sx;
+ float dy = ((float)ptop /oh)/sy;
+
+ image sized = resize_image(cropped, w, h);
+ if(flip) flip_image(sized);
+ random_distort_image(sized, hue, saturation, exposure);
+ d.X.vals[i] = sized.data;
+
+ fill_truth_region(random_paths[i], d.y.vals[i], classes, size, flip, dx, dy, 1./sx, 1./sy);
+
+ free_image(orig);
+ free_image(cropped);
+ }
+ free(random_paths);
+ return d;
+}
+
+data load_data_compare(int n, char **paths, int m, int classes, int w, int h)
+{
+ if(m) paths = get_random_paths(paths, 2*n, m);
+ int i,j;
+ data d = {0};
+ d.shallow = 0;
+
+ d.X.rows = n;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*6;
+
+ int k = 2*(classes);
+ d.y = make_matrix(n, k);
+ for(i = 0; i < n; ++i){
+ image im1 = load_image_color(paths[i*2], w, h);
+ image im2 = load_image_color(paths[i*2+1], w, h);
+
+ d.X.vals[i] = calloc(d.X.cols, sizeof(float));
+ memcpy(d.X.vals[i], im1.data, h*w*3*sizeof(float));
+ memcpy(d.X.vals[i] + h*w*3, im2.data, h*w*3*sizeof(float));
+
+ int id;
+ float iou;
+
+ char imlabel1[4096];
+ char imlabel2[4096];
+ find_replace(paths[i*2], "imgs", "labels", imlabel1);
+ find_replace(imlabel1, "jpg", "txt", imlabel1);
+ FILE *fp1 = fopen(imlabel1, "r");
+
+ while(fscanf(fp1, "%d %f", &id, &iou) == 2){
+ if (d.y.vals[i][2*id] < iou) d.y.vals[i][2*id] = iou;
+ }
+
+ find_replace(paths[i*2+1], "imgs", "labels", imlabel2);
+ find_replace(imlabel2, "jpg", "txt", imlabel2);
+ FILE *fp2 = fopen(imlabel2, "r");
+
+ while(fscanf(fp2, "%d %f", &id, &iou) == 2){
+ if (d.y.vals[i][2*id + 1] < iou) d.y.vals[i][2*id + 1] = iou;
+ }
+
+ for (j = 0; j < classes; ++j){
+ if (d.y.vals[i][2*j] > .5 && d.y.vals[i][2*j+1] < .5){
+ d.y.vals[i][2*j] = 1;
+ d.y.vals[i][2*j+1] = 0;
+ } else if (d.y.vals[i][2*j] < .5 && d.y.vals[i][2*j+1] > .5){
+ d.y.vals[i][2*j] = 0;
+ d.y.vals[i][2*j+1] = 1;
+ } else {
+ d.y.vals[i][2*j] = SECRET_NUM;
+ d.y.vals[i][2*j+1] = SECRET_NUM;
+ }
+ }
+ fclose(fp1);
+ fclose(fp2);
+
+ free_image(im1);
+ free_image(im2);
+ }
+ if(m) free(paths);
+ return d;
+}
+
+data load_data_swag(char **paths, int n, int classes, float jitter)
+{
+ int index = rand()%n;
+ char *random_path = paths[index];
+
+ image orig = load_image_color(random_path, 0, 0);
+ int h = orig.h;
+ int w = orig.w;
+
+ data d = {0};
+ d.shallow = 0;
+ d.w = w;
+ d.h = h;
+
+ d.X.rows = 1;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*3;
+
+ int k = (4+classes)*90;
+ d.y = make_matrix(1, k);
+
+ int dw = w*jitter;
+ int dh = h*jitter;
+
+ int pleft = rand_uniform(-dw, dw);
+ int pright = rand_uniform(-dw, dw);
+ int ptop = rand_uniform(-dh, dh);
+ int pbot = rand_uniform(-dh, dh);
+
+ int swidth = w - pleft - pright;
+ int sheight = h - ptop - pbot;
+
+ float sx = (float)swidth / w;
+ float sy = (float)sheight / h;
+
+ int flip = rand()%2;
+ image cropped = crop_image(orig, pleft, ptop, swidth, sheight);
+
+ float dx = ((float)pleft/w)/sx;
+ float dy = ((float)ptop /h)/sy;
+
+ image sized = resize_image(cropped, w, h);
+ if(flip) flip_image(sized);
+ d.X.vals[0] = sized.data;
+
+ fill_truth_swag(random_path, d.y.vals[0], classes, flip, dx, dy, 1./sx, 1./sy);
+
+ free_image(orig);
+ free_image(cropped);
+
+ return d;
+}
+
+data load_data_detection(int n, char **paths, int m, int w, int h, int boxes, int classes, float jitter, float hue, float saturation, float exposure)
+{
+ char **random_paths = get_random_paths(paths, n, m);
+ int i;
+ data d = {0};
+ d.shallow = 0;
+
+ d.X.rows = n;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+ d.X.cols = h*w*3;
+
+ d.y = make_matrix(n, 5*boxes);
+ for(i = 0; i < n; ++i){
+ image orig = load_image_color(random_paths[i], 0, 0);
+ image sized = make_image(w, h, orig.c);
+ fill_image(sized, .5);
+
+ float dw = jitter * orig.w;
+ float dh = jitter * orig.h;
+
+ float new_ar = (orig.w + rand_uniform(-dw, dw)) / (orig.h + rand_uniform(-dh, dh));
+ //float scale = rand_uniform(.25, 2);
+ float scale = 1;
+
+ float nw, nh;
+
+ if(new_ar < 1){
+ nh = scale * h;
+ nw = nh * new_ar;
+ } else {
+ nw = scale * w;
+ nh = nw / new_ar;
+ }
+
+ float dx = rand_uniform(0, w - nw);
+ float dy = rand_uniform(0, h - nh);
+
+ place_image(orig, nw, nh, dx, dy, sized);
+
+ random_distort_image(sized, hue, saturation, exposure);
+
+ int flip = rand()%2;
+ if(flip) flip_image(sized);
+ d.X.vals[i] = sized.data;
+
+
+ fill_truth_detection(random_paths[i], boxes, d.y.vals[i], classes, flip, -dx/w, -dy/h, nw/w, nh/h);
+
+ free_image(orig);
+ }
+ free(random_paths);
+ return d;
+}
+
+void *load_thread(void *ptr)
+{
+ //printf("Loading data: %d\n", rand());
+ load_args a = *(struct load_args*)ptr;
+ if(a.exposure == 0) a.exposure = 1;
+ if(a.saturation == 0) a.saturation = 1;
+ if(a.aspect == 0) a.aspect = 1;
+
+ if (a.type == OLD_CLASSIFICATION_DATA){
+ *a.d = load_data_old(a.paths, a.n, a.m, a.labels, a.classes, a.w, a.h);
+ } else if (a.type == REGRESSION_DATA){
+ *a.d = load_data_regression(a.paths, a.n, a.m, a.classes, a.min, a.max, a.size, a.angle, a.aspect, a.hue, a.saturation, a.exposure);
+ } else if (a.type == CLASSIFICATION_DATA){
+ *a.d = load_data_augment(a.paths, a.n, a.m, a.labels, a.classes, a.hierarchy, a.min, a.max, a.size, a.angle, a.aspect, a.hue, a.saturation, a.exposure, a.center);
+ } else if (a.type == SUPER_DATA){
+ *a.d = load_data_super(a.paths, a.n, a.m, a.w, a.h, a.scale);
+ } else if (a.type == WRITING_DATA){
+ *a.d = load_data_writing(a.paths, a.n, a.m, a.w, a.h, a.out_w, a.out_h);
+ } else if (a.type == ISEG_DATA){
+ *a.d = load_data_iseg(a.n, a.paths, a.m, a.w, a.h, a.classes, a.num_boxes, a.scale, a.min, a.max, a.angle, a.aspect, a.hue, a.saturation, a.exposure);
+ } else if (a.type == INSTANCE_DATA){
+ *a.d = load_data_mask(a.n, a.paths, a.m, a.w, a.h, a.classes, a.num_boxes, a.coords, a.min, a.max, a.angle, a.aspect, a.hue, a.saturation, a.exposure);
+ } else if (a.type == SEGMENTATION_DATA){
+ *a.d = load_data_seg(a.n, a.paths, a.m, a.w, a.h, a.classes, a.min, a.max, a.angle, a.aspect, a.hue, a.saturation, a.exposure, a.scale);
+ } else if (a.type == REGION_DATA){
+ *a.d = load_data_region(a.n, a.paths, a.m, a.w, a.h, a.num_boxes, a.classes, a.jitter, a.hue, a.saturation, a.exposure);
+ } else if (a.type == DETECTION_DATA){
+ *a.d = load_data_detection(a.n, a.paths, a.m, a.w, a.h, a.num_boxes, a.classes, a.jitter, a.hue, a.saturation, a.exposure);
+ } else if (a.type == SWAG_DATA){
+ *a.d = load_data_swag(a.paths, a.n, a.classes, a.jitter);
+ } else if (a.type == COMPARE_DATA){
+ *a.d = load_data_compare(a.n, a.paths, a.m, a.classes, a.w, a.h);
+ } else if (a.type == IMAGE_DATA){
+ *(a.im) = load_image_color(a.path, 0, 0);
+ *(a.resized) = resize_image(*(a.im), a.w, a.h);
+ } else if (a.type == LETTERBOX_DATA){
+ *(a.im) = load_image_color(a.path, 0, 0);
+ *(a.resized) = letterbox_image(*(a.im), a.w, a.h);
+ } else if (a.type == TAG_DATA){
+ *a.d = load_data_tag(a.paths, a.n, a.m, a.classes, a.min, a.max, a.size, a.angle, a.aspect, a.hue, a.saturation, a.exposure);
+ }
+ free(ptr);
+ return 0;
+}
+
+pthread_t load_data_in_thread(load_args args)
+{
+ pthread_t thread;
+ struct load_args *ptr = calloc(1, sizeof(struct load_args));
+ *ptr = args;
+ if(pthread_create(&thread, 0, load_thread, ptr)) error("Thread creation failed");
+ return thread;
+}
+
+void *load_threads(void *ptr)
+{
+ int i;
+ load_args args = *(load_args *)ptr;
+ if (args.threads == 0) args.threads = 1;
+ data *out = args.d;
+ int total = args.n;
+ free(ptr);
+ data *buffers = calloc(args.threads, sizeof(data));
+ pthread_t *threads = calloc(args.threads, sizeof(pthread_t));
+ for(i = 0; i < args.threads; ++i){
+ args.d = buffers + i;
+ args.n = (i+1) * total/args.threads - i * total/args.threads;
+ threads[i] = load_data_in_thread(args);
+ }
+ for(i = 0; i < args.threads; ++i){
+ pthread_join(threads[i], 0);
+ }
+ *out = concat_datas(buffers, args.threads);
+ out->shallow = 0;
+ for(i = 0; i < args.threads; ++i){
+ buffers[i].shallow = 1;
+ free_data(buffers[i]);
+ }
+ free(buffers);
+ free(threads);
+ return 0;
+}
+
+void load_data_blocking(load_args args)
+{
+ struct load_args *ptr = calloc(1, sizeof(struct load_args));
+ *ptr = args;
+ load_thread(ptr);
+}
+
+pthread_t load_data(load_args args)
+{
+ pthread_t thread;
+ struct load_args *ptr = calloc(1, sizeof(struct load_args));
+ *ptr = args;
+ if(pthread_create(&thread, 0, load_threads, ptr)) error("Thread creation failed");
+ return thread;
+}
+
+data load_data_writing(char **paths, int n, int m, int w, int h, int out_w, int out_h)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ char **replace_paths = find_replace_paths(paths, n, ".png", "-label.png");
+ data d = {0};
+ d.shallow = 0;
+ d.X = load_image_paths(paths, n, w, h);
+ d.y = load_image_paths_gray(replace_paths, n, out_w, out_h);
+ if(m) free(paths);
+ int i;
+ for(i = 0; i < n; ++i) free(replace_paths[i]);
+ free(replace_paths);
+ return d;
+}
+
+data load_data_old(char **paths, int n, int m, char **labels, int k, int w, int h)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.shallow = 0;
+ d.X = load_image_paths(paths, n, w, h);
+ d.y = load_labels_paths(paths, n, labels, k, 0);
+ if(m) free(paths);
+ return d;
+}
+
+/*
+ data load_data_study(char **paths, int n, int m, char **labels, int k, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure)
+ {
+ data d = {0};
+ d.indexes = calloc(n, sizeof(int));
+ if(m) paths = get_random_paths_indexes(paths, n, m, d.indexes);
+ d.shallow = 0;
+ d.X = load_image_augment_paths(paths, n, min, max, size, angle, aspect, hue, saturation, exposure);
+ d.y = load_labels_paths(paths, n, labels, k);
+ if(m) free(paths);
+ return d;
+ }
+ */
+
+data load_data_super(char **paths, int n, int m, int w, int h, int scale)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.shallow = 0;
+
+ int i;
+ d.X.rows = n;
+ d.X.vals = calloc(n, sizeof(float*));
+ d.X.cols = w*h*3;
+
+ d.y.rows = n;
+ d.y.vals = calloc(n, sizeof(float*));
+ d.y.cols = w*scale * h*scale * 3;
+
+ for(i = 0; i < n; ++i){
+ image im = load_image_color(paths[i], 0, 0);
+ image crop = random_crop_image(im, w*scale, h*scale);
+ int flip = rand()%2;
+ if (flip) flip_image(crop);
+ image resize = resize_image(crop, w, h);
+ d.X.vals[i] = resize.data;
+ d.y.vals[i] = crop.data;
+ free_image(im);
+ }
+
+ if(m) free(paths);
+ return d;
+}
+
+data load_data_regression(char **paths, int n, int m, int k, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.shallow = 0;
+ d.X = load_image_augment_paths(paths, n, min, max, size, angle, aspect, hue, saturation, exposure, 0);
+ d.y = load_regression_labels_paths(paths, n, k);
+ if(m) free(paths);
+ return d;
+}
+
+data select_data(data *orig, int *inds)
+{
+ data d = {0};
+ d.shallow = 1;
+ d.w = orig[0].w;
+ d.h = orig[0].h;
+
+ d.X.rows = orig[0].X.rows;
+ d.y.rows = orig[0].X.rows;
+
+ d.X.cols = orig[0].X.cols;
+ d.y.cols = orig[0].y.cols;
+
+ d.X.vals = calloc(orig[0].X.rows, sizeof(float *));
+ d.y.vals = calloc(orig[0].y.rows, sizeof(float *));
+ int i;
+ for(i = 0; i < d.X.rows; ++i){
+ d.X.vals[i] = orig[inds[i]].X.vals[i];
+ d.y.vals[i] = orig[inds[i]].y.vals[i];
+ }
+ return d;
+}
+
+data *tile_data(data orig, int divs, int size)
+{
+ data *ds = calloc(divs*divs, sizeof(data));
+ int i, j;
+#pragma omp parallel for
+ for(i = 0; i < divs*divs; ++i){
+ data d;
+ d.shallow = 0;
+ d.w = orig.w/divs * size;
+ d.h = orig.h/divs * size;
+ d.X.rows = orig.X.rows;
+ d.X.cols = d.w*d.h*3;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+
+ d.y = copy_matrix(orig.y);
+#pragma omp parallel for
+ for(j = 0; j < orig.X.rows; ++j){
+ int x = (i%divs) * orig.w / divs - (d.w - orig.w/divs)/2;
+ int y = (i/divs) * orig.h / divs - (d.h - orig.h/divs)/2;
+ image im = float_to_image(orig.w, orig.h, 3, orig.X.vals[j]);
+ d.X.vals[j] = crop_image(im, x, y, d.w, d.h).data;
+ }
+ ds[i] = d;
+ }
+ return ds;
+}
+
+data resize_data(data orig, int w, int h)
+{
+ data d = {0};
+ d.shallow = 0;
+ d.w = w;
+ d.h = h;
+ int i;
+ d.X.rows = orig.X.rows;
+ d.X.cols = w*h*3;
+ d.X.vals = calloc(d.X.rows, sizeof(float*));
+
+ d.y = copy_matrix(orig.y);
+#pragma omp parallel for
+ for(i = 0; i < orig.X.rows; ++i){
+ image im = float_to_image(orig.w, orig.h, 3, orig.X.vals[i]);
+ d.X.vals[i] = resize_image(im, w, h).data;
+ }
+ return d;
+}
+
+data load_data_augment(char **paths, int n, int m, char **labels, int k, tree *hierarchy, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure, int center)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.shallow = 0;
+ d.w=size;
+ d.h=size;
+ d.X = load_image_augment_paths(paths, n, min, max, size, angle, aspect, hue, saturation, exposure, center);
+ d.y = load_labels_paths(paths, n, labels, k, hierarchy);
+ if(m) free(paths);
+ return d;
+}
+
+data load_data_tag(char **paths, int n, int m, int k, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure)
+{
+ if(m) paths = get_random_paths(paths, n, m);
+ data d = {0};
+ d.w = size;
+ d.h = size;
+ d.shallow = 0;
+ d.X = load_image_augment_paths(paths, n, min, max, size, angle, aspect, hue, saturation, exposure, 0);
+ d.y = load_tags_paths(paths, n, k);
+ if(m) free(paths);
+ return d;
+}
+
+matrix concat_matrix(matrix m1, matrix m2)
+{
+ int i, count = 0;
+ matrix m;
+ m.cols = m1.cols;
+ m.rows = m1.rows+m2.rows;
+ m.vals = calloc(m1.rows + m2.rows, sizeof(float*));
+ for(i = 0; i < m1.rows; ++i){
+ m.vals[count++] = m1.vals[i];
+ }
+ for(i = 0; i < m2.rows; ++i){
+ m.vals[count++] = m2.vals[i];
+ }
+ return m;
+}
+
+data concat_data(data d1, data d2)
+{
+ data d = {0};
+ d.shallow = 1;
+ d.X = concat_matrix(d1.X, d2.X);
+ d.y = concat_matrix(d1.y, d2.y);
+ d.w = d1.w;
+ d.h = d1.h;
+ return d;
+}
+
+data concat_datas(data *d, int n)
+{
+ int i;
+ data out = {0};
+ for(i = 0; i < n; ++i){
+ data new = concat_data(d[i], out);
+ free_data(out);
+ out = new;
+ }
+ return out;
+}
+
+data load_categorical_data_csv(char *filename, int target, int k)
+{
+ data d = {0};
+ d.shallow = 0;
+ matrix X = csv_to_matrix(filename);
+ float *truth_1d = pop_column(&X, target);
+ float **truth = one_hot_encode(truth_1d, X.rows, k);
+ matrix y;
+ y.rows = X.rows;
+ y.cols = k;
+ y.vals = truth;
+ d.X = X;
+ d.y = y;
+ free(truth_1d);
+ return d;
+}
+
+data load_cifar10_data(char *filename)
+{
+ data d = {0};
+ d.shallow = 0;
+ long i,j;
+ matrix X = make_matrix(10000, 3072);
+ matrix y = make_matrix(10000, 10);
+ d.X = X;
+ d.y = y;
+
+ FILE *fp = fopen(filename, "rb");
+ if(!fp) file_error(filename);
+ for(i = 0; i < 10000; ++i){
+ unsigned char bytes[3073];
+ fread(bytes, 1, 3073, fp);
+ int class = bytes[0];
+ y.vals[i][class] = 1;
+ for(j = 0; j < X.cols; ++j){
+ X.vals[i][j] = (double)bytes[j+1];
+ }
+ }
+ scale_data_rows(d, 1./255);
+ //normalize_data_rows(d);
+ fclose(fp);
+ return d;
+}
+
+void get_random_batch(data d, int n, float *X, float *y)
+{
+ int j;
+ for(j = 0; j < n; ++j){
+ int index = rand()%d.X.rows;
+ memcpy(X+j*d.X.cols, d.X.vals[index], d.X.cols*sizeof(float));
+ memcpy(y+j*d.y.cols, d.y.vals[index], d.y.cols*sizeof(float));
+ }
+}
+
+void get_next_batch(data d, int n, int offset, float *X, float *y)
+{
+ int j;
+ for(j = 0; j < n; ++j){
+ int index = offset + j;
+ memcpy(X+j*d.X.cols, d.X.vals[index], d.X.cols*sizeof(float));
+ if(y) memcpy(y+j*d.y.cols, d.y.vals[index], d.y.cols*sizeof(float));
+ }
+}
+
+void smooth_data(data d)
+{
+ int i, j;
+ float scale = 1. / d.y.cols;
+ float eps = .1;
+ for(i = 0; i < d.y.rows; ++i){
+ for(j = 0; j < d.y.cols; ++j){
+ d.y.vals[i][j] = eps * scale + (1-eps) * d.y.vals[i][j];
+ }
+ }
+}
+
+data load_all_cifar10()
+{
+ data d = {0};
+ d.shallow = 0;
+ int i,j,b;
+ matrix X = make_matrix(50000, 3072);
+ matrix y = make_matrix(50000, 10);
+ d.X = X;
+ d.y = y;
+
+
+ for(b = 0; b < 5; ++b){
+ char buff[256];
+ sprintf(buff, "data/cifar/cifar-10-batches-bin/data_batch_%d.bin", b+1);
+ FILE *fp = fopen(buff, "rb");
+ if(!fp) file_error(buff);
+ for(i = 0; i < 10000; ++i){
+ unsigned char bytes[3073];
+ fread(bytes, 1, 3073, fp);
+ int class = bytes[0];
+ y.vals[i+b*10000][class] = 1;
+ for(j = 0; j < X.cols; ++j){
+ X.vals[i+b*10000][j] = (double)bytes[j+1];
+ }
+ }
+ fclose(fp);
+ }
+ //normalize_data_rows(d);
+ scale_data_rows(d, 1./255);
+ smooth_data(d);
+ return d;
+}
+
+data load_go(char *filename)
+{
+ FILE *fp = fopen(filename, "rb");
+ matrix X = make_matrix(3363059, 361);
+ matrix y = make_matrix(3363059, 361);
+ int row, col;
+
+ if(!fp) file_error(filename);
+ char *label;
+ int count = 0;
+ while((label = fgetl(fp))){
+ int i;
+ if(count == X.rows){
+ X = resize_matrix(X, count*2);
+ y = resize_matrix(y, count*2);
+ }
+ sscanf(label, "%d %d", &row, &col);
+ char *board = fgetl(fp);
+
+ int index = row*19 + col;
+ y.vals[count][index] = 1;
+
+ for(i = 0; i < 19*19; ++i){
+ float val = 0;
+ if(board[i] == '1') val = 1;
+ else if(board[i] == '2') val = -1;
+ X.vals[count][i] = val;
+ }
+ ++count;
+ free(label);
+ free(board);
+ }
+ X = resize_matrix(X, count);
+ y = resize_matrix(y, count);
+
+ data d = {0};
+ d.shallow = 0;
+ d.X = X;
+ d.y = y;
+
+
+ fclose(fp);
+
+ return d;
+}
+
+
+void randomize_data(data d)
+{
+ int i;
+ for(i = d.X.rows-1; i > 0; --i){
+ int index = rand()%i;
+ float *swap = d.X.vals[index];
+ d.X.vals[index] = d.X.vals[i];
+ d.X.vals[i] = swap;
+
+ swap = d.y.vals[index];
+ d.y.vals[index] = d.y.vals[i];
+ d.y.vals[i] = swap;
+ }
+}
+
+void scale_data_rows(data d, float s)
+{
+ int i;
+ for(i = 0; i < d.X.rows; ++i){
+ scale_array(d.X.vals[i], d.X.cols, s);
+ }
+}
+
+void translate_data_rows(data d, float s)
+{
+ int i;
+ for(i = 0; i < d.X.rows; ++i){
+ translate_array(d.X.vals[i], d.X.cols, s);
+ }
+}
+
+data copy_data(data d)
+{
+ data c = {0};
+ c.w = d.w;
+ c.h = d.h;
+ c.shallow = 0;
+ c.num_boxes = d.num_boxes;
+ c.boxes = d.boxes;
+ c.X = copy_matrix(d.X);
+ c.y = copy_matrix(d.y);
+ return c;
+}
+
+void normalize_data_rows(data d)
+{
+ int i;
+ for(i = 0; i < d.X.rows; ++i){
+ normalize_array(d.X.vals[i], d.X.cols);
+ }
+}
+
+data get_data_part(data d, int part, int total)
+{
+ data p = {0};
+ p.shallow = 1;
+ p.X.rows = d.X.rows * (part + 1) / total - d.X.rows * part / total;
+ p.y.rows = d.y.rows * (part + 1) / total - d.y.rows * part / total;
+ p.X.cols = d.X.cols;
+ p.y.cols = d.y.cols;
+ p.X.vals = d.X.vals + d.X.rows * part / total;
+ p.y.vals = d.y.vals + d.y.rows * part / total;
+ return p;
+}
+
+data get_random_data(data d, int num)
+{
+ data r = {0};
+ r.shallow = 1;
+
+ r.X.rows = num;
+ r.y.rows = num;
+
+ r.X.cols = d.X.cols;
+ r.y.cols = d.y.cols;
+
+ r.X.vals = calloc(num, sizeof(float *));
+ r.y.vals = calloc(num, sizeof(float *));
+
+ int i;
+ for(i = 0; i < num; ++i){
+ int index = rand()%d.X.rows;
+ r.X.vals[i] = d.X.vals[index];
+ r.y.vals[i] = d.y.vals[index];
+ }
+ return r;
+}
+
+data *split_data(data d, int part, int total)
+{
+ data *split = calloc(2, sizeof(data));
+ int i;
+ int start = part*d.X.rows/total;
+ int end = (part+1)*d.X.rows/total;
+ data train;
+ data test;
+ train.shallow = test.shallow = 1;
+
+ test.X.rows = test.y.rows = end-start;
+ train.X.rows = train.y.rows = d.X.rows - (end-start);
+ train.X.cols = test.X.cols = d.X.cols;
+ train.y.cols = test.y.cols = d.y.cols;
+
+ train.X.vals = calloc(train.X.rows, sizeof(float*));
+ test.X.vals = calloc(test.X.rows, sizeof(float*));
+ train.y.vals = calloc(train.y.rows, sizeof(float*));
+ test.y.vals = calloc(test.y.rows, sizeof(float*));
+
+ for(i = 0; i < start; ++i){
+ train.X.vals[i] = d.X.vals[i];
+ train.y.vals[i] = d.y.vals[i];
+ }
+ for(i = start; i < end; ++i){
+ test.X.vals[i-start] = d.X.vals[i];
+ test.y.vals[i-start] = d.y.vals[i];
+ }
+ for(i = end; i < d.X.rows; ++i){
+ train.X.vals[i-(end-start)] = d.X.vals[i];
+ train.y.vals[i-(end-start)] = d.y.vals[i];
+ }
+ split[0] = train;
+ split[1] = test;
+ return split;
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/data.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/data.h"
new file mode 100644
index 00000000..781906f8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/data.h"
@@ -0,0 +1,50 @@
+#ifndef DATA_H
+#define DATA_H
+#include
+
+#include "darknet.h"
+#include "matrix.h"
+#include "list.h"
+#include "image.h"
+#include "tree.h"
+
+static inline float distance_from_edge(int x, int max)
+{
+ int dx = (max/2) - x;
+ if (dx < 0) dx = -dx;
+ dx = (max/2) + 1 - dx;
+ dx *= 2;
+ float dist = (float)dx/max;
+ if (dist > 1) dist = 1;
+ return dist;
+}
+void load_data_blocking(load_args args);
+
+
+void print_letters(float *pred, int n);
+data load_data_captcha(char **paths, int n, int m, int k, int w, int h);
+data load_data_captcha_encode(char **paths, int n, int m, int w, int h);
+data load_data_detection(int n, char **paths, int m, int w, int h, int boxes, int classes, float jitter, float hue, float saturation, float exposure);
+data load_data_tag(char **paths, int n, int m, int k, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure);
+matrix load_image_augment_paths(char **paths, int n, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure, int center);
+data load_data_super(char **paths, int n, int m, int w, int h, int scale);
+data load_data_augment(char **paths, int n, int m, char **labels, int k, tree *hierarchy, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure, int center);
+data load_data_regression(char **paths, int n, int m, int classes, int min, int max, int size, float angle, float aspect, float hue, float saturation, float exposure);
+data load_go(char *filename);
+
+
+data load_data_writing(char **paths, int n, int m, int w, int h, int out_w, int out_h);
+
+void get_random_batch(data d, int n, float *X, float *y);
+data get_data_part(data d, int part, int total);
+data get_random_data(data d, int num);
+data load_categorical_data_csv(char *filename, int target, int k);
+void normalize_data_rows(data d);
+void scale_data_rows(data d, float s);
+void translate_data_rows(data d, float s);
+void randomize_data(data d);
+data *split_data(data d, int part, int total);
+data concat_datas(data *d, int n);
+void fill_truth(char *path, char **labels, int k, float *truth);
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_kernels.cu"
new file mode 100644
index 00000000..8267dcfa
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_kernels.cu"
@@ -0,0 +1,139 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "convolutional_layer.h"
+#include "deconvolutional_layer.h"
+#include "batchnorm_layer.h"
+#include "gemm.h"
+#include "blas.h"
+#include "im2col.h"
+#include "col2im.h"
+#include "utils.h"
+#include "cuda.h"
+}
+
+extern "C" void forward_deconvolutional_layer_gpu(layer l, network net)
+{
+ int i;
+
+ int m = l.size*l.size*l.n;
+ int n = l.h*l.w;
+ int k = l.c;
+
+ fill_gpu(l.outputs*l.batch, 0, l.output_gpu, 1);
+
+ for(i = 0; i < l.batch; ++i){
+ float *a = l.weights_gpu;
+ float *b = net.input_gpu + i*l.c*l.h*l.w;
+ float *c = net.workspace;
+
+ gemm_gpu(1,0,m,n,k,1,a,m,b,n,0,c,n);
+
+ col2im_gpu(net.workspace, l.out_c, l.out_h, l.out_w, l.size, l.stride, l.pad, l.output_gpu+i*l.outputs);
+ }
+ if (l.batch_normalize) {
+ forward_batchnorm_layer_gpu(l, net);
+ } else {
+ add_bias_gpu(l.output_gpu, l.biases_gpu, l.batch, l.n, l.out_w*l.out_h);
+ }
+ activate_array_gpu(l.output_gpu, l.batch*l.n*l.out_w*l.out_h, l.activation);
+}
+
+extern "C" void backward_deconvolutional_layer_gpu(layer l, network net)
+{
+ int i;
+
+ //constrain_gpu(l.outputs*l.batch, 1, l.delta_gpu, 1);
+ gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
+
+ if(l.batch_normalize){
+ backward_batchnorm_layer_gpu(l, net);
+ } else {
+ backward_bias_gpu(l.bias_updates_gpu, l.delta_gpu, l.batch, l.n, l.out_w*l.out_h);
+ }
+
+ //if(net.delta_gpu) memset(net.delta_gpu, 0, l.batch*l.h*l.w*l.c*sizeof(float));
+
+ for(i = 0; i < l.batch; ++i){
+ int m = l.c;
+ int n = l.size*l.size*l.n;
+ int k = l.h*l.w;
+
+ float *a = net.input_gpu + i*m*k;
+ float *b = net.workspace;
+ float *c = l.weight_updates_gpu;
+
+ im2col_gpu(l.delta_gpu + i*l.outputs, l.out_c, l.out_h, l.out_w,
+ l.size, l.stride, l.pad, b);
+ gemm_gpu(0,1,m,n,k,1,a,k,b,k,1,c,n);
+
+ if(net.delta_gpu){
+ int m = l.c;
+ int n = l.h*l.w;
+ int k = l.size*l.size*l.n;
+
+ float *a = l.weights_gpu;
+ float *b = net.workspace;
+ float *c = net.delta_gpu + i*n*m;
+
+ gemm_gpu(0,0,m,n,k,1,a,k,b,n,1,c,n);
+ }
+ }
+}
+
+extern "C" void pull_deconvolutional_layer(layer l)
+{
+ cuda_pull_array(l.weights_gpu, l.weights, l.c*l.n*l.size*l.size);
+ cuda_pull_array(l.biases_gpu, l.biases, l.n);
+ cuda_pull_array(l.weight_updates_gpu, l.weight_updates, l.c*l.n*l.size*l.size);
+ cuda_pull_array(l.bias_updates_gpu, l.bias_updates, l.n);
+ if (l.batch_normalize){
+ cuda_pull_array(l.scales_gpu, l.scales, l.n);
+ cuda_pull_array(l.rolling_mean_gpu, l.rolling_mean, l.n);
+ cuda_pull_array(l.rolling_variance_gpu, l.rolling_variance, l.n);
+ }
+}
+
+extern "C" void push_deconvolutional_layer(layer l)
+{
+ cuda_push_array(l.weights_gpu, l.weights, l.c*l.n*l.size*l.size);
+ cuda_push_array(l.biases_gpu, l.biases, l.n);
+ cuda_push_array(l.weight_updates_gpu, l.weight_updates, l.c*l.n*l.size*l.size);
+ cuda_push_array(l.bias_updates_gpu, l.bias_updates, l.n);
+ if (l.batch_normalize){
+ cuda_push_array(l.scales_gpu, l.scales, l.n);
+ cuda_push_array(l.rolling_mean_gpu, l.rolling_mean, l.n);
+ cuda_push_array(l.rolling_variance_gpu, l.rolling_variance, l.n);
+ }
+}
+
+void update_deconvolutional_layer_gpu(layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+
+ if(a.adam){
+ adam_update_gpu(l.weights_gpu, l.weight_updates_gpu, l.m_gpu, l.v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.nweights, batch, a.t);
+ adam_update_gpu(l.biases_gpu, l.bias_updates_gpu, l.bias_m_gpu, l.bias_v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.n, batch, a.t);
+ if(l.scales_gpu){
+ adam_update_gpu(l.scales_gpu, l.scale_updates_gpu, l.scale_m_gpu, l.scale_v_gpu, a.B1, a.B2, a.eps, decay, learning_rate, l.n, batch, a.t);
+ }
+ }else{
+ axpy_gpu(l.nweights, -decay*batch, l.weights_gpu, 1, l.weight_updates_gpu, 1);
+ axpy_gpu(l.nweights, learning_rate/batch, l.weight_updates_gpu, 1, l.weights_gpu, 1);
+ scal_gpu(l.nweights, momentum, l.weight_updates_gpu, 1);
+
+ axpy_gpu(l.n, learning_rate/batch, l.bias_updates_gpu, 1, l.biases_gpu, 1);
+ scal_gpu(l.n, momentum, l.bias_updates_gpu, 1);
+
+ if(l.scales_gpu){
+ axpy_gpu(l.n, learning_rate/batch, l.scale_updates_gpu, 1, l.scales_gpu, 1);
+ scal_gpu(l.n, momentum, l.scale_updates_gpu, 1);
+ }
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_layer.c"
new file mode 100644
index 00000000..00c0e857
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_layer.c"
@@ -0,0 +1,312 @@
+#include "deconvolutional_layer.h"
+#include "convolutional_layer.h"
+#include "batchnorm_layer.h"
+#include "utils.h"
+#include "im2col.h"
+#include "col2im.h"
+#include "blas.h"
+#include "gemm.h"
+
+#include
+#include
+
+
+static size_t get_workspace_size(layer l){
+ return (size_t)l.h*l.w*l.size*l.size*l.n*sizeof(float);
+}
+
+void bilinear_init(layer l)
+{
+ int i,j,f;
+ float center = (l.size-1) / 2.;
+ for(f = 0; f < l.n; ++f){
+ for(j = 0; j < l.size; ++j){
+ for(i = 0; i < l.size; ++i){
+ float val = (1 - fabs(i - center)) * (1 - fabs(j - center));
+ int c = f%l.c;
+ int ind = f*l.size*l.size*l.c + c*l.size*l.size + j*l.size + i;
+ l.weights[ind] = val;
+ }
+ }
+ }
+}
+
+
+layer make_deconvolutional_layer(int batch, int h, int w, int c, int n, int size, int stride, int padding, ACTIVATION activation, int batch_normalize, int adam)
+{
+ int i;
+ layer l = {0};
+ l.type = DECONVOLUTIONAL;
+
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.n = n;
+ l.batch = batch;
+ l.stride = stride;
+ l.size = size;
+
+ l.nweights = c*n*size*size;
+ l.nbiases = n;
+
+ l.weights = calloc(c*n*size*size, sizeof(float));
+ l.weight_updates = calloc(c*n*size*size, sizeof(float));
+
+ l.biases = calloc(n, sizeof(float));
+ l.bias_updates = calloc(n, sizeof(float));
+ //float scale = n/(size*size*c);
+ //printf("scale: %f\n", scale);
+ float scale = .02;
+ for(i = 0; i < c*n*size*size; ++i) l.weights[i] = scale*rand_normal();
+ //bilinear_init(l);
+ for(i = 0; i < n; ++i){
+ l.biases[i] = 0;
+ }
+ l.pad = padding;
+
+ l.out_h = (l.h - 1) * l.stride + l.size - 2*l.pad;
+ l.out_w = (l.w - 1) * l.stride + l.size - 2*l.pad;
+ l.out_c = n;
+ l.outputs = l.out_w * l.out_h * l.out_c;
+ l.inputs = l.w * l.h * l.c;
+
+ scal_cpu(l.nweights, (float)l.out_w*l.out_h/(l.w*l.h), l.weights, 1);
+
+ l.output = calloc(l.batch*l.outputs, sizeof(float));
+ l.delta = calloc(l.batch*l.outputs, sizeof(float));
+
+ l.forward = forward_deconvolutional_layer;
+ l.backward = backward_deconvolutional_layer;
+ l.update = update_deconvolutional_layer;
+
+ l.batch_normalize = batch_normalize;
+
+ if(batch_normalize){
+ l.scales = calloc(n, sizeof(float));
+ l.scale_updates = calloc(n, sizeof(float));
+ for(i = 0; i < n; ++i){
+ l.scales[i] = 1;
+ }
+
+ l.mean = calloc(n, sizeof(float));
+ l.variance = calloc(n, sizeof(float));
+
+ l.mean_delta = calloc(n, sizeof(float));
+ l.variance_delta = calloc(n, sizeof(float));
+
+ l.rolling_mean = calloc(n, sizeof(float));
+ l.rolling_variance = calloc(n, sizeof(float));
+ l.x = calloc(l.batch*l.outputs, sizeof(float));
+ l.x_norm = calloc(l.batch*l.outputs, sizeof(float));
+ }
+ if(adam){
+ l.m = calloc(c*n*size*size, sizeof(float));
+ l.v = calloc(c*n*size*size, sizeof(float));
+ l.bias_m = calloc(n, sizeof(float));
+ l.scale_m = calloc(n, sizeof(float));
+ l.bias_v = calloc(n, sizeof(float));
+ l.scale_v = calloc(n, sizeof(float));
+ }
+
+#ifdef GPU
+ l.forward_gpu = forward_deconvolutional_layer_gpu;
+ l.backward_gpu = backward_deconvolutional_layer_gpu;
+ l.update_gpu = update_deconvolutional_layer_gpu;
+
+ if(gpu_index >= 0){
+
+ if (adam) {
+ l.m_gpu = cuda_make_array(l.m, c*n*size*size);
+ l.v_gpu = cuda_make_array(l.v, c*n*size*size);
+ l.bias_m_gpu = cuda_make_array(l.bias_m, n);
+ l.bias_v_gpu = cuda_make_array(l.bias_v, n);
+ l.scale_m_gpu = cuda_make_array(l.scale_m, n);
+ l.scale_v_gpu = cuda_make_array(l.scale_v, n);
+ }
+ l.weights_gpu = cuda_make_array(l.weights, c*n*size*size);
+ l.weight_updates_gpu = cuda_make_array(l.weight_updates, c*n*size*size);
+
+ l.biases_gpu = cuda_make_array(l.biases, n);
+ l.bias_updates_gpu = cuda_make_array(l.bias_updates, n);
+
+ l.delta_gpu = cuda_make_array(l.delta, l.batch*l.out_h*l.out_w*n);
+ l.output_gpu = cuda_make_array(l.output, l.batch*l.out_h*l.out_w*n);
+
+ if(batch_normalize){
+ l.mean_gpu = cuda_make_array(0, n);
+ l.variance_gpu = cuda_make_array(0, n);
+
+ l.rolling_mean_gpu = cuda_make_array(0, n);
+ l.rolling_variance_gpu = cuda_make_array(0, n);
+
+ l.mean_delta_gpu = cuda_make_array(0, n);
+ l.variance_delta_gpu = cuda_make_array(0, n);
+
+ l.scales_gpu = cuda_make_array(l.scales, n);
+ l.scale_updates_gpu = cuda_make_array(0, n);
+
+ l.x_gpu = cuda_make_array(0, l.batch*l.out_h*l.out_w*n);
+ l.x_norm_gpu = cuda_make_array(0, l.batch*l.out_h*l.out_w*n);
+ }
+ }
+ #ifdef CUDNN
+ cudnnCreateTensorDescriptor(&l.dstTensorDesc);
+ cudnnCreateTensorDescriptor(&l.normTensorDesc);
+ cudnnSetTensor4dDescriptor(l.dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l.batch, l.out_c, l.out_h, l.out_w);
+ cudnnSetTensor4dDescriptor(l.normTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l.out_c, 1, 1);
+ #endif
+#endif
+
+ l.activation = activation;
+ l.workspace_size = get_workspace_size(l);
+
+ fprintf(stderr, "deconv%5d %2d x%2d /%2d %4d x%4d x%4d -> %4d x%4d x%4d\n", n, size, size, stride, w, h, c, l.out_w, l.out_h, l.out_c);
+
+ return l;
+}
+
+void denormalize_deconvolutional_layer(layer l)
+{
+ int i, j;
+ for(i = 0; i < l.n; ++i){
+ float scale = l.scales[i]/sqrt(l.rolling_variance[i] + .00001);
+ for(j = 0; j < l.c*l.size*l.size; ++j){
+ l.weights[i*l.c*l.size*l.size + j] *= scale;
+ }
+ l.biases[i] -= l.rolling_mean[i] * scale;
+ l.scales[i] = 1;
+ l.rolling_mean[i] = 0;
+ l.rolling_variance[i] = 1;
+ }
+}
+
+void resize_deconvolutional_layer(layer *l, int h, int w)
+{
+ l->h = h;
+ l->w = w;
+ l->out_h = (l->h - 1) * l->stride + l->size - 2*l->pad;
+ l->out_w = (l->w - 1) * l->stride + l->size - 2*l->pad;
+
+ l->outputs = l->out_h * l->out_w * l->out_c;
+ l->inputs = l->w * l->h * l->c;
+
+ l->output = realloc(l->output, l->batch*l->outputs*sizeof(float));
+ l->delta = realloc(l->delta, l->batch*l->outputs*sizeof(float));
+ if(l->batch_normalize){
+ l->x = realloc(l->x, l->batch*l->outputs*sizeof(float));
+ l->x_norm = realloc(l->x_norm, l->batch*l->outputs*sizeof(float));
+ }
+
+#ifdef GPU
+ cuda_free(l->delta_gpu);
+ cuda_free(l->output_gpu);
+
+ l->delta_gpu = cuda_make_array(l->delta, l->batch*l->outputs);
+ l->output_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+
+ if(l->batch_normalize){
+ cuda_free(l->x_gpu);
+ cuda_free(l->x_norm_gpu);
+
+ l->x_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+ l->x_norm_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+ }
+ #ifdef CUDNN
+ cudnnSetTensor4dDescriptor(l->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, l->batch, l->out_c, l->out_h, l->out_w);
+ cudnnSetTensor4dDescriptor(l->normTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l->out_c, 1, 1);
+ #endif
+#endif
+ l->workspace_size = get_workspace_size(*l);
+}
+
+void forward_deconvolutional_layer(const layer l, network net)
+{
+ int i;
+
+ int m = l.size*l.size*l.n;
+ int n = l.h*l.w;
+ int k = l.c;
+
+ fill_cpu(l.outputs*l.batch, 0, l.output, 1);
+
+ for(i = 0; i < l.batch; ++i){
+ float *a = l.weights;
+ float *b = net.input + i*l.c*l.h*l.w;
+ float *c = net.workspace;
+
+ gemm_cpu(1,0,m,n,k,1,a,m,b,n,0,c,n);
+
+ col2im_cpu(net.workspace, l.out_c, l.out_h, l.out_w, l.size, l.stride, l.pad, l.output+i*l.outputs);
+ }
+ if (l.batch_normalize) {
+ forward_batchnorm_layer(l, net);
+ } else {
+ add_bias(l.output, l.biases, l.batch, l.n, l.out_w*l.out_h);
+ }
+ activate_array(l.output, l.batch*l.n*l.out_w*l.out_h, l.activation);
+}
+
+void backward_deconvolutional_layer(layer l, network net)
+{
+ int i;
+
+ gradient_array(l.output, l.outputs*l.batch, l.activation, l.delta);
+
+ if(l.batch_normalize){
+ backward_batchnorm_layer(l, net);
+ } else {
+ backward_bias(l.bias_updates, l.delta, l.batch, l.n, l.out_w*l.out_h);
+ }
+
+ //if(net.delta) memset(net.delta, 0, l.batch*l.h*l.w*l.c*sizeof(float));
+
+ for(i = 0; i < l.batch; ++i){
+ int m = l.c;
+ int n = l.size*l.size*l.n;
+ int k = l.h*l.w;
+
+ float *a = net.input + i*m*k;
+ float *b = net.workspace;
+ float *c = l.weight_updates;
+
+ im2col_cpu(l.delta + i*l.outputs, l.out_c, l.out_h, l.out_w,
+ l.size, l.stride, l.pad, b);
+ gemm_cpu(0,1,m,n,k,1,a,k,b,k,1,c,n);
+
+ if(net.delta){
+ int m = l.c;
+ int n = l.h*l.w;
+ int k = l.size*l.size*l.n;
+
+ float *a = l.weights;
+ float *b = net.workspace;
+ float *c = net.delta + i*n*m;
+
+ gemm_cpu(0,0,m,n,k,1,a,k,b,n,1,c,n);
+ }
+ }
+}
+
+void update_deconvolutional_layer(layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+
+ int size = l.size*l.size*l.c*l.n;
+ axpy_cpu(l.n, learning_rate/batch, l.bias_updates, 1, l.biases, 1);
+ scal_cpu(l.n, momentum, l.bias_updates, 1);
+
+ if(l.scales){
+ axpy_cpu(l.n, learning_rate/batch, l.scale_updates, 1, l.scales, 1);
+ scal_cpu(l.n, momentum, l.scale_updates, 1);
+ }
+
+ axpy_cpu(size, -decay*batch, l.weights, 1, l.weight_updates, 1);
+ axpy_cpu(size, learning_rate/batch, l.weight_updates, 1, l.weights, 1);
+ scal_cpu(size, momentum, l.weight_updates, 1);
+}
+
+
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_layer.h"
new file mode 100644
index 00000000..b254fb91
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/deconvolutional_layer.h"
@@ -0,0 +1,25 @@
+#ifndef DECONVOLUTIONAL_LAYER_H
+#define DECONVOLUTIONAL_LAYER_H
+
+#include "cuda.h"
+#include "image.h"
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+#ifdef GPU
+void forward_deconvolutional_layer_gpu(layer l, network net);
+void backward_deconvolutional_layer_gpu(layer l, network net);
+void update_deconvolutional_layer_gpu(layer l, update_args a);
+void push_deconvolutional_layer(layer l);
+void pull_deconvolutional_layer(layer l);
+#endif
+
+layer make_deconvolutional_layer(int batch, int h, int w, int c, int n, int size, int stride, int padding, ACTIVATION activation, int batch_normalize, int adam);
+void resize_deconvolutional_layer(layer *l, int h, int w);
+void forward_deconvolutional_layer(const layer l, network net);
+void update_deconvolutional_layer(layer l, update_args a);
+void backward_deconvolutional_layer(layer l, network net);
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/demo.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/demo.c"
new file mode 100644
index 00000000..b89efb8d
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/demo.c"
@@ -0,0 +1,349 @@
+#include "network.h"
+#include "detection_layer.h"
+#include "region_layer.h"
+#include "cost_layer.h"
+#include "utils.h"
+#include "parser.h"
+#include "box.h"
+#include "image.h"
+#include "demo.h"
+#include
+
+#define DEMO 1
+
+#ifdef OPENCV
+
+static char **demo_names;
+static image **demo_alphabet;
+static int demo_classes;
+
+static network *net;
+static image buff [3];
+static image buff_letter[3];
+static int buff_index = 0;
+static void * cap;
+static float fps = 0;
+static float demo_thresh = 0;
+static float demo_hier = .5;
+static int running = 0;
+
+static int demo_frame = 3;
+static int demo_index = 0;
+static float **predictions;
+static float *avg;
+static int demo_done = 0;
+static int demo_total = 0;
+double demo_time;
+
+detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num);
+
+int size_network(network *net)
+{
+ int i;
+ int count = 0;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == YOLO || l.type == REGION || l.type == DETECTION){
+ count += l.outputs;
+ }
+ }
+ return count;
+}
+
+void remember_network(network *net)
+{
+ int i;
+ int count = 0;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == YOLO || l.type == REGION || l.type == DETECTION){
+ memcpy(predictions[demo_index] + count, net->layers[i].output, sizeof(float) * l.outputs);
+ count += l.outputs;
+ }
+ }
+}
+
+detection *avg_predictions(network *net, int *nboxes)
+{
+ int i, j;
+ int count = 0;
+ fill_cpu(demo_total, 0, avg, 1);
+ for(j = 0; j < demo_frame; ++j){
+ axpy_cpu(demo_total, 1./demo_frame, predictions[j], 1, avg, 1);
+ }
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == YOLO || l.type == REGION || l.type == DETECTION){
+ memcpy(l.output, avg + count, sizeof(float) * l.outputs);
+ count += l.outputs;
+ }
+ }
+ detection *dets = get_network_boxes(net, buff[0].w, buff[0].h, demo_thresh, demo_hier, 0, 1, nboxes);
+ return dets;
+}
+
+void *detect_in_thread(void *ptr)
+{
+ running = 1;
+ float nms = .4;
+
+ layer l = net->layers[net->n-1];
+ float *X = buff_letter[(buff_index+2)%3].data;
+ network_predict(net, X);
+
+ /*
+ if(l.type == DETECTION){
+ get_detection_boxes(l, 1, 1, demo_thresh, probs, boxes, 0);
+ } else */
+ remember_network(net);
+ detection *dets = 0;
+ int nboxes = 0;
+ dets = avg_predictions(net, &nboxes);
+
+
+ /*
+ int i,j;
+ box zero = {0};
+ int classes = l.classes;
+ for(i = 0; i < demo_detections; ++i){
+ avg[i].objectness = 0;
+ avg[i].bbox = zero;
+ memset(avg[i].prob, 0, classes*sizeof(float));
+ for(j = 0; j < demo_frame; ++j){
+ axpy_cpu(classes, 1./demo_frame, dets[j][i].prob, 1, avg[i].prob, 1);
+ avg[i].objectness += dets[j][i].objectness * 1./demo_frame;
+ avg[i].bbox.x += dets[j][i].bbox.x * 1./demo_frame;
+ avg[i].bbox.y += dets[j][i].bbox.y * 1./demo_frame;
+ avg[i].bbox.w += dets[j][i].bbox.w * 1./demo_frame;
+ avg[i].bbox.h += dets[j][i].bbox.h * 1./demo_frame;
+ }
+ //copy_cpu(classes, dets[0][i].prob, 1, avg[i].prob, 1);
+ //avg[i].objectness = dets[0][i].objectness;
+ }
+ */
+
+ if (nms > 0) do_nms_obj(dets, nboxes, l.classes, nms);
+
+ printf("\033[2J");
+ printf("\033[1;1H");
+ printf("\nFPS:%.1f\n",fps);
+ printf("Objects:\n\n");
+ image display = buff[(buff_index+2) % 3];
+ draw_detections(display, dets, nboxes, demo_thresh, demo_names, demo_alphabet, demo_classes);
+ free_detections(dets, nboxes);
+
+ demo_index = (demo_index + 1)%demo_frame;
+ running = 0;
+ return 0;
+}
+
+void *fetch_in_thread(void *ptr)
+{
+ free_image(buff[buff_index]);
+ buff[buff_index] = get_image_from_stream(cap);
+ if(buff[buff_index].data == 0) {
+ demo_done = 1;
+ return 0;
+ }
+ letterbox_image_into(buff[buff_index], net->w, net->h, buff_letter[buff_index]);
+ return 0;
+}
+
+void *display_in_thread(void *ptr)
+{
+ int c = show_image(buff[(buff_index + 1)%3], "Demo", 1);
+ if (c != -1) c = c%256;
+ if (c == 27) {
+ demo_done = 1;
+ return 0;
+ } else if (c == 82) {
+ demo_thresh += .02;
+ } else if (c == 84) {
+ demo_thresh -= .02;
+ if(demo_thresh <= .02) demo_thresh = .02;
+ } else if (c == 83) {
+ demo_hier += .02;
+ } else if (c == 81) {
+ demo_hier -= .02;
+ if(demo_hier <= .0) demo_hier = .0;
+ }
+ return 0;
+}
+
+void *display_loop(void *ptr)
+{
+ while(1){
+ display_in_thread(0);
+ }
+}
+
+void *detect_loop(void *ptr)
+{
+ while(1){
+ detect_in_thread(0);
+ }
+}
+
+void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int delay, char *prefix, int avg_frames, float hier, int w, int h, int frames, int fullscreen)
+{
+ //demo_frame = avg_frames;
+ image **alphabet = load_alphabet();
+ demo_names = names;
+ demo_alphabet = alphabet;
+ demo_classes = classes;
+ demo_thresh = thresh;
+ demo_hier = hier;
+ printf("Demo\n");
+ net = load_network(cfgfile, weightfile, 0);
+ set_batch_network(net, 1);
+ pthread_t detect_thread;
+ pthread_t fetch_thread;
+
+ srand(2222222);
+
+ int i;
+ demo_total = size_network(net);
+ predictions = calloc(demo_frame, sizeof(float*));
+ for (i = 0; i < demo_frame; ++i){
+ predictions[i] = calloc(demo_total, sizeof(float));
+ }
+ avg = calloc(demo_total, sizeof(float));
+
+ if(filename){
+ printf("video file: %s\n", filename);
+ cap = open_video_stream(filename, 0, 0, 0, 0);
+ }else{
+ cap = open_video_stream(0, cam_index, w, h, frames);
+ }
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+
+ buff[0] = get_image_from_stream(cap);
+ buff[1] = copy_image(buff[0]);
+ buff[2] = copy_image(buff[0]);
+ buff_letter[0] = letterbox_image(buff[0], net->w, net->h);
+ buff_letter[1] = letterbox_image(buff[0], net->w, net->h);
+ buff_letter[2] = letterbox_image(buff[0], net->w, net->h);
+
+ int count = 0;
+ if(!prefix){
+ make_window("Demo", 1352, 1013, fullscreen);
+ }
+
+ demo_time = what_time_is_it_now();
+
+ while(!demo_done){
+ buff_index = (buff_index + 1) %3;
+ if(pthread_create(&fetch_thread, 0, fetch_in_thread, 0)) error("Thread creation failed");
+ if(pthread_create(&detect_thread, 0, detect_in_thread, 0)) error("Thread creation failed");
+ if(!prefix){
+ fps = 1./(what_time_is_it_now() - demo_time);
+ demo_time = what_time_is_it_now();
+ display_in_thread(0);
+ }else{
+ char name[256];
+ sprintf(name, "%s_%08d", prefix, count);
+ save_image(buff[(buff_index + 1)%3], name);
+ }
+ pthread_join(fetch_thread, 0);
+ pthread_join(detect_thread, 0);
+ ++count;
+ }
+}
+
+/*
+ void demo_compare(char *cfg1, char *weight1, char *cfg2, char *weight2, float thresh, int cam_index, const char *filename, char **names, int classes, int delay, char *prefix, int avg_frames, float hier, int w, int h, int frames, int fullscreen)
+ {
+ demo_frame = avg_frames;
+ predictions = calloc(demo_frame, sizeof(float*));
+ image **alphabet = load_alphabet();
+ demo_names = names;
+ demo_alphabet = alphabet;
+ demo_classes = classes;
+ demo_thresh = thresh;
+ demo_hier = hier;
+ printf("Demo\n");
+ net = load_network(cfg1, weight1, 0);
+ set_batch_network(net, 1);
+ pthread_t detect_thread;
+ pthread_t fetch_thread;
+
+ srand(2222222);
+
+ if(filename){
+ printf("video file: %s\n", filename);
+ cap = cvCaptureFromFile(filename);
+ }else{
+ cap = cvCaptureFromCAM(cam_index);
+
+ if(w){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_WIDTH, w);
+ }
+ if(h){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FRAME_HEIGHT, h);
+ }
+ if(frames){
+ cvSetCaptureProperty(cap, CV_CAP_PROP_FPS, frames);
+ }
+ }
+
+ if(!cap) error("Couldn't connect to webcam.\n");
+
+ layer l = net->layers[net->n-1];
+ demo_detections = l.n*l.w*l.h;
+ int j;
+
+ avg = (float *) calloc(l.outputs, sizeof(float));
+ for(j = 0; j < demo_frame; ++j) predictions[j] = (float *) calloc(l.outputs, sizeof(float));
+
+ boxes = (box *)calloc(l.w*l.h*l.n, sizeof(box));
+ probs = (float **)calloc(l.w*l.h*l.n, sizeof(float *));
+ for(j = 0; j < l.w*l.h*l.n; ++j) probs[j] = (float *)calloc(l.classes+1, sizeof(float));
+
+ buff[0] = get_image_from_stream(cap);
+ buff[1] = copy_image(buff[0]);
+ buff[2] = copy_image(buff[0]);
+ buff_letter[0] = letterbox_image(buff[0], net->w, net->h);
+ buff_letter[1] = letterbox_image(buff[0], net->w, net->h);
+ buff_letter[2] = letterbox_image(buff[0], net->w, net->h);
+ ipl = cvCreateImage(cvSize(buff[0].w,buff[0].h), IPL_DEPTH_8U, buff[0].c);
+
+ int count = 0;
+ if(!prefix){
+ cvNamedWindow("Demo", CV_WINDOW_NORMAL);
+ if(fullscreen){
+ cvSetWindowProperty("Demo", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);
+ } else {
+ cvMoveWindow("Demo", 0, 0);
+ cvResizeWindow("Demo", 1352, 1013);
+ }
+ }
+
+ demo_time = what_time_is_it_now();
+
+ while(!demo_done){
+buff_index = (buff_index + 1) %3;
+if(pthread_create(&fetch_thread, 0, fetch_in_thread, 0)) error("Thread creation failed");
+if(pthread_create(&detect_thread, 0, detect_in_thread, 0)) error("Thread creation failed");
+if(!prefix){
+ fps = 1./(what_time_is_it_now() - demo_time);
+ demo_time = what_time_is_it_now();
+ display_in_thread(0);
+}else{
+ char name[256];
+ sprintf(name, "%s_%08d", prefix, count);
+ save_image(buff[(buff_index + 1)%3], name);
+}
+pthread_join(fetch_thread, 0);
+pthread_join(detect_thread, 0);
+++count;
+}
+}
+*/
+#else
+void demo(char *cfgfile, char *weightfile, float thresh, int cam_index, const char *filename, char **names, int classes, int delay, char *prefix, int avg, float hier, int w, int h, int frames, int fullscreen)
+{
+ fprintf(stderr, "Demo needs OpenCV for webcam images.\n");
+}
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/demo.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/demo.h"
new file mode 100644
index 00000000..86e46541
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/demo.h"
@@ -0,0 +1,6 @@
+#ifndef DEMO_H
+#define DEMO_H
+
+#include "image.h"
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/detection_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/detection_layer.c"
new file mode 100644
index 00000000..d0e0194b
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/detection_layer.c"
@@ -0,0 +1,275 @@
+#include "detection_layer.h"
+#include "activations.h"
+#include "softmax_layer.h"
+#include "blas.h"
+#include "box.h"
+#include "cuda.h"
+#include "utils.h"
+
+#include
+#include
+#include
+#include
+
+detection_layer make_detection_layer(int batch, int inputs, int n, int side, int classes, int coords, int rescore)
+{
+ detection_layer l = {0};
+ l.type = DETECTION;
+
+ l.n = n;
+ l.batch = batch;
+ l.inputs = inputs;
+ l.classes = classes;
+ l.coords = coords;
+ l.rescore = rescore;
+ l.side = side;
+ l.w = side;
+ l.h = side;
+ assert(side*side*((1 + l.coords)*l.n + l.classes) == inputs);
+ l.cost = calloc(1, sizeof(float));
+ l.outputs = l.inputs;
+ l.truths = l.side*l.side*(1+l.coords+l.classes);
+ l.output = calloc(batch*l.outputs, sizeof(float));
+ l.delta = calloc(batch*l.outputs, sizeof(float));
+
+ l.forward = forward_detection_layer;
+ l.backward = backward_detection_layer;
+#ifdef GPU
+ l.forward_gpu = forward_detection_layer_gpu;
+ l.backward_gpu = backward_detection_layer_gpu;
+ l.output_gpu = cuda_make_array(l.output, batch*l.outputs);
+ l.delta_gpu = cuda_make_array(l.delta, batch*l.outputs);
+#endif
+
+ fprintf(stderr, "Detection Layer\n");
+ srand(0);
+
+ return l;
+}
+
+void forward_detection_layer(const detection_layer l, network net)
+{
+ int locations = l.side*l.side;
+ int i,j;
+ memcpy(l.output, net.input, l.outputs*l.batch*sizeof(float));
+ //if(l.reorg) reorg(l.output, l.w*l.h, size*l.n, l.batch, 1);
+ int b;
+ if (l.softmax){
+ for(b = 0; b < l.batch; ++b){
+ int index = b*l.inputs;
+ for (i = 0; i < locations; ++i) {
+ int offset = i*l.classes;
+ softmax(l.output + index + offset, l.classes, 1, 1,
+ l.output + index + offset);
+ }
+ }
+ }
+ if(net.train){
+ float avg_iou = 0;
+ float avg_cat = 0;
+ float avg_allcat = 0;
+ float avg_obj = 0;
+ float avg_anyobj = 0;
+ int count = 0;
+ *(l.cost) = 0;
+ int size = l.inputs * l.batch;
+ memset(l.delta, 0, size * sizeof(float));
+ for (b = 0; b < l.batch; ++b){
+ int index = b*l.inputs;
+ for (i = 0; i < locations; ++i) {
+ int truth_index = (b*locations + i)*(1+l.coords+l.classes);
+ int is_obj = net.truth[truth_index];
+ for (j = 0; j < l.n; ++j) {
+ int p_index = index + locations*l.classes + i*l.n + j;
+ l.delta[p_index] = l.noobject_scale*(0 - l.output[p_index]);
+ *(l.cost) += l.noobject_scale*pow(l.output[p_index], 2);
+ avg_anyobj += l.output[p_index];
+ }
+
+ int best_index = -1;
+ float best_iou = 0;
+ float best_rmse = 20;
+
+ if (!is_obj){
+ continue;
+ }
+
+ int class_index = index + i*l.classes;
+ for(j = 0; j < l.classes; ++j) {
+ l.delta[class_index+j] = l.class_scale * (net.truth[truth_index+1+j] - l.output[class_index+j]);
+ *(l.cost) += l.class_scale * pow(net.truth[truth_index+1+j] - l.output[class_index+j], 2);
+ if(net.truth[truth_index + 1 + j]) avg_cat += l.output[class_index+j];
+ avg_allcat += l.output[class_index+j];
+ }
+
+ box truth = float_to_box(net.truth + truth_index + 1 + l.classes, 1);
+ truth.x /= l.side;
+ truth.y /= l.side;
+
+ for(j = 0; j < l.n; ++j){
+ int box_index = index + locations*(l.classes + l.n) + (i*l.n + j) * l.coords;
+ box out = float_to_box(l.output + box_index, 1);
+ out.x /= l.side;
+ out.y /= l.side;
+
+ if (l.sqrt){
+ out.w = out.w*out.w;
+ out.h = out.h*out.h;
+ }
+
+ float iou = box_iou(out, truth);
+ //iou = 0;
+ float rmse = box_rmse(out, truth);
+ if(best_iou > 0 || iou > 0){
+ if(iou > best_iou){
+ best_iou = iou;
+ best_index = j;
+ }
+ }else{
+ if(rmse < best_rmse){
+ best_rmse = rmse;
+ best_index = j;
+ }
+ }
+ }
+
+ if(l.forced){
+ if(truth.w*truth.h < .1){
+ best_index = 1;
+ }else{
+ best_index = 0;
+ }
+ }
+ if(l.random && *(net.seen) < 64000){
+ best_index = rand()%l.n;
+ }
+
+ int box_index = index + locations*(l.classes + l.n) + (i*l.n + best_index) * l.coords;
+ int tbox_index = truth_index + 1 + l.classes;
+
+ box out = float_to_box(l.output + box_index, 1);
+ out.x /= l.side;
+ out.y /= l.side;
+ if (l.sqrt) {
+ out.w = out.w*out.w;
+ out.h = out.h*out.h;
+ }
+ float iou = box_iou(out, truth);
+
+ //printf("%d,", best_index);
+ int p_index = index + locations*l.classes + i*l.n + best_index;
+ *(l.cost) -= l.noobject_scale * pow(l.output[p_index], 2);
+ *(l.cost) += l.object_scale * pow(1-l.output[p_index], 2);
+ avg_obj += l.output[p_index];
+ l.delta[p_index] = l.object_scale * (1.-l.output[p_index]);
+
+ if(l.rescore){
+ l.delta[p_index] = l.object_scale * (iou - l.output[p_index]);
+ }
+
+ l.delta[box_index+0] = l.coord_scale*(net.truth[tbox_index + 0] - l.output[box_index + 0]);
+ l.delta[box_index+1] = l.coord_scale*(net.truth[tbox_index + 1] - l.output[box_index + 1]);
+ l.delta[box_index+2] = l.coord_scale*(net.truth[tbox_index + 2] - l.output[box_index + 2]);
+ l.delta[box_index+3] = l.coord_scale*(net.truth[tbox_index + 3] - l.output[box_index + 3]);
+ if(l.sqrt){
+ l.delta[box_index+2] = l.coord_scale*(sqrt(net.truth[tbox_index + 2]) - l.output[box_index + 2]);
+ l.delta[box_index+3] = l.coord_scale*(sqrt(net.truth[tbox_index + 3]) - l.output[box_index + 3]);
+ }
+
+ *(l.cost) += pow(1-iou, 2);
+ avg_iou += iou;
+ ++count;
+ }
+ }
+
+ if(0){
+ float *costs = calloc(l.batch*locations*l.n, sizeof(float));
+ for (b = 0; b < l.batch; ++b) {
+ int index = b*l.inputs;
+ for (i = 0; i < locations; ++i) {
+ for (j = 0; j < l.n; ++j) {
+ int p_index = index + locations*l.classes + i*l.n + j;
+ costs[b*locations*l.n + i*l.n + j] = l.delta[p_index]*l.delta[p_index];
+ }
+ }
+ }
+ int indexes[100];
+ top_k(costs, l.batch*locations*l.n, 100, indexes);
+ float cutoff = costs[indexes[99]];
+ for (b = 0; b < l.batch; ++b) {
+ int index = b*l.inputs;
+ for (i = 0; i < locations; ++i) {
+ for (j = 0; j < l.n; ++j) {
+ int p_index = index + locations*l.classes + i*l.n + j;
+ if (l.delta[p_index]*l.delta[p_index] < cutoff) l.delta[p_index] = 0;
+ }
+ }
+ }
+ free(costs);
+ }
+
+
+ *(l.cost) = pow(mag_array(l.delta, l.outputs * l.batch), 2);
+
+
+ printf("Detection Avg IOU: %f, Pos Cat: %f, All Cat: %f, Pos Obj: %f, Any Obj: %f, count: %d\n", avg_iou/count, avg_cat/count, avg_allcat/(count*l.classes), avg_obj/count, avg_anyobj/(l.batch*locations*l.n), count);
+ //if(l.reorg) reorg(l.delta, l.w*l.h, size*l.n, l.batch, 0);
+ }
+}
+
+void backward_detection_layer(const detection_layer l, network net)
+{
+ axpy_cpu(l.batch*l.inputs, 1, l.delta, 1, net.delta, 1);
+}
+
+void get_detection_detections(layer l, int w, int h, float thresh, detection *dets)
+{
+ int i,j,n;
+ float *predictions = l.output;
+ //int per_cell = 5*num+classes;
+ for (i = 0; i < l.side*l.side; ++i){
+ int row = i / l.side;
+ int col = i % l.side;
+ for(n = 0; n < l.n; ++n){
+ int index = i*l.n + n;
+ int p_index = l.side*l.side*l.classes + i*l.n + n;
+ float scale = predictions[p_index];
+ int box_index = l.side*l.side*(l.classes + l.n) + (i*l.n + n)*4;
+ box b;
+ b.x = (predictions[box_index + 0] + col) / l.side * w;
+ b.y = (predictions[box_index + 1] + row) / l.side * h;
+ b.w = pow(predictions[box_index + 2], (l.sqrt?2:1)) * w;
+ b.h = pow(predictions[box_index + 3], (l.sqrt?2:1)) * h;
+ dets[index].bbox = b;
+ dets[index].objectness = scale;
+ for(j = 0; j < l.classes; ++j){
+ int class_index = i*l.classes;
+ float prob = scale*predictions[class_index+j];
+ dets[index].prob[j] = (prob > thresh) ? prob : 0;
+ }
+ }
+ }
+}
+
+#ifdef GPU
+
+void forward_detection_layer_gpu(const detection_layer l, network net)
+{
+ if(!net.train){
+ copy_gpu(l.batch*l.inputs, net.input_gpu, 1, l.output_gpu, 1);
+ return;
+ }
+
+ cuda_pull_array(net.input_gpu, net.input, l.batch*l.inputs);
+ forward_detection_layer(l, net);
+ cuda_push_array(l.output_gpu, l.output, l.batch*l.outputs);
+ cuda_push_array(l.delta_gpu, l.delta, l.batch*l.inputs);
+}
+
+void backward_detection_layer_gpu(detection_layer l, network net)
+{
+ axpy_gpu(l.batch*l.inputs, 1, l.delta_gpu, 1, net.delta_gpu, 1);
+ //copy_gpu(l.batch*l.inputs, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/detection_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/detection_layer.h"
new file mode 100644
index 00000000..1c818535
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/detection_layer.h"
@@ -0,0 +1,18 @@
+#ifndef DETECTION_LAYER_H
+#define DETECTION_LAYER_H
+
+#include "layer.h"
+#include "network.h"
+
+typedef layer detection_layer;
+
+detection_layer make_detection_layer(int batch, int inputs, int n, int size, int classes, int coords, int rescore);
+void forward_detection_layer(const detection_layer l, network net);
+void backward_detection_layer(const detection_layer l, network net);
+
+#ifdef GPU
+void forward_detection_layer_gpu(const detection_layer l, network net);
+void backward_detection_layer_gpu(detection_layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer.c"
new file mode 100644
index 00000000..780554fb
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer.c"
@@ -0,0 +1,60 @@
+#include "dropout_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include
+#include
+
+dropout_layer make_dropout_layer(int batch, int inputs, float probability)
+{
+ dropout_layer l = {0};
+ l.type = DROPOUT;
+ l.probability = probability;
+ l.inputs = inputs;
+ l.outputs = inputs;
+ l.batch = batch;
+ l.rand = calloc(inputs*batch, sizeof(float));
+ l.scale = 1./(1.-probability);
+ l.forward = forward_dropout_layer;
+ l.backward = backward_dropout_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_dropout_layer_gpu;
+ l.backward_gpu = backward_dropout_layer_gpu;
+ l.rand_gpu = cuda_make_array(l.rand, inputs*batch);
+ #endif
+ fprintf(stderr, "dropout p = %.2f %4d -> %4d\n", probability, inputs, inputs);
+ return l;
+}
+
+void resize_dropout_layer(dropout_layer *l, int inputs)
+{
+ l->rand = realloc(l->rand, l->inputs*l->batch*sizeof(float));
+ #ifdef GPU
+ cuda_free(l->rand_gpu);
+
+ l->rand_gpu = cuda_make_array(l->rand, inputs*l->batch);
+ #endif
+}
+
+void forward_dropout_layer(dropout_layer l, network net)
+{
+ int i;
+ if (!net.train) return;
+ for(i = 0; i < l.batch * l.inputs; ++i){
+ float r = rand_uniform(0, 1);
+ l.rand[i] = r;
+ if(r < l.probability) net.input[i] = 0;
+ else net.input[i] *= l.scale;
+ }
+}
+
+void backward_dropout_layer(dropout_layer l, network net)
+{
+ int i;
+ if(!net.delta) return;
+ for(i = 0; i < l.batch * l.inputs; ++i){
+ float r = l.rand[i];
+ if(r < l.probability) net.delta[i] = 0;
+ else net.delta[i] *= l.scale;
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer.h"
new file mode 100644
index 00000000..01f94d4d
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer.h"
@@ -0,0 +1,20 @@
+#ifndef DROPOUT_LAYER_H
+#define DROPOUT_LAYER_H
+
+#include "layer.h"
+#include "network.h"
+
+typedef layer dropout_layer;
+
+dropout_layer make_dropout_layer(int batch, int inputs, float probability);
+
+void forward_dropout_layer(dropout_layer l, network net);
+void backward_dropout_layer(dropout_layer l, network net);
+void resize_dropout_layer(dropout_layer *l, int inputs);
+
+#ifdef GPU
+void forward_dropout_layer_gpu(dropout_layer l, network net);
+void backward_dropout_layer_gpu(dropout_layer l, network net);
+
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer_kernels.cu"
new file mode 100644
index 00000000..bd12b678
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/dropout_layer_kernels.cu"
@@ -0,0 +1,41 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "dropout_layer.h"
+#include "cuda.h"
+#include "utils.h"
+}
+
+__global__ void yoloswag420blazeit360noscope(float *input, int size, float *rand, float prob, float scale)
+{
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id < size) input[id] = (rand[id] < prob) ? 0 : input[id]*scale;
+}
+
+void forward_dropout_layer_gpu(dropout_layer layer, network net)
+{
+ if (!net.train) return;
+ int size = layer.inputs*layer.batch;
+ cuda_random(layer.rand_gpu, size);
+ /*
+ int i;
+ for(i = 0; i < size; ++i){
+ layer.rand[i] = rand_uniform();
+ }
+ cuda_push_array(layer.rand_gpu, layer.rand, size);
+ */
+
+ yoloswag420blazeit360noscope<<>>(net.input_gpu, size, layer.rand_gpu, layer.probability, layer.scale);
+ check_error(cudaPeekAtLastError());
+}
+
+void backward_dropout_layer_gpu(dropout_layer layer, network net)
+{
+ if(!net.delta_gpu) return;
+ int size = layer.inputs*layer.batch;
+
+ yoloswag420blazeit360noscope<<>>(net.delta_gpu, size, layer.rand_gpu, layer.probability, layer.scale);
+ check_error(cudaPeekAtLastError());
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/gemm.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/gemm.c"
new file mode 100644
index 00000000..648027f2
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/gemm.c"
@@ -0,0 +1,324 @@
+#include "gemm.h"
+#include "utils.h"
+#include "cuda.h"
+#include
+#include
+#include
+
+void gemm_bin(int M, int N, int K, float ALPHA,
+ char *A, int lda,
+ float *B, int ldb,
+ float *C, int ldc)
+{
+ int i,j,k;
+ for(i = 0; i < M; ++i){
+ for(k = 0; k < K; ++k){
+ char A_PART = A[i*lda+k];
+ if(A_PART){
+ for(j = 0; j < N; ++j){
+ C[i*ldc+j] += B[k*ldb+j];
+ }
+ } else {
+ for(j = 0; j < N; ++j){
+ C[i*ldc+j] -= B[k*ldb+j];
+ }
+ }
+ }
+ }
+}
+
+float *random_matrix(int rows, int cols)
+{
+ int i;
+ float *m = calloc(rows*cols, sizeof(float));
+ for(i = 0; i < rows*cols; ++i){
+ m[i] = (float)rand()/RAND_MAX;
+ }
+ return m;
+}
+
+void time_random_matrix(int TA, int TB, int m, int k, int n)
+{
+ float *a;
+ if(!TA) a = random_matrix(m,k);
+ else a = random_matrix(k,m);
+ int lda = (!TA)?k:m;
+ float *b;
+ if(!TB) b = random_matrix(k,n);
+ else b = random_matrix(n,k);
+ int ldb = (!TB)?n:k;
+
+ float *c = random_matrix(m,n);
+ int i;
+ clock_t start = clock(), end;
+ for(i = 0; i<10; ++i){
+ gemm_cpu(TA,TB,m,n,k,1,a,lda,b,ldb,1,c,n);
+ }
+ end = clock();
+ printf("Matrix Multiplication %dx%d * %dx%d, TA=%d, TB=%d: %lf ms\n",m,k,k,n, TA, TB, (float)(end-start)/CLOCKS_PER_SEC);
+ free(a);
+ free(b);
+ free(c);
+}
+
+
+void gemm(int TA, int TB, int M, int N, int K, float ALPHA,
+ float *A, int lda,
+ float *B, int ldb,
+ float BETA,
+ float *C, int ldc)
+{
+ gemm_cpu( TA, TB, M, N, K, ALPHA,A,lda, B, ldb,BETA,C,ldc);
+}
+
+void gemm_nn(int M, int N, int K, float ALPHA,
+ float *A, int lda,
+ float *B, int ldb,
+ float *C, int ldc)
+{
+ int i,j,k;
+ #pragma omp parallel for
+ for(i = 0; i < M; ++i){
+ for(k = 0; k < K; ++k){
+ register float A_PART = ALPHA*A[i*lda+k];
+ for(j = 0; j < N; ++j){
+ C[i*ldc+j] += A_PART*B[k*ldb+j];
+ }
+ }
+ }
+}
+
+void gemm_nt(int M, int N, int K, float ALPHA,
+ float *A, int lda,
+ float *B, int ldb,
+ float *C, int ldc)
+{
+ int i,j,k;
+ #pragma omp parallel for
+ for(i = 0; i < M; ++i){
+ for(j = 0; j < N; ++j){
+ register float sum = 0;
+ for(k = 0; k < K; ++k){
+ sum += ALPHA*A[i*lda+k]*B[j*ldb + k];
+ }
+ C[i*ldc+j] += sum;
+ }
+ }
+}
+
+void gemm_tn(int M, int N, int K, float ALPHA,
+ float *A, int lda,
+ float *B, int ldb,
+ float *C, int ldc)
+{
+ int i,j,k;
+ #pragma omp parallel for
+ for(i = 0; i < M; ++i){
+ for(k = 0; k < K; ++k){
+ register float A_PART = ALPHA*A[k*lda+i];
+ for(j = 0; j < N; ++j){
+ C[i*ldc+j] += A_PART*B[k*ldb+j];
+ }
+ }
+ }
+}
+
+void gemm_tt(int M, int N, int K, float ALPHA,
+ float *A, int lda,
+ float *B, int ldb,
+ float *C, int ldc)
+{
+ int i,j,k;
+ #pragma omp parallel for
+ for(i = 0; i < M; ++i){
+ for(j = 0; j < N; ++j){
+ register float sum = 0;
+ for(k = 0; k < K; ++k){
+ sum += ALPHA*A[i+k*lda]*B[k+j*ldb];
+ }
+ C[i*ldc+j] += sum;
+ }
+ }
+}
+
+
+void gemm_cpu(int TA, int TB, int M, int N, int K, float ALPHA,
+ float *A, int lda,
+ float *B, int ldb,
+ float BETA,
+ float *C, int ldc)
+{
+ //printf("cpu: %d %d %d %d %d %f %d %d %f %d\n",TA, TB, M, N, K, ALPHA, lda, ldb, BETA, ldc);
+ int i, j;
+ for(i = 0; i < M; ++i){
+ for(j = 0; j < N; ++j){
+ C[i*ldc + j] *= BETA;
+ }
+ }
+ if(!TA && !TB)
+ gemm_nn(M, N, K, ALPHA,A,lda, B, ldb,C,ldc);
+ else if(TA && !TB)
+ gemm_tn(M, N, K, ALPHA,A,lda, B, ldb,C,ldc);
+ else if(!TA && TB)
+ gemm_nt(M, N, K, ALPHA,A,lda, B, ldb,C,ldc);
+ else
+ gemm_tt(M, N, K, ALPHA,A,lda, B, ldb,C,ldc);
+}
+
+#ifdef GPU
+
+#include
+
+void gemm_gpu(int TA, int TB, int M, int N, int K, float ALPHA,
+ float *A_gpu, int lda,
+ float *B_gpu, int ldb,
+ float BETA,
+ float *C_gpu, int ldc)
+{
+ cublasHandle_t handle = blas_handle();
+ cudaError_t status = cublasSgemm(handle, (TB ? CUBLAS_OP_T : CUBLAS_OP_N),
+ (TA ? CUBLAS_OP_T : CUBLAS_OP_N), N, M, K, &ALPHA, B_gpu, ldb, A_gpu, lda, &BETA, C_gpu, ldc);
+ check_error(status);
+}
+
+#include
+#include
+#include
+#include
+
+void time_gpu_random_matrix(int TA, int TB, int m, int k, int n)
+{
+ float *a;
+ if(!TA) a = random_matrix(m,k);
+ else a = random_matrix(k,m);
+ int lda = (!TA)?k:m;
+ float *b;
+ if(!TB) b = random_matrix(k,n);
+ else b = random_matrix(n,k);
+ int ldb = (!TB)?n:k;
+
+ float *c = random_matrix(m,n);
+ int i;
+ clock_t start = clock(), end;
+ for(i = 0; i<32; ++i){
+ gemm_gpu(TA,TB,m,n,k,1,a,lda,b,ldb,1,c,n);
+ }
+ end = clock();
+ printf("Matrix Multiplication %dx%d * %dx%d, TA=%d, TB=%d: %lf s\n",m,k,k,n, TA, TB, (float)(end-start)/CLOCKS_PER_SEC);
+ free(a);
+ free(b);
+ free(c);
+}
+
+void time_gpu(int TA, int TB, int m, int k, int n)
+{
+ int iter = 10;
+ float *a = random_matrix(m,k);
+ float *b = random_matrix(k,n);
+
+ int lda = (!TA)?k:m;
+ int ldb = (!TB)?n:k;
+
+ float *c = random_matrix(m,n);
+
+ float *a_cl = cuda_make_array(a, m*k);
+ float *b_cl = cuda_make_array(b, k*n);
+ float *c_cl = cuda_make_array(c, m*n);
+
+ int i;
+ clock_t start = clock(), end;
+ for(i = 0; i
+#include
+#include
+#include
+
+static void increment_layer(layer *l, int steps)
+{
+ int num = l->outputs*l->batch*steps;
+ l->output += num;
+ l->delta += num;
+ l->x += num;
+ l->x_norm += num;
+
+#ifdef GPU
+ l->output_gpu += num;
+ l->delta_gpu += num;
+ l->x_gpu += num;
+ l->x_norm_gpu += num;
+#endif
+}
+
+layer make_gru_layer(int batch, int inputs, int outputs, int steps, int batch_normalize, int adam)
+{
+ fprintf(stderr, "GRU Layer: %d inputs, %d outputs\n", inputs, outputs);
+ batch = batch / steps;
+ layer l = {0};
+ l.batch = batch;
+ l.type = GRU;
+ l.steps = steps;
+ l.inputs = inputs;
+
+ l.uz = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.uz) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.uz->batch = batch;
+
+ l.wz = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wz) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wz->batch = batch;
+
+ l.ur = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.ur) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.ur->batch = batch;
+
+ l.wr = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wr) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wr->batch = batch;
+
+
+
+ l.uh = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.uh) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.uh->batch = batch;
+
+ l.wh = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wh) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wh->batch = batch;
+
+ l.batch_normalize = batch_normalize;
+
+
+ l.outputs = outputs;
+ l.output = calloc(outputs*batch*steps, sizeof(float));
+ l.delta = calloc(outputs*batch*steps, sizeof(float));
+ l.state = calloc(outputs*batch, sizeof(float));
+ l.prev_state = calloc(outputs*batch, sizeof(float));
+ l.forgot_state = calloc(outputs*batch, sizeof(float));
+ l.forgot_delta = calloc(outputs*batch, sizeof(float));
+
+ l.r_cpu = calloc(outputs*batch, sizeof(float));
+ l.z_cpu = calloc(outputs*batch, sizeof(float));
+ l.h_cpu = calloc(outputs*batch, sizeof(float));
+
+ l.forward = forward_gru_layer;
+ l.backward = backward_gru_layer;
+ l.update = update_gru_layer;
+
+#ifdef GPU
+ l.forward_gpu = forward_gru_layer_gpu;
+ l.backward_gpu = backward_gru_layer_gpu;
+ l.update_gpu = update_gru_layer_gpu;
+
+ l.forgot_state_gpu = cuda_make_array(0, batch*outputs);
+ l.forgot_delta_gpu = cuda_make_array(0, batch*outputs);
+ l.prev_state_gpu = cuda_make_array(0, batch*outputs);
+ l.state_gpu = cuda_make_array(0, batch*outputs);
+ l.output_gpu = cuda_make_array(0, batch*outputs*steps);
+ l.delta_gpu = cuda_make_array(0, batch*outputs*steps);
+ l.r_gpu = cuda_make_array(0, batch*outputs);
+ l.z_gpu = cuda_make_array(0, batch*outputs);
+ l.h_gpu = cuda_make_array(0, batch*outputs);
+
+#ifdef CUDNN
+ cudnnSetTensor4dDescriptor(l.uz->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.uz->out_c, l.uz->out_h, l.uz->out_w);
+ cudnnSetTensor4dDescriptor(l.uh->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.uh->out_c, l.uh->out_h, l.uh->out_w);
+ cudnnSetTensor4dDescriptor(l.ur->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.ur->out_c, l.ur->out_h, l.ur->out_w);
+ cudnnSetTensor4dDescriptor(l.wz->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wz->out_c, l.wz->out_h, l.wz->out_w);
+ cudnnSetTensor4dDescriptor(l.wh->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wh->out_c, l.wh->out_h, l.wh->out_w);
+ cudnnSetTensor4dDescriptor(l.wr->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wr->out_c, l.wr->out_h, l.wr->out_w);
+#endif
+#endif
+
+ return l;
+}
+
+void update_gru_layer(layer l, update_args a)
+{
+ update_connected_layer(*(l.ur), a);
+ update_connected_layer(*(l.uz), a);
+ update_connected_layer(*(l.uh), a);
+ update_connected_layer(*(l.wr), a);
+ update_connected_layer(*(l.wz), a);
+ update_connected_layer(*(l.wh), a);
+}
+
+void forward_gru_layer(layer l, network net)
+{
+ network s = net;
+ s.train = net.train;
+ int i;
+ layer uz = *(l.uz);
+ layer ur = *(l.ur);
+ layer uh = *(l.uh);
+
+ layer wz = *(l.wz);
+ layer wr = *(l.wr);
+ layer wh = *(l.wh);
+
+ fill_cpu(l.outputs * l.batch * l.steps, 0, uz.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, ur.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, uh.delta, 1);
+
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wz.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wr.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wh.delta, 1);
+ if(net.train) {
+ fill_cpu(l.outputs * l.batch * l.steps, 0, l.delta, 1);
+ copy_cpu(l.outputs*l.batch, l.state, 1, l.prev_state, 1);
+ }
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input = l.state;
+ forward_connected_layer(wz, s);
+ forward_connected_layer(wr, s);
+
+ s.input = net.input;
+ forward_connected_layer(uz, s);
+ forward_connected_layer(ur, s);
+ forward_connected_layer(uh, s);
+
+
+ copy_cpu(l.outputs*l.batch, uz.output, 1, l.z_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, wz.output, 1, l.z_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, ur.output, 1, l.r_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, wr.output, 1, l.r_cpu, 1);
+
+ activate_array(l.z_cpu, l.outputs*l.batch, LOGISTIC);
+ activate_array(l.r_cpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_cpu(l.outputs*l.batch, l.state, 1, l.forgot_state, 1);
+ mul_cpu(l.outputs*l.batch, l.r_cpu, 1, l.forgot_state, 1);
+
+ s.input = l.forgot_state;
+ forward_connected_layer(wh, s);
+
+ copy_cpu(l.outputs*l.batch, uh.output, 1, l.h_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, wh.output, 1, l.h_cpu, 1);
+
+ if(l.tanh){
+ activate_array(l.h_cpu, l.outputs*l.batch, TANH);
+ } else {
+ activate_array(l.h_cpu, l.outputs*l.batch, LOGISTIC);
+ }
+
+ weighted_sum_cpu(l.state, l.h_cpu, l.z_cpu, l.outputs*l.batch, l.output);
+
+ copy_cpu(l.outputs*l.batch, l.output, 1, l.state, 1);
+
+ net.input += l.inputs*l.batch;
+ l.output += l.outputs*l.batch;
+ increment_layer(&uz, 1);
+ increment_layer(&ur, 1);
+ increment_layer(&uh, 1);
+
+ increment_layer(&wz, 1);
+ increment_layer(&wr, 1);
+ increment_layer(&wh, 1);
+ }
+}
+
+void backward_gru_layer(layer l, network net)
+{
+}
+
+#ifdef GPU
+
+void pull_gru_layer(layer l)
+{
+}
+
+void push_gru_layer(layer l)
+{
+}
+
+void update_gru_layer_gpu(layer l, update_args a)
+{
+ update_connected_layer_gpu(*(l.ur), a);
+ update_connected_layer_gpu(*(l.uz), a);
+ update_connected_layer_gpu(*(l.uh), a);
+ update_connected_layer_gpu(*(l.wr), a);
+ update_connected_layer_gpu(*(l.wz), a);
+ update_connected_layer_gpu(*(l.wh), a);
+}
+
+void forward_gru_layer_gpu(layer l, network net)
+{
+ network s = {0};
+ s.train = net.train;
+ int i;
+ layer uz = *(l.uz);
+ layer ur = *(l.ur);
+ layer uh = *(l.uh);
+
+ layer wz = *(l.wz);
+ layer wr = *(l.wr);
+ layer wh = *(l.wh);
+
+ fill_gpu(l.outputs * l.batch * l.steps, 0, uz.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, ur.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, uh.delta_gpu, 1);
+
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wz.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wr.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wh.delta_gpu, 1);
+ if(net.train) {
+ fill_gpu(l.outputs * l.batch * l.steps, 0, l.delta_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.state_gpu, 1, l.prev_state_gpu, 1);
+ }
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input_gpu = l.state_gpu;
+ forward_connected_layer_gpu(wz, s);
+ forward_connected_layer_gpu(wr, s);
+
+ s.input_gpu = net.input_gpu;
+ forward_connected_layer_gpu(uz, s);
+ forward_connected_layer_gpu(ur, s);
+ forward_connected_layer_gpu(uh, s);
+
+ copy_gpu(l.outputs*l.batch, uz.output_gpu, 1, l.z_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, wz.output_gpu, 1, l.z_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, ur.output_gpu, 1, l.r_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, wr.output_gpu, 1, l.r_gpu, 1);
+
+ activate_array_gpu(l.z_gpu, l.outputs*l.batch, LOGISTIC);
+ activate_array_gpu(l.r_gpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_gpu(l.outputs*l.batch, l.state_gpu, 1, l.forgot_state_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.r_gpu, 1, l.forgot_state_gpu, 1);
+
+ s.input_gpu = l.forgot_state_gpu;
+ forward_connected_layer_gpu(wh, s);
+
+ copy_gpu(l.outputs*l.batch, uh.output_gpu, 1, l.h_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, wh.output_gpu, 1, l.h_gpu, 1);
+
+ if(l.tanh){
+ activate_array_gpu(l.h_gpu, l.outputs*l.batch, TANH);
+ } else {
+ activate_array_gpu(l.h_gpu, l.outputs*l.batch, LOGISTIC);
+ }
+
+ weighted_sum_gpu(l.state_gpu, l.h_gpu, l.z_gpu, l.outputs*l.batch, l.output_gpu);
+ copy_gpu(l.outputs*l.batch, l.output_gpu, 1, l.state_gpu, 1);
+
+ net.input_gpu += l.inputs*l.batch;
+ l.output_gpu += l.outputs*l.batch;
+ increment_layer(&uz, 1);
+ increment_layer(&ur, 1);
+ increment_layer(&uh, 1);
+
+ increment_layer(&wz, 1);
+ increment_layer(&wr, 1);
+ increment_layer(&wh, 1);
+ }
+}
+
+void backward_gru_layer_gpu(layer l, network net)
+{
+ network s = {0};
+ s.train = net.train;
+ int i;
+ layer uz = *(l.uz);
+ layer ur = *(l.ur);
+ layer uh = *(l.uh);
+
+ layer wz = *(l.wz);
+ layer wr = *(l.wr);
+ layer wh = *(l.wh);
+
+ increment_layer(&uz, l.steps - 1);
+ increment_layer(&ur, l.steps - 1);
+ increment_layer(&uh, l.steps - 1);
+
+ increment_layer(&wz, l.steps - 1);
+ increment_layer(&wr, l.steps - 1);
+ increment_layer(&wh, l.steps - 1);
+
+ net.input_gpu += l.inputs*l.batch*(l.steps-1);
+ if(net.delta_gpu) net.delta_gpu += l.inputs*l.batch*(l.steps-1);
+ l.output_gpu += l.outputs*l.batch*(l.steps-1);
+ l.delta_gpu += l.outputs*l.batch*(l.steps-1);
+ float *end_state = l.output_gpu;
+ for (i = l.steps-1; i >= 0; --i) {
+ if(i != 0) copy_gpu(l.outputs*l.batch, l.output_gpu - l.outputs*l.batch, 1, l.state_gpu, 1);
+ else copy_gpu(l.outputs*l.batch, l.prev_state_gpu, 1, l.state_gpu, 1);
+ float *prev_delta_gpu = (i == 0) ? 0 : l.delta_gpu - l.outputs*l.batch;
+
+ copy_gpu(l.outputs*l.batch, uz.output_gpu, 1, l.z_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, wz.output_gpu, 1, l.z_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, ur.output_gpu, 1, l.r_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, wr.output_gpu, 1, l.r_gpu, 1);
+
+ activate_array_gpu(l.z_gpu, l.outputs*l.batch, LOGISTIC);
+ activate_array_gpu(l.r_gpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_gpu(l.outputs*l.batch, uh.output_gpu, 1, l.h_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, wh.output_gpu, 1, l.h_gpu, 1);
+
+ if(l.tanh){
+ activate_array_gpu(l.h_gpu, l.outputs*l.batch, TANH);
+ } else {
+ activate_array_gpu(l.h_gpu, l.outputs*l.batch, LOGISTIC);
+ }
+
+ weighted_delta_gpu(l.state_gpu, l.h_gpu, l.z_gpu, prev_delta_gpu, uh.delta_gpu, uz.delta_gpu, l.outputs*l.batch, l.delta_gpu);
+
+ if(l.tanh){
+ gradient_array_gpu(l.h_gpu, l.outputs*l.batch, TANH, uh.delta_gpu);
+ } else {
+ gradient_array_gpu(l.h_gpu, l.outputs*l.batch, LOGISTIC, uh.delta_gpu);
+ }
+
+ copy_gpu(l.outputs*l.batch, uh.delta_gpu, 1, wh.delta_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, l.state_gpu, 1, l.forgot_state_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.r_gpu, 1, l.forgot_state_gpu, 1);
+ fill_gpu(l.outputs*l.batch, 0, l.forgot_delta_gpu, 1);
+
+ s.input_gpu = l.forgot_state_gpu;
+ s.delta_gpu = l.forgot_delta_gpu;
+
+ backward_connected_layer_gpu(wh, s);
+ if(prev_delta_gpu) mult_add_into_gpu(l.outputs*l.batch, l.forgot_delta_gpu, l.r_gpu, prev_delta_gpu);
+ mult_add_into_gpu(l.outputs*l.batch, l.forgot_delta_gpu, l.state_gpu, ur.delta_gpu);
+
+ gradient_array_gpu(l.r_gpu, l.outputs*l.batch, LOGISTIC, ur.delta_gpu);
+ copy_gpu(l.outputs*l.batch, ur.delta_gpu, 1, wr.delta_gpu, 1);
+
+ gradient_array_gpu(l.z_gpu, l.outputs*l.batch, LOGISTIC, uz.delta_gpu);
+ copy_gpu(l.outputs*l.batch, uz.delta_gpu, 1, wz.delta_gpu, 1);
+
+ s.input_gpu = l.state_gpu;
+ s.delta_gpu = prev_delta_gpu;
+
+ backward_connected_layer_gpu(wr, s);
+ backward_connected_layer_gpu(wz, s);
+
+ s.input_gpu = net.input_gpu;
+ s.delta_gpu = net.delta_gpu;
+
+ backward_connected_layer_gpu(uh, s);
+ backward_connected_layer_gpu(ur, s);
+ backward_connected_layer_gpu(uz, s);
+
+
+ net.input_gpu -= l.inputs*l.batch;
+ if(net.delta_gpu) net.delta_gpu -= l.inputs*l.batch;
+ l.output_gpu -= l.outputs*l.batch;
+ l.delta_gpu -= l.outputs*l.batch;
+ increment_layer(&uz, -1);
+ increment_layer(&ur, -1);
+ increment_layer(&uh, -1);
+
+ increment_layer(&wz, -1);
+ increment_layer(&wr, -1);
+ increment_layer(&wh, -1);
+ }
+ copy_gpu(l.outputs*l.batch, end_state, 1, l.state_gpu, 1);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/gru_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/gru_layer.h"
new file mode 100644
index 00000000..9067942e
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/gru_layer.h"
@@ -0,0 +1,24 @@
+
+#ifndef GRU_LAYER_H
+#define GRU_LAYER_H
+
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_gru_layer(int batch, int inputs, int outputs, int steps, int batch_normalize, int adam);
+
+void forward_gru_layer(layer l, network state);
+void backward_gru_layer(layer l, network state);
+void update_gru_layer(layer l, update_args a);
+
+#ifdef GPU
+void forward_gru_layer_gpu(layer l, network state);
+void backward_gru_layer_gpu(layer l, network state);
+void update_gru_layer_gpu(layer l, update_args a);
+void push_gru_layer(layer l);
+void pull_gru_layer(layer l);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col.c"
new file mode 100644
index 00000000..69ec98a9
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col.c"
@@ -0,0 +1,40 @@
+#include "im2col.h"
+#include
+float im2col_get_pixel(float *im, int height, int width, int channels,
+ int row, int col, int channel, int pad)
+{
+ row -= pad;
+ col -= pad;
+
+ if (row < 0 || col < 0 ||
+ row >= height || col >= width) return 0;
+ return im[col + width*(row + height*channel)];
+}
+
+//From Berkeley Vision's Caffe!
+//https://github.com/BVLC/caffe/blob/master/LICENSE
+void im2col_cpu(float* data_im,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float* data_col)
+{
+ int c,h,w;
+ int height_col = (height + 2*pad - ksize) / stride + 1;
+ int width_col = (width + 2*pad - ksize) / stride + 1;
+
+ int channels_col = channels * ksize * ksize;
+ for (c = 0; c < channels_col; ++c) {
+ int w_offset = c % ksize;
+ int h_offset = (c / ksize) % ksize;
+ int c_im = c / ksize / ksize;
+ for (h = 0; h < height_col; ++h) {
+ for (w = 0; w < width_col; ++w) {
+ int im_row = h_offset + h * stride;
+ int im_col = w_offset + w * stride;
+ int col_index = (c * height_col + h) * width_col + w;
+ data_col[col_index] = im2col_get_pixel(data_im, height, width, channels,
+ im_row, im_col, c_im, pad);
+ }
+ }
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col.h"
new file mode 100644
index 00000000..02c4247f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col.h"
@@ -0,0 +1,15 @@
+#ifndef IM2COL_H
+#define IM2COL_H
+
+void im2col_cpu(float* data_im,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float* data_col);
+
+#ifdef GPU
+
+void im2col_gpu(float *im,
+ int channels, int height, int width,
+ int ksize, int stride, int pad,float *data_col);
+
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col_kernels.cu"
new file mode 100644
index 00000000..07b5e679
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/im2col_kernels.cu"
@@ -0,0 +1,61 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "im2col.h"
+#include "cuda.h"
+}
+
+// src: https://github.com/BVLC/caffe/blob/master/src/caffe/util/im2col.cu
+// You may also want to read: https://github.com/BVLC/caffe/blob/master/LICENSE
+
+__global__ void im2col_gpu_kernel(const int n, const float* data_im,
+ const int height, const int width, const int ksize,
+ const int pad,
+ const int stride,
+ const int height_col, const int width_col,
+ float *data_col) {
+ int index = blockIdx.x*blockDim.x+threadIdx.x;
+ for(; index < n; index += blockDim.x*gridDim.x){
+ int w_out = index % width_col;
+ int h_index = index / width_col;
+ int h_out = h_index % height_col;
+ int channel_in = h_index / height_col;
+ int channel_out = channel_in * ksize * ksize;
+ int h_in = h_out * stride - pad;
+ int w_in = w_out * stride - pad;
+ float* data_col_ptr = data_col;
+ data_col_ptr += (channel_out * height_col + h_out) * width_col + w_out;
+ const float* data_im_ptr = data_im;
+ data_im_ptr += (channel_in * height + h_in) * width + w_in;
+ for (int i = 0; i < ksize; ++i) {
+ for (int j = 0; j < ksize; ++j) {
+ int h = h_in + i;
+ int w = w_in + j;
+
+ *data_col_ptr = (h >= 0 && w >= 0 && h < height && w < width) ?
+ data_im_ptr[i * width + j] : 0;
+
+ //*data_col_ptr = data_im_ptr[ii * width + jj];
+
+ data_col_ptr += height_col * width_col;
+ }
+ }
+ }
+}
+
+void im2col_gpu(float *im,
+ int channels, int height, int width,
+ int ksize, int stride, int pad, float *data_col){
+ // We are going to launch channels * height_col * width_col kernels, each
+ // kernel responsible for copying a single-channel grid.
+ int height_col = (height + 2 * pad - ksize) / stride + 1;
+ int width_col = (width + 2 * pad - ksize) / stride + 1;
+ int num_kernels = channels * height_col * width_col;
+ im2col_gpu_kernel<<<(num_kernels+BLOCK-1)/BLOCK,
+ BLOCK>>>(
+ num_kernels, im, height, width, ksize, pad,
+ stride, height_col,
+ width_col, data_col);
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image.c"
new file mode 100644
index 00000000..4a2c6baf
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image.c"
@@ -0,0 +1,1466 @@
+#include "image.h"
+#include "utils.h"
+#include "blas.h"
+#include "cuda.h"
+#include
+#include
+
+#define STB_IMAGE_IMPLEMENTATION
+#include "stb_image.h"
+#define STB_IMAGE_WRITE_IMPLEMENTATION
+#include "stb_image_write.h"
+
+int windows = 0;
+
+float colors[6][3] = { {1,0,1}, {0,0,1},{0,1,1},{0,1,0},{1,1,0},{1,0,0} };
+
+float get_color(int c, int x, int max)
+{
+ float ratio = ((float)x/max)*5;
+ int i = floor(ratio);
+ int j = ceil(ratio);
+ ratio -= i;
+ float r = (1-ratio) * colors[i][c] + ratio*colors[j][c];
+ //printf("%f\n", r);
+ return r;
+}
+
+image mask_to_rgb(image mask)
+{
+ int n = mask.c;
+ image im = make_image(mask.w, mask.h, 3);
+ int i, j;
+ for(j = 0; j < n; ++j){
+ int offset = j*123457 % n;
+ float red = get_color(2,offset,n);
+ float green = get_color(1,offset,n);
+ float blue = get_color(0,offset,n);
+ for(i = 0; i < im.w*im.h; ++i){
+ im.data[i + 0*im.w*im.h] += mask.data[j*im.h*im.w + i]*red;
+ im.data[i + 1*im.w*im.h] += mask.data[j*im.h*im.w + i]*green;
+ im.data[i + 2*im.w*im.h] += mask.data[j*im.h*im.w + i]*blue;
+ }
+ }
+ return im;
+}
+
+static float get_pixel(image m, int x, int y, int c)
+{
+ assert(x < m.w && y < m.h && c < m.c);
+ return m.data[c*m.h*m.w + y*m.w + x];
+}
+static float get_pixel_extend(image m, int x, int y, int c)
+{
+ if(x < 0 || x >= m.w || y < 0 || y >= m.h) return 0;
+ /*
+ if(x < 0) x = 0;
+ if(x >= m.w) x = m.w-1;
+ if(y < 0) y = 0;
+ if(y >= m.h) y = m.h-1;
+ */
+ if(c < 0 || c >= m.c) return 0;
+ return get_pixel(m, x, y, c);
+}
+static void set_pixel(image m, int x, int y, int c, float val)
+{
+ if (x < 0 || y < 0 || c < 0 || x >= m.w || y >= m.h || c >= m.c) return;
+ assert(x < m.w && y < m.h && c < m.c);
+ m.data[c*m.h*m.w + y*m.w + x] = val;
+}
+static void add_pixel(image m, int x, int y, int c, float val)
+{
+ assert(x < m.w && y < m.h && c < m.c);
+ m.data[c*m.h*m.w + y*m.w + x] += val;
+}
+
+static float bilinear_interpolate(image im, float x, float y, int c)
+{
+ int ix = (int) floorf(x);
+ int iy = (int) floorf(y);
+
+ float dx = x - ix;
+ float dy = y - iy;
+
+ float val = (1-dy) * (1-dx) * get_pixel_extend(im, ix, iy, c) +
+ dy * (1-dx) * get_pixel_extend(im, ix, iy+1, c) +
+ (1-dy) * dx * get_pixel_extend(im, ix+1, iy, c) +
+ dy * dx * get_pixel_extend(im, ix+1, iy+1, c);
+ return val;
+}
+
+
+void composite_image(image source, image dest, int dx, int dy)
+{
+ int x,y,k;
+ for(k = 0; k < source.c; ++k){
+ for(y = 0; y < source.h; ++y){
+ for(x = 0; x < source.w; ++x){
+ float val = get_pixel(source, x, y, k);
+ float val2 = get_pixel_extend(dest, dx+x, dy+y, k);
+ set_pixel(dest, dx+x, dy+y, k, val * val2);
+ }
+ }
+ }
+}
+
+image border_image(image a, int border)
+{
+ image b = make_image(a.w + 2*border, a.h + 2*border, a.c);
+ int x,y,k;
+ for(k = 0; k < b.c; ++k){
+ for(y = 0; y < b.h; ++y){
+ for(x = 0; x < b.w; ++x){
+ float val = get_pixel_extend(a, x - border, y - border, k);
+ if(x - border < 0 || x - border >= a.w || y - border < 0 || y - border >= a.h) val = 1;
+ set_pixel(b, x, y, k, val);
+ }
+ }
+ }
+ return b;
+}
+
+image tile_images(image a, image b, int dx)
+{
+ if(a.w == 0) return copy_image(b);
+ image c = make_image(a.w + b.w + dx, (a.h > b.h) ? a.h : b.h, (a.c > b.c) ? a.c : b.c);
+ fill_cpu(c.w*c.h*c.c, 1, c.data, 1);
+ embed_image(a, c, 0, 0);
+ composite_image(b, c, a.w + dx, 0);
+ return c;
+}
+
+image get_label(image **characters, char *string, int size)
+{
+ size = size/10;
+ if(size > 7) size = 7;
+ image label = make_empty_image(0,0,0);
+ while(*string){
+ image l = characters[size][(int)*string];
+ image n = tile_images(label, l, -size - 1 + (size+1)/2);
+ free_image(label);
+ label = n;
+ ++string;
+ }
+ image b = border_image(label, label.h*.25);
+ free_image(label);
+ return b;
+}
+
+void draw_label(image a, int r, int c, image label, const float *rgb)
+{
+ int w = label.w;
+ int h = label.h;
+ if (r - h >= 0) r = r - h;
+
+ int i, j, k;
+ for(j = 0; j < h && j + r < a.h; ++j){
+ for(i = 0; i < w && i + c < a.w; ++i){
+ for(k = 0; k < label.c; ++k){
+ float val = get_pixel(label, i, j, k);
+ set_pixel(a, i+c, j+r, k, rgb[k] * val);
+ }
+ }
+ }
+}
+
+void draw_box(image a, int x1, int y1, int x2, int y2, float r, float g, float b)
+{
+ //normalize_image(a);
+ int i;
+ if(x1 < 0) x1 = 0;
+ if(x1 >= a.w) x1 = a.w-1;
+ if(x2 < 0) x2 = 0;
+ if(x2 >= a.w) x2 = a.w-1;
+
+ if(y1 < 0) y1 = 0;
+ if(y1 >= a.h) y1 = a.h-1;
+ if(y2 < 0) y2 = 0;
+ if(y2 >= a.h) y2 = a.h-1;
+
+ for(i = x1; i <= x2; ++i){
+ a.data[i + y1*a.w + 0*a.w*a.h] = r;
+ a.data[i + y2*a.w + 0*a.w*a.h] = r;
+
+ a.data[i + y1*a.w + 1*a.w*a.h] = g;
+ a.data[i + y2*a.w + 1*a.w*a.h] = g;
+
+ a.data[i + y1*a.w + 2*a.w*a.h] = b;
+ a.data[i + y2*a.w + 2*a.w*a.h] = b;
+ }
+ for(i = y1; i <= y2; ++i){
+ a.data[x1 + i*a.w + 0*a.w*a.h] = r;
+ a.data[x2 + i*a.w + 0*a.w*a.h] = r;
+
+ a.data[x1 + i*a.w + 1*a.w*a.h] = g;
+ a.data[x2 + i*a.w + 1*a.w*a.h] = g;
+
+ a.data[x1 + i*a.w + 2*a.w*a.h] = b;
+ a.data[x2 + i*a.w + 2*a.w*a.h] = b;
+ }
+}
+
+void draw_box_width(image a, int x1, int y1, int x2, int y2, int w, float r, float g, float b)
+{
+ int i;
+ for(i = 0; i < w; ++i){
+ draw_box(a, x1+i, y1+i, x2-i, y2-i, r, g, b);
+ }
+}
+
+void draw_bbox(image a, box bbox, int w, float r, float g, float b)
+{
+ int left = (bbox.x-bbox.w/2)*a.w;
+ int right = (bbox.x+bbox.w/2)*a.w;
+ int top = (bbox.y-bbox.h/2)*a.h;
+ int bot = (bbox.y+bbox.h/2)*a.h;
+
+ int i;
+ for(i = 0; i < w; ++i){
+ draw_box(a, left+i, top+i, right-i, bot-i, r, g, b);
+ }
+}
+
+image **load_alphabet()
+{
+ int i, j;
+ const int nsize = 8;
+ image **alphabets = calloc(nsize, sizeof(image));
+ for(j = 0; j < nsize; ++j){
+ alphabets[j] = calloc(128, sizeof(image));
+ for(i = 32; i < 127; ++i){
+ char buff[256];
+ sprintf(buff, "data/labels/%d_%d.png", i, j);
+ alphabets[j][i] = load_image_color(buff, 0, 0);
+ }
+ }
+ return alphabets;
+}
+
+void draw_detections(image im, detection *dets, int num, float thresh, char **names, image **alphabet, int classes)
+{
+ int i,j;
+
+ for(i = 0; i < num; ++i){
+ char labelstr[4096] = {0};
+ int class = -1;
+ for(j = 0; j < classes; ++j){
+ if (dets[i].prob[j] > thresh){
+ if (class < 0) {
+ strcat(labelstr, names[j]);
+ class = j;
+ } else {
+ strcat(labelstr, ", ");
+ strcat(labelstr, names[j]);
+ }
+ printf("%s: %.0f%%\n", names[j], dets[i].prob[j]*100);
+ }
+ }
+ if(class >= 0){
+ int width = im.h * .006;
+
+ /*
+ if(0){
+ width = pow(prob, 1./2.)*10+1;
+ alphabet = 0;
+ }
+ */
+
+ //printf("%d %s: %.0f%%\n", i, names[class], prob*100);
+ int offset = class*123457 % classes;
+ float red = get_color(2,offset,classes);
+ float green = get_color(1,offset,classes);
+ float blue = get_color(0,offset,classes);
+ float rgb[3];
+
+ //width = prob*20+2;
+
+ rgb[0] = red;
+ rgb[1] = green;
+ rgb[2] = blue;
+ box b = dets[i].bbox;
+ //printf("%f %f %f %f\n", b.x, b.y, b.w, b.h);
+
+ int left = (b.x-b.w/2.)*im.w;
+ int right = (b.x+b.w/2.)*im.w;
+ int top = (b.y-b.h/2.)*im.h;
+ int bot = (b.y+b.h/2.)*im.h;
+
+ if(left < 0) left = 0;
+ if(right > im.w-1) right = im.w-1;
+ if(top < 0) top = 0;
+ if(bot > im.h-1) bot = im.h-1;
+
+ draw_box_width(im, left, top, right, bot, width, red, green, blue);
+ if (alphabet) {
+ image label = get_label(alphabet, labelstr, (im.h*.03));
+ draw_label(im, top + width, left, label, rgb);
+ free_image(label);
+ }
+ if (dets[i].mask){
+ image mask = float_to_image(14, 14, 1, dets[i].mask);
+ image resized_mask = resize_image(mask, b.w*im.w, b.h*im.h);
+ image tmask = threshold_image(resized_mask, .5);
+ embed_image(tmask, im, left, top);
+ free_image(mask);
+ free_image(resized_mask);
+ free_image(tmask);
+ }
+ }
+ }
+}
+
+void transpose_image(image im)
+{
+ assert(im.w == im.h);
+ int n, m;
+ int c;
+ for(c = 0; c < im.c; ++c){
+ for(n = 0; n < im.w-1; ++n){
+ for(m = n + 1; m < im.w; ++m){
+ float swap = im.data[m + im.w*(n + im.h*c)];
+ im.data[m + im.w*(n + im.h*c)] = im.data[n + im.w*(m + im.h*c)];
+ im.data[n + im.w*(m + im.h*c)] = swap;
+ }
+ }
+ }
+}
+
+void rotate_image_cw(image im, int times)
+{
+ assert(im.w == im.h);
+ times = (times + 400) % 4;
+ int i, x, y, c;
+ int n = im.w;
+ for(i = 0; i < times; ++i){
+ for(c = 0; c < im.c; ++c){
+ for(x = 0; x < n/2; ++x){
+ for(y = 0; y < (n-1)/2 + 1; ++y){
+ float temp = im.data[y + im.w*(x + im.h*c)];
+ im.data[y + im.w*(x + im.h*c)] = im.data[n-1-x + im.w*(y + im.h*c)];
+ im.data[n-1-x + im.w*(y + im.h*c)] = im.data[n-1-y + im.w*(n-1-x + im.h*c)];
+ im.data[n-1-y + im.w*(n-1-x + im.h*c)] = im.data[x + im.w*(n-1-y + im.h*c)];
+ im.data[x + im.w*(n-1-y + im.h*c)] = temp;
+ }
+ }
+ }
+ }
+}
+
+void flip_image(image a)
+{
+ int i,j,k;
+ for(k = 0; k < a.c; ++k){
+ for(i = 0; i < a.h; ++i){
+ for(j = 0; j < a.w/2; ++j){
+ int index = j + a.w*(i + a.h*(k));
+ int flip = (a.w - j - 1) + a.w*(i + a.h*(k));
+ float swap = a.data[flip];
+ a.data[flip] = a.data[index];
+ a.data[index] = swap;
+ }
+ }
+ }
+}
+
+image image_distance(image a, image b)
+{
+ int i,j;
+ image dist = make_image(a.w, a.h, 1);
+ for(i = 0; i < a.c; ++i){
+ for(j = 0; j < a.h*a.w; ++j){
+ dist.data[j] += pow(a.data[i*a.h*a.w+j]-b.data[i*a.h*a.w+j],2);
+ }
+ }
+ for(j = 0; j < a.h*a.w; ++j){
+ dist.data[j] = sqrt(dist.data[j]);
+ }
+ return dist;
+}
+
+void ghost_image(image source, image dest, int dx, int dy)
+{
+ int x,y,k;
+ float max_dist = sqrt((-source.w/2. + .5)*(-source.w/2. + .5));
+ for(k = 0; k < source.c; ++k){
+ for(y = 0; y < source.h; ++y){
+ for(x = 0; x < source.w; ++x){
+ float dist = sqrt((x - source.w/2. + .5)*(x - source.w/2. + .5) + (y - source.h/2. + .5)*(y - source.h/2. + .5));
+ float alpha = (1 - dist/max_dist);
+ if(alpha < 0) alpha = 0;
+ float v1 = get_pixel(source, x,y,k);
+ float v2 = get_pixel(dest, dx+x,dy+y,k);
+ float val = alpha*v1 + (1-alpha)*v2;
+ set_pixel(dest, dx+x, dy+y, k, val);
+ }
+ }
+ }
+}
+
+void blocky_image(image im, int s)
+{
+ int i,j,k;
+ for(k = 0; k < im.c; ++k){
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ im.data[i + im.w*(j + im.h*k)] = im.data[i/s*s + im.w*(j/s*s + im.h*k)];
+ }
+ }
+ }
+}
+
+void censor_image(image im, int dx, int dy, int w, int h)
+{
+ int i,j,k;
+ int s = 32;
+ if(dx < 0) dx = 0;
+ if(dy < 0) dy = 0;
+
+ for(k = 0; k < im.c; ++k){
+ for(j = dy; j < dy + h && j < im.h; ++j){
+ for(i = dx; i < dx + w && i < im.w; ++i){
+ im.data[i + im.w*(j + im.h*k)] = im.data[i/s*s + im.w*(j/s*s + im.h*k)];
+ //im.data[i + j*im.w + k*im.w*im.h] = 0;
+ }
+ }
+ }
+}
+
+void embed_image(image source, image dest, int dx, int dy)
+{
+ int x,y,k;
+ for(k = 0; k < source.c; ++k){
+ for(y = 0; y < source.h; ++y){
+ for(x = 0; x < source.w; ++x){
+ float val = get_pixel(source, x,y,k);
+ set_pixel(dest, dx+x, dy+y, k, val);
+ }
+ }
+ }
+}
+
+image collapse_image_layers(image source, int border)
+{
+ int h = source.h;
+ h = (h+border)*source.c - border;
+ image dest = make_image(source.w, h, 1);
+ int i;
+ for(i = 0; i < source.c; ++i){
+ image layer = get_image_layer(source, i);
+ int h_offset = i*(source.h+border);
+ embed_image(layer, dest, 0, h_offset);
+ free_image(layer);
+ }
+ return dest;
+}
+
+void constrain_image(image im)
+{
+ int i;
+ for(i = 0; i < im.w*im.h*im.c; ++i){
+ if(im.data[i] < 0) im.data[i] = 0;
+ if(im.data[i] > 1) im.data[i] = 1;
+ }
+}
+
+void normalize_image(image p)
+{
+ int i;
+ float min = 9999999;
+ float max = -999999;
+
+ for(i = 0; i < p.h*p.w*p.c; ++i){
+ float v = p.data[i];
+ if(v < min) min = v;
+ if(v > max) max = v;
+ }
+ if(max - min < .000000001){
+ min = 0;
+ max = 1;
+ }
+ for(i = 0; i < p.c*p.w*p.h; ++i){
+ p.data[i] = (p.data[i] - min)/(max-min);
+ }
+}
+
+void normalize_image2(image p)
+{
+ float *min = calloc(p.c, sizeof(float));
+ float *max = calloc(p.c, sizeof(float));
+ int i,j;
+ for(i = 0; i < p.c; ++i) min[i] = max[i] = p.data[i*p.h*p.w];
+
+ for(j = 0; j < p.c; ++j){
+ for(i = 0; i < p.h*p.w; ++i){
+ float v = p.data[i+j*p.h*p.w];
+ if(v < min[j]) min[j] = v;
+ if(v > max[j]) max[j] = v;
+ }
+ }
+ for(i = 0; i < p.c; ++i){
+ if(max[i] - min[i] < .000000001){
+ min[i] = 0;
+ max[i] = 1;
+ }
+ }
+ for(j = 0; j < p.c; ++j){
+ for(i = 0; i < p.w*p.h; ++i){
+ p.data[i+j*p.h*p.w] = (p.data[i+j*p.h*p.w] - min[j])/(max[j]-min[j]);
+ }
+ }
+ free(min);
+ free(max);
+}
+
+void copy_image_into(image src, image dest)
+{
+ memcpy(dest.data, src.data, src.h*src.w*src.c*sizeof(float));
+}
+
+image copy_image(image p)
+{
+ image copy = p;
+ copy.data = calloc(p.h*p.w*p.c, sizeof(float));
+ memcpy(copy.data, p.data, p.h*p.w*p.c*sizeof(float));
+ return copy;
+}
+
+void rgbgr_image(image im)
+{
+ int i;
+ for(i = 0; i < im.w*im.h; ++i){
+ float swap = im.data[i];
+ im.data[i] = im.data[i+im.w*im.h*2];
+ im.data[i+im.w*im.h*2] = swap;
+ }
+}
+
+int show_image(image p, const char *name, int ms)
+{
+#ifdef OPENCV
+ int c = show_image_cv(p, name, ms);
+ return c;
+#else
+ fprintf(stderr, "Not compiled with OpenCV, saving to %s.png instead\n", name);
+ save_image(p, name);
+ return -1;
+#endif
+}
+
+void save_image_options(image im, const char *name, IMTYPE f, int quality)
+{
+ char buff[256];
+ //sprintf(buff, "%s (%d)", name, windows);
+ if(f == PNG) sprintf(buff, "%s.png", name);
+ else if (f == BMP) sprintf(buff, "%s.bmp", name);
+ else if (f == TGA) sprintf(buff, "%s.tga", name);
+ else if (f == JPG) sprintf(buff, "%s.jpg", name);
+ else sprintf(buff, "%s.png", name);
+ unsigned char *data = calloc(im.w*im.h*im.c, sizeof(char));
+ int i,k;
+ for(k = 0; k < im.c; ++k){
+ for(i = 0; i < im.w*im.h; ++i){
+ data[i*im.c+k] = (unsigned char) (255*im.data[i + k*im.w*im.h]);
+ }
+ }
+ int success = 0;
+ if(f == PNG) success = stbi_write_png(buff, im.w, im.h, im.c, data, im.w*im.c);
+ else if (f == BMP) success = stbi_write_bmp(buff, im.w, im.h, im.c, data);
+ else if (f == TGA) success = stbi_write_tga(buff, im.w, im.h, im.c, data);
+ else if (f == JPG) success = stbi_write_jpg(buff, im.w, im.h, im.c, data, quality);
+ free(data);
+ if(!success) fprintf(stderr, "Failed to write image %s\n", buff);
+}
+
+void save_image(image im, const char *name)
+{
+ save_image_options(im, name, JPG, 80);
+}
+
+void show_image_layers(image p, char *name)
+{
+ int i;
+ char buff[256];
+ for(i = 0; i < p.c; ++i){
+ sprintf(buff, "%s - Layer %d", name, i);
+ image layer = get_image_layer(p, i);
+ show_image(layer, buff, 1);
+ free_image(layer);
+ }
+}
+
+void show_image_collapsed(image p, char *name)
+{
+ image c = collapse_image_layers(p, 1);
+ show_image(c, name, 1);
+ free_image(c);
+}
+
+image make_empty_image(int w, int h, int c)
+{
+ image out;
+ out.data = 0;
+ out.h = h;
+ out.w = w;
+ out.c = c;
+ return out;
+}
+
+image make_image(int w, int h, int c)
+{
+ image out = make_empty_image(w,h,c);
+ out.data = calloc(h*w*c, sizeof(float));
+ return out;
+}
+
+image make_random_image(int w, int h, int c)
+{
+ image out = make_empty_image(w,h,c);
+ out.data = calloc(h*w*c, sizeof(float));
+ int i;
+ for(i = 0; i < w*h*c; ++i){
+ out.data[i] = (rand_normal() * .25) + .5;
+ }
+ return out;
+}
+
+image float_to_image(int w, int h, int c, float *data)
+{
+ image out = make_empty_image(w,h,c);
+ out.data = data;
+ return out;
+}
+
+void place_image(image im, int w, int h, int dx, int dy, image canvas)
+{
+ int x, y, c;
+ for(c = 0; c < im.c; ++c){
+ for(y = 0; y < h; ++y){
+ for(x = 0; x < w; ++x){
+ float rx = ((float)x / w) * im.w;
+ float ry = ((float)y / h) * im.h;
+ float val = bilinear_interpolate(im, rx, ry, c);
+ set_pixel(canvas, x + dx, y + dy, c, val);
+ }
+ }
+ }
+}
+
+image center_crop_image(image im, int w, int h)
+{
+ int m = (im.w < im.h) ? im.w : im.h;
+ image c = crop_image(im, (im.w - m) / 2, (im.h - m)/2, m, m);
+ image r = resize_image(c, w, h);
+ free_image(c);
+ return r;
+}
+
+image rotate_crop_image(image im, float rad, float s, int w, int h, float dx, float dy, float aspect)
+{
+ int x, y, c;
+ float cx = im.w/2.;
+ float cy = im.h/2.;
+ image rot = make_image(w, h, im.c);
+ for(c = 0; c < im.c; ++c){
+ for(y = 0; y < h; ++y){
+ for(x = 0; x < w; ++x){
+ float rx = cos(rad)*((x - w/2.)/s*aspect + dx/s*aspect) - sin(rad)*((y - h/2.)/s + dy/s) + cx;
+ float ry = sin(rad)*((x - w/2.)/s*aspect + dx/s*aspect) + cos(rad)*((y - h/2.)/s + dy/s) + cy;
+ float val = bilinear_interpolate(im, rx, ry, c);
+ set_pixel(rot, x, y, c, val);
+ }
+ }
+ }
+ return rot;
+}
+
+image rotate_image(image im, float rad)
+{
+ int x, y, c;
+ float cx = im.w/2.;
+ float cy = im.h/2.;
+ image rot = make_image(im.w, im.h, im.c);
+ for(c = 0; c < im.c; ++c){
+ for(y = 0; y < im.h; ++y){
+ for(x = 0; x < im.w; ++x){
+ float rx = cos(rad)*(x-cx) - sin(rad)*(y-cy) + cx;
+ float ry = sin(rad)*(x-cx) + cos(rad)*(y-cy) + cy;
+ float val = bilinear_interpolate(im, rx, ry, c);
+ set_pixel(rot, x, y, c, val);
+ }
+ }
+ }
+ return rot;
+}
+
+void fill_image(image m, float s)
+{
+ int i;
+ for(i = 0; i < m.h*m.w*m.c; ++i) m.data[i] = s;
+}
+
+void translate_image(image m, float s)
+{
+ int i;
+ for(i = 0; i < m.h*m.w*m.c; ++i) m.data[i] += s;
+}
+
+void scale_image(image m, float s)
+{
+ int i;
+ for(i = 0; i < m.h*m.w*m.c; ++i) m.data[i] *= s;
+}
+
+image crop_image(image im, int dx, int dy, int w, int h)
+{
+ image cropped = make_image(w, h, im.c);
+ int i, j, k;
+ for(k = 0; k < im.c; ++k){
+ for(j = 0; j < h; ++j){
+ for(i = 0; i < w; ++i){
+ int r = j + dy;
+ int c = i + dx;
+ float val = 0;
+ r = constrain_int(r, 0, im.h-1);
+ c = constrain_int(c, 0, im.w-1);
+ val = get_pixel(im, c, r, k);
+ set_pixel(cropped, i, j, k, val);
+ }
+ }
+ }
+ return cropped;
+}
+
+int best_3d_shift_r(image a, image b, int min, int max)
+{
+ if(min == max) return min;
+ int mid = floor((min + max) / 2.);
+ image c1 = crop_image(b, 0, mid, b.w, b.h);
+ image c2 = crop_image(b, 0, mid+1, b.w, b.h);
+ float d1 = dist_array(c1.data, a.data, a.w*a.h*a.c, 10);
+ float d2 = dist_array(c2.data, a.data, a.w*a.h*a.c, 10);
+ free_image(c1);
+ free_image(c2);
+ if(d1 < d2) return best_3d_shift_r(a, b, min, mid);
+ else return best_3d_shift_r(a, b, mid+1, max);
+}
+
+int best_3d_shift(image a, image b, int min, int max)
+{
+ int i;
+ int best = 0;
+ float best_distance = FLT_MAX;
+ for(i = min; i <= max; i += 2){
+ image c = crop_image(b, 0, i, b.w, b.h);
+ float d = dist_array(c.data, a.data, a.w*a.h*a.c, 100);
+ if(d < best_distance){
+ best_distance = d;
+ best = i;
+ }
+ printf("%d %f\n", i, d);
+ free_image(c);
+ }
+ return best;
+}
+
+void composite_3d(char *f1, char *f2, char *out, int delta)
+{
+ if(!out) out = "out";
+ image a = load_image(f1, 0,0,0);
+ image b = load_image(f2, 0,0,0);
+ int shift = best_3d_shift_r(a, b, -a.h/100, a.h/100);
+
+ image c1 = crop_image(b, 10, shift, b.w, b.h);
+ float d1 = dist_array(c1.data, a.data, a.w*a.h*a.c, 100);
+ image c2 = crop_image(b, -10, shift, b.w, b.h);
+ float d2 = dist_array(c2.data, a.data, a.w*a.h*a.c, 100);
+
+ if(d2 < d1 && 0){
+ image swap = a;
+ a = b;
+ b = swap;
+ shift = -shift;
+ printf("swapped, %d\n", shift);
+ }
+ else{
+ printf("%d\n", shift);
+ }
+
+ image c = crop_image(b, delta, shift, a.w, a.h);
+ int i;
+ for(i = 0; i < c.w*c.h; ++i){
+ c.data[i] = a.data[i];
+ }
+ save_image(c, out);
+}
+
+void letterbox_image_into(image im, int w, int h, image boxed)
+{
+ int new_w = im.w;
+ int new_h = im.h;
+ if (((float)w/im.w) < ((float)h/im.h)) {
+ new_w = w;
+ new_h = (im.h * w)/im.w;
+ } else {
+ new_h = h;
+ new_w = (im.w * h)/im.h;
+ }
+ image resized = resize_image(im, new_w, new_h);
+ embed_image(resized, boxed, (w-new_w)/2, (h-new_h)/2);
+ free_image(resized);
+}
+
+image letterbox_image(image im, int w, int h)
+{
+ int new_w = im.w;
+ int new_h = im.h;
+ if (((float)w/im.w) < ((float)h/im.h)) {
+ new_w = w;
+ new_h = (im.h * w)/im.w;
+ } else {
+ new_h = h;
+ new_w = (im.w * h)/im.h;
+ }
+ image resized = resize_image(im, new_w, new_h);
+ image boxed = make_image(w, h, im.c);
+ fill_image(boxed, .5);
+ //int i;
+ //for(i = 0; i < boxed.w*boxed.h*boxed.c; ++i) boxed.data[i] = 0;
+ embed_image(resized, boxed, (w-new_w)/2, (h-new_h)/2);
+ free_image(resized);
+ return boxed;
+}
+
+image resize_max(image im, int max)
+{
+ int w = im.w;
+ int h = im.h;
+ if(w > h){
+ h = (h * max) / w;
+ w = max;
+ } else {
+ w = (w * max) / h;
+ h = max;
+ }
+ if(w == im.w && h == im.h) return im;
+ image resized = resize_image(im, w, h);
+ return resized;
+}
+
+image resize_min(image im, int min)
+{
+ int w = im.w;
+ int h = im.h;
+ if(w < h){
+ h = (h * min) / w;
+ w = min;
+ } else {
+ w = (w * min) / h;
+ h = min;
+ }
+ if(w == im.w && h == im.h) return im;
+ image resized = resize_image(im, w, h);
+ return resized;
+}
+
+image random_crop_image(image im, int w, int h)
+{
+ int dx = rand_int(0, im.w - w);
+ int dy = rand_int(0, im.h - h);
+ image crop = crop_image(im, dx, dy, w, h);
+ return crop;
+}
+
+augment_args random_augment_args(image im, float angle, float aspect, int low, int high, int w, int h)
+{
+ augment_args a = {0};
+ aspect = rand_scale(aspect);
+ int r = rand_int(low, high);
+ int min = (im.h < im.w*aspect) ? im.h : im.w*aspect;
+ float scale = (float)r / min;
+
+ float rad = rand_uniform(-angle, angle) * TWO_PI / 360.;
+
+ float dx = (im.w*scale/aspect - w) / 2.;
+ float dy = (im.h*scale - w) / 2.;
+ //if(dx < 0) dx = 0;
+ //if(dy < 0) dy = 0;
+ dx = rand_uniform(-dx, dx);
+ dy = rand_uniform(-dy, dy);
+
+ a.rad = rad;
+ a.scale = scale;
+ a.w = w;
+ a.h = h;
+ a.dx = dx;
+ a.dy = dy;
+ a.aspect = aspect;
+ return a;
+}
+
+image random_augment_image(image im, float angle, float aspect, int low, int high, int w, int h)
+{
+ augment_args a = random_augment_args(im, angle, aspect, low, high, w, h);
+ image crop = rotate_crop_image(im, a.rad, a.scale, a.w, a.h, a.dx, a.dy, a.aspect);
+ return crop;
+}
+
+float three_way_max(float a, float b, float c)
+{
+ return (a > b) ? ( (a > c) ? a : c) : ( (b > c) ? b : c) ;
+}
+
+float three_way_min(float a, float b, float c)
+{
+ return (a < b) ? ( (a < c) ? a : c) : ( (b < c) ? b : c) ;
+}
+
+void yuv_to_rgb(image im)
+{
+ assert(im.c == 3);
+ int i, j;
+ float r, g, b;
+ float y, u, v;
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ y = get_pixel(im, i , j, 0);
+ u = get_pixel(im, i , j, 1);
+ v = get_pixel(im, i , j, 2);
+
+ r = y + 1.13983*v;
+ g = y + -.39465*u + -.58060*v;
+ b = y + 2.03211*u;
+
+ set_pixel(im, i, j, 0, r);
+ set_pixel(im, i, j, 1, g);
+ set_pixel(im, i, j, 2, b);
+ }
+ }
+}
+
+void rgb_to_yuv(image im)
+{
+ assert(im.c == 3);
+ int i, j;
+ float r, g, b;
+ float y, u, v;
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ r = get_pixel(im, i , j, 0);
+ g = get_pixel(im, i , j, 1);
+ b = get_pixel(im, i , j, 2);
+
+ y = .299*r + .587*g + .114*b;
+ u = -.14713*r + -.28886*g + .436*b;
+ v = .615*r + -.51499*g + -.10001*b;
+
+ set_pixel(im, i, j, 0, y);
+ set_pixel(im, i, j, 1, u);
+ set_pixel(im, i, j, 2, v);
+ }
+ }
+}
+
+// http://www.cs.rit.edu/~ncs/color/t_convert.html
+void rgb_to_hsv(image im)
+{
+ assert(im.c == 3);
+ int i, j;
+ float r, g, b;
+ float h, s, v;
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ r = get_pixel(im, i , j, 0);
+ g = get_pixel(im, i , j, 1);
+ b = get_pixel(im, i , j, 2);
+ float max = three_way_max(r,g,b);
+ float min = three_way_min(r,g,b);
+ float delta = max - min;
+ v = max;
+ if(max == 0){
+ s = 0;
+ h = 0;
+ }else{
+ s = delta/max;
+ if(r == max){
+ h = (g - b) / delta;
+ } else if (g == max) {
+ h = 2 + (b - r) / delta;
+ } else {
+ h = 4 + (r - g) / delta;
+ }
+ if (h < 0) h += 6;
+ h = h/6.;
+ }
+ set_pixel(im, i, j, 0, h);
+ set_pixel(im, i, j, 1, s);
+ set_pixel(im, i, j, 2, v);
+ }
+ }
+}
+
+void hsv_to_rgb(image im)
+{
+ assert(im.c == 3);
+ int i, j;
+ float r, g, b;
+ float h, s, v;
+ float f, p, q, t;
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ h = 6 * get_pixel(im, i , j, 0);
+ s = get_pixel(im, i , j, 1);
+ v = get_pixel(im, i , j, 2);
+ if (s == 0) {
+ r = g = b = v;
+ } else {
+ int index = floor(h);
+ f = h - index;
+ p = v*(1-s);
+ q = v*(1-s*f);
+ t = v*(1-s*(1-f));
+ if(index == 0){
+ r = v; g = t; b = p;
+ } else if(index == 1){
+ r = q; g = v; b = p;
+ } else if(index == 2){
+ r = p; g = v; b = t;
+ } else if(index == 3){
+ r = p; g = q; b = v;
+ } else if(index == 4){
+ r = t; g = p; b = v;
+ } else {
+ r = v; g = p; b = q;
+ }
+ }
+ set_pixel(im, i, j, 0, r);
+ set_pixel(im, i, j, 1, g);
+ set_pixel(im, i, j, 2, b);
+ }
+ }
+}
+
+void grayscale_image_3c(image im)
+{
+ assert(im.c == 3);
+ int i, j, k;
+ float scale[] = {0.299, 0.587, 0.114};
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ float val = 0;
+ for(k = 0; k < 3; ++k){
+ val += scale[k]*get_pixel(im, i, j, k);
+ }
+ im.data[0*im.h*im.w + im.w*j + i] = val;
+ im.data[1*im.h*im.w + im.w*j + i] = val;
+ im.data[2*im.h*im.w + im.w*j + i] = val;
+ }
+ }
+}
+
+image grayscale_image(image im)
+{
+ assert(im.c == 3);
+ int i, j, k;
+ image gray = make_image(im.w, im.h, 1);
+ float scale[] = {0.299, 0.587, 0.114};
+ for(k = 0; k < im.c; ++k){
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ gray.data[i+im.w*j] += scale[k]*get_pixel(im, i, j, k);
+ }
+ }
+ }
+ return gray;
+}
+
+image threshold_image(image im, float thresh)
+{
+ int i;
+ image t = make_image(im.w, im.h, im.c);
+ for(i = 0; i < im.w*im.h*im.c; ++i){
+ t.data[i] = im.data[i]>thresh ? 1 : 0;
+ }
+ return t;
+}
+
+image blend_image(image fore, image back, float alpha)
+{
+ assert(fore.w == back.w && fore.h == back.h && fore.c == back.c);
+ image blend = make_image(fore.w, fore.h, fore.c);
+ int i, j, k;
+ for(k = 0; k < fore.c; ++k){
+ for(j = 0; j < fore.h; ++j){
+ for(i = 0; i < fore.w; ++i){
+ float val = alpha * get_pixel(fore, i, j, k) +
+ (1 - alpha)* get_pixel(back, i, j, k);
+ set_pixel(blend, i, j, k, val);
+ }
+ }
+ }
+ return blend;
+}
+
+void scale_image_channel(image im, int c, float v)
+{
+ int i, j;
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ float pix = get_pixel(im, i, j, c);
+ pix = pix*v;
+ set_pixel(im, i, j, c, pix);
+ }
+ }
+}
+
+void translate_image_channel(image im, int c, float v)
+{
+ int i, j;
+ for(j = 0; j < im.h; ++j){
+ for(i = 0; i < im.w; ++i){
+ float pix = get_pixel(im, i, j, c);
+ pix = pix+v;
+ set_pixel(im, i, j, c, pix);
+ }
+ }
+}
+
+image binarize_image(image im)
+{
+ image c = copy_image(im);
+ int i;
+ for(i = 0; i < im.w * im.h * im.c; ++i){
+ if(c.data[i] > .5) c.data[i] = 1;
+ else c.data[i] = 0;
+ }
+ return c;
+}
+
+void saturate_image(image im, float sat)
+{
+ rgb_to_hsv(im);
+ scale_image_channel(im, 1, sat);
+ hsv_to_rgb(im);
+ constrain_image(im);
+}
+
+void hue_image(image im, float hue)
+{
+ rgb_to_hsv(im);
+ int i;
+ for(i = 0; i < im.w*im.h; ++i){
+ im.data[i] = im.data[i] + hue;
+ if (im.data[i] > 1) im.data[i] -= 1;
+ if (im.data[i] < 0) im.data[i] += 1;
+ }
+ hsv_to_rgb(im);
+ constrain_image(im);
+}
+
+void exposure_image(image im, float sat)
+{
+ rgb_to_hsv(im);
+ scale_image_channel(im, 2, sat);
+ hsv_to_rgb(im);
+ constrain_image(im);
+}
+
+void distort_image(image im, float hue, float sat, float val)
+{
+ rgb_to_hsv(im);
+ scale_image_channel(im, 1, sat);
+ scale_image_channel(im, 2, val);
+ int i;
+ for(i = 0; i < im.w*im.h; ++i){
+ im.data[i] = im.data[i] + hue;
+ if (im.data[i] > 1) im.data[i] -= 1;
+ if (im.data[i] < 0) im.data[i] += 1;
+ }
+ hsv_to_rgb(im);
+ constrain_image(im);
+}
+
+void random_distort_image(image im, float hue, float saturation, float exposure)
+{
+ float dhue = rand_uniform(-hue, hue);
+ float dsat = rand_scale(saturation);
+ float dexp = rand_scale(exposure);
+ distort_image(im, dhue, dsat, dexp);
+}
+
+void saturate_exposure_image(image im, float sat, float exposure)
+{
+ rgb_to_hsv(im);
+ scale_image_channel(im, 1, sat);
+ scale_image_channel(im, 2, exposure);
+ hsv_to_rgb(im);
+ constrain_image(im);
+}
+
+image resize_image(image im, int w, int h)
+{
+ image resized = make_image(w, h, im.c);
+ image part = make_image(w, im.h, im.c);
+ int r, c, k;
+ float w_scale = (float)(im.w - 1) / (w - 1);
+ float h_scale = (float)(im.h - 1) / (h - 1);
+ for(k = 0; k < im.c; ++k){
+ for(r = 0; r < im.h; ++r){
+ for(c = 0; c < w; ++c){
+ float val = 0;
+ if(c == w-1 || im.w == 1){
+ val = get_pixel(im, im.w-1, r, k);
+ } else {
+ float sx = c*w_scale;
+ int ix = (int) sx;
+ float dx = sx - ix;
+ val = (1 - dx) * get_pixel(im, ix, r, k) + dx * get_pixel(im, ix+1, r, k);
+ }
+ set_pixel(part, c, r, k, val);
+ }
+ }
+ }
+ for(k = 0; k < im.c; ++k){
+ for(r = 0; r < h; ++r){
+ float sy = r*h_scale;
+ int iy = (int) sy;
+ float dy = sy - iy;
+ for(c = 0; c < w; ++c){
+ float val = (1-dy) * get_pixel(part, c, iy, k);
+ set_pixel(resized, c, r, k, val);
+ }
+ if(r == h-1 || im.h == 1) continue;
+ for(c = 0; c < w; ++c){
+ float val = dy * get_pixel(part, c, iy+1, k);
+ add_pixel(resized, c, r, k, val);
+ }
+ }
+ }
+
+ free_image(part);
+ return resized;
+}
+
+
+void test_resize(char *filename)
+{
+ image im = load_image(filename, 0,0, 3);
+ float mag = mag_array(im.data, im.w*im.h*im.c);
+ printf("L2 Norm: %f\n", mag);
+ image gray = grayscale_image(im);
+
+ image c1 = copy_image(im);
+ image c2 = copy_image(im);
+ image c3 = copy_image(im);
+ image c4 = copy_image(im);
+ distort_image(c1, .1, 1.5, 1.5);
+ distort_image(c2, -.1, .66666, .66666);
+ distort_image(c3, .1, 1.5, .66666);
+ distort_image(c4, .1, .66666, 1.5);
+
+
+ show_image(im, "Original", 1);
+ show_image(gray, "Gray", 1);
+ show_image(c1, "C1", 1);
+ show_image(c2, "C2", 1);
+ show_image(c3, "C3", 1);
+ show_image(c4, "C4", 1);
+#ifdef OPENCV
+ while(1){
+ image aug = random_augment_image(im, 0, .75, 320, 448, 320, 320);
+ show_image(aug, "aug", 1);
+ free_image(aug);
+
+
+ float exposure = 1.15;
+ float saturation = 1.15;
+ float hue = .05;
+
+ image c = copy_image(im);
+
+ float dexp = rand_scale(exposure);
+ float dsat = rand_scale(saturation);
+ float dhue = rand_uniform(-hue, hue);
+
+ distort_image(c, dhue, dsat, dexp);
+ show_image(c, "rand", 1);
+ printf("%f %f %f\n", dhue, dsat, dexp);
+ free_image(c);
+ }
+#endif
+}
+
+
+image load_image_stb(char *filename, int channels)
+{
+ int w, h, c;
+ unsigned char *data = stbi_load(filename, &w, &h, &c, channels);
+ if (!data) {
+ fprintf(stderr, "Cannot load image \"%s\"\nSTB Reason: %s\n", filename, stbi_failure_reason());
+ exit(0);
+ }
+ if(channels) c = channels;
+ int i,j,k;
+ image im = make_image(w, h, c);
+ for(k = 0; k < c; ++k){
+ for(j = 0; j < h; ++j){
+ for(i = 0; i < w; ++i){
+ int dst_index = i + w*j + w*h*k;
+ int src_index = k + c*i + c*w*j;
+ im.data[dst_index] = (float)data[src_index]/255.;
+ }
+ }
+ }
+ free(data);
+ return im;
+}
+
+image load_image(char *filename, int w, int h, int c)
+{
+#ifdef OPENCV
+ image out = load_image_cv(filename, c);
+#else
+ image out = load_image_stb(filename, c);
+#endif
+
+ if((h && w) && (h != out.h || w != out.w)){
+ image resized = resize_image(out, w, h);
+ free_image(out);
+ out = resized;
+ }
+ return out;
+}
+
+image load_image_color(char *filename, int w, int h)
+{
+ return load_image(filename, w, h, 3);
+}
+
+image get_image_layer(image m, int l)
+{
+ image out = make_image(m.w, m.h, 1);
+ int i;
+ for(i = 0; i < m.h*m.w; ++i){
+ out.data[i] = m.data[i+l*m.h*m.w];
+ }
+ return out;
+}
+void print_image(image m)
+{
+ int i, j, k;
+ for(i =0 ; i < m.c; ++i){
+ for(j =0 ; j < m.h; ++j){
+ for(k = 0; k < m.w; ++k){
+ printf("%.2lf, ", m.data[i*m.h*m.w + j*m.w + k]);
+ if(k > 30) break;
+ }
+ printf("\n");
+ if(j > 30) break;
+ }
+ printf("\n");
+ }
+ printf("\n");
+}
+
+image collapse_images_vert(image *ims, int n)
+{
+ int color = 1;
+ int border = 1;
+ int h,w,c;
+ w = ims[0].w;
+ h = (ims[0].h + border) * n - border;
+ c = ims[0].c;
+ if(c != 3 || !color){
+ w = (w+border)*c - border;
+ c = 1;
+ }
+
+ image filters = make_image(w, h, c);
+ int i,j;
+ for(i = 0; i < n; ++i){
+ int h_offset = i*(ims[0].h+border);
+ image copy = copy_image(ims[i]);
+ //normalize_image(copy);
+ if(c == 3 && color){
+ embed_image(copy, filters, 0, h_offset);
+ }
+ else{
+ for(j = 0; j < copy.c; ++j){
+ int w_offset = j*(ims[0].w+border);
+ image layer = get_image_layer(copy, j);
+ embed_image(layer, filters, w_offset, h_offset);
+ free_image(layer);
+ }
+ }
+ free_image(copy);
+ }
+ return filters;
+}
+
+image collapse_images_horz(image *ims, int n)
+{
+ int color = 1;
+ int border = 1;
+ int h,w,c;
+ int size = ims[0].h;
+ h = size;
+ w = (ims[0].w + border) * n - border;
+ c = ims[0].c;
+ if(c != 3 || !color){
+ h = (h+border)*c - border;
+ c = 1;
+ }
+
+ image filters = make_image(w, h, c);
+ int i,j;
+ for(i = 0; i < n; ++i){
+ int w_offset = i*(size+border);
+ image copy = copy_image(ims[i]);
+ //normalize_image(copy);
+ if(c == 3 && color){
+ embed_image(copy, filters, w_offset, 0);
+ }
+ else{
+ for(j = 0; j < copy.c; ++j){
+ int h_offset = j*(size+border);
+ image layer = get_image_layer(copy, j);
+ embed_image(layer, filters, w_offset, h_offset);
+ free_image(layer);
+ }
+ }
+ free_image(copy);
+ }
+ return filters;
+}
+
+void show_image_normalized(image im, const char *name)
+{
+ image c = copy_image(im);
+ normalize_image(c);
+ show_image(c, name, 1);
+ free_image(c);
+}
+
+void show_images(image *ims, int n, char *window)
+{
+ image m = collapse_images_vert(ims, n);
+ /*
+ int w = 448;
+ int h = ((float)m.h/m.w) * 448;
+ if(h > 896){
+ h = 896;
+ w = ((float)m.w/m.h) * 896;
+ }
+ image sized = resize_image(m, w, h);
+ */
+ normalize_image(m);
+ save_image(m, window);
+ show_image(m, window, 1);
+ free_image(m);
+}
+
+void free_image(image m)
+{
+ if(m.data){
+ free(m.data);
+ }
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image.h"
new file mode 100644
index 00000000..3392bb97
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image.h"
@@ -0,0 +1,69 @@
+#ifndef IMAGE_H
+#define IMAGE_H
+
+#include
+#include
+#include
+#include
+#include
+#include "box.h"
+#include "darknet.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef OPENCV
+void *open_video_stream(const char *f, int c, int w, int h, int fps);
+image get_image_from_stream(void *p);
+image load_image_cv(char *filename, int channels);
+int show_image_cv(image im, const char* name, int ms);
+#endif
+
+float get_color(int c, int x, int max);
+void draw_box(image a, int x1, int y1, int x2, int y2, float r, float g, float b);
+void draw_bbox(image a, box bbox, int w, float r, float g, float b);
+void write_label(image a, int r, int c, image *characters, char *string, float *rgb);
+image image_distance(image a, image b);
+void scale_image(image m, float s);
+image rotate_crop_image(image im, float rad, float s, int w, int h, float dx, float dy, float aspect);
+image random_crop_image(image im, int w, int h);
+image random_augment_image(image im, float angle, float aspect, int low, int high, int w, int h);
+augment_args random_augment_args(image im, float angle, float aspect, int low, int high, int w, int h);
+void letterbox_image_into(image im, int w, int h, image boxed);
+image resize_max(image im, int max);
+void translate_image(image m, float s);
+void embed_image(image source, image dest, int dx, int dy);
+void place_image(image im, int w, int h, int dx, int dy, image canvas);
+void saturate_image(image im, float sat);
+void exposure_image(image im, float sat);
+void distort_image(image im, float hue, float sat, float val);
+void saturate_exposure_image(image im, float sat, float exposure);
+void rgb_to_hsv(image im);
+void hsv_to_rgb(image im);
+void yuv_to_rgb(image im);
+void rgb_to_yuv(image im);
+
+
+image collapse_image_layers(image source, int border);
+image collapse_images_horz(image *ims, int n);
+image collapse_images_vert(image *ims, int n);
+
+void show_image_normalized(image im, const char *name);
+void show_images(image *ims, int n, char *window);
+void show_image_layers(image p, char *name);
+void show_image_collapsed(image p, char *name);
+
+void print_image(image m);
+
+image make_empty_image(int w, int h, int c);
+void copy_image_into(image src, image dest);
+
+image get_image_layer(image m, int l);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image_opencv.cpp" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image_opencv.cpp"
new file mode 100644
index 00000000..7511280b
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/image_opencv.cpp"
@@ -0,0 +1,135 @@
+#ifdef OPENCV
+
+#include "stdio.h"
+#include "stdlib.h"
+#include "opencv2/opencv.hpp"
+#include "image.h"
+
+using namespace cv;
+
+extern "C" {
+
+IplImage *image_to_ipl(image im)
+{
+ int x,y,c;
+ IplImage *disp = cvCreateImage(cvSize(im.w,im.h), IPL_DEPTH_8U, im.c);
+ int step = disp->widthStep;
+ for(y = 0; y < im.h; ++y){
+ for(x = 0; x < im.w; ++x){
+ for(c= 0; c < im.c; ++c){
+ float val = im.data[c*im.h*im.w + y*im.w + x];
+ disp->imageData[y*step + x*im.c + c] = (unsigned char)(val*255);
+ }
+ }
+ }
+ return disp;
+}
+
+image ipl_to_image(IplImage* src)
+{
+ int h = src->height;
+ int w = src->width;
+ int c = src->nChannels;
+ image im = make_image(w, h, c);
+ unsigned char *data = (unsigned char *)src->imageData;
+ int step = src->widthStep;
+ int i, j, k;
+
+ for(i = 0; i < h; ++i){
+ for(k= 0; k < c; ++k){
+ for(j = 0; j < w; ++j){
+ im.data[k*w*h + i*w + j] = data[i*step + j*c + k]/255.;
+ }
+ }
+ }
+ return im;
+}
+
+Mat image_to_mat(image im)
+{
+ image copy = copy_image(im);
+ constrain_image(copy);
+ if(im.c == 3) rgbgr_image(copy);
+
+ IplImage *ipl = image_to_ipl(copy);
+ Mat m = cvarrToMat(ipl, true);
+ cvReleaseImage(&ipl);
+ free_image(copy);
+ return m;
+}
+
+image mat_to_image(Mat m)
+{
+ IplImage ipl = m;
+ image im = ipl_to_image(&ipl);
+ rgbgr_image(im);
+ return im;
+}
+
+void *open_video_stream(const char *f, int c, int w, int h, int fps)
+{
+ VideoCapture *cap;
+ if(f) cap = new VideoCapture(f);
+ else cap = new VideoCapture(c);
+ if(!cap->isOpened()) return 0;
+ if(w) cap->set(CV_CAP_PROP_FRAME_WIDTH, w);
+ if(h) cap->set(CV_CAP_PROP_FRAME_HEIGHT, w);
+ if(fps) cap->set(CV_CAP_PROP_FPS, w);
+ return (void *) cap;
+}
+
+image get_image_from_stream(void *p)
+{
+ VideoCapture *cap = (VideoCapture *)p;
+ Mat m;
+ *cap >> m;
+ if(m.empty()) return make_empty_image(0,0,0);
+ return mat_to_image(m);
+}
+
+image load_image_cv(char *filename, int channels)
+{
+ int flag = -1;
+ if (channels == 0) flag = -1;
+ else if (channels == 1) flag = 0;
+ else if (channels == 3) flag = 1;
+ else {
+ fprintf(stderr, "OpenCV can't force load with %d channels\n", channels);
+ }
+ Mat m;
+ m = imread(filename, flag);
+ if(!m.data){
+ fprintf(stderr, "Cannot load image \"%s\"\n", filename);
+ char buff[256];
+ sprintf(buff, "echo %s >> bad.list", filename);
+ system(buff);
+ return make_image(10,10,3);
+ //exit(0);
+ }
+ image im = mat_to_image(m);
+ return im;
+}
+
+int show_image_cv(image im, const char* name, int ms)
+{
+ Mat m = image_to_mat(im);
+ imshow(name, m);
+ int c = waitKey(ms);
+ if (c != -1) c = c%256;
+ return c;
+}
+
+void make_window(char *name, int w, int h, int fullscreen)
+{
+ namedWindow(name, WINDOW_NORMAL);
+ if (fullscreen) {
+ setWindowProperty(name, CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);
+ } else {
+ resizeWindow(name, w, h);
+ if(strcmp(name, "Demo") == 0) moveWindow(name, 0, 0);
+ }
+}
+
+}
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/iseg_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/iseg_layer.c"
new file mode 100644
index 00000000..2bf03a8a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/iseg_layer.c"
@@ -0,0 +1,225 @@
+#include "iseg_layer.h"
+#include "activations.h"
+#include "blas.h"
+#include "box.h"
+#include "cuda.h"
+#include "utils.h"
+
+#include
+#include
+#include
+#include
+
+layer make_iseg_layer(int batch, int w, int h, int classes, int ids)
+{
+ layer l = {0};
+ l.type = ISEG;
+
+ l.h = h;
+ l.w = w;
+ l.c = classes + ids;
+ l.out_w = l.w;
+ l.out_h = l.h;
+ l.out_c = l.c;
+ l.classes = classes;
+ l.batch = batch;
+ l.extra = ids;
+ l.cost = calloc(1, sizeof(float));
+ l.outputs = h*w*l.c;
+ l.inputs = l.outputs;
+ l.truths = 90*(l.w*l.h+1);
+ l.delta = calloc(batch*l.outputs, sizeof(float));
+ l.output = calloc(batch*l.outputs, sizeof(float));
+
+ l.counts = calloc(90, sizeof(int));
+ l.sums = calloc(90, sizeof(float*));
+ if(ids){
+ int i;
+ for(i = 0; i < 90; ++i){
+ l.sums[i] = calloc(ids, sizeof(float));
+ }
+ }
+
+ l.forward = forward_iseg_layer;
+ l.backward = backward_iseg_layer;
+#ifdef GPU
+ l.forward_gpu = forward_iseg_layer_gpu;
+ l.backward_gpu = backward_iseg_layer_gpu;
+ l.output_gpu = cuda_make_array(l.output, batch*l.outputs);
+ l.delta_gpu = cuda_make_array(l.delta, batch*l.outputs);
+#endif
+
+ fprintf(stderr, "iseg\n");
+ srand(0);
+
+ return l;
+}
+
+void resize_iseg_layer(layer *l, int w, int h)
+{
+ l->w = w;
+ l->h = h;
+
+ l->outputs = h*w*l->c;
+ l->inputs = l->outputs;
+
+ l->output = realloc(l->output, l->batch*l->outputs*sizeof(float));
+ l->delta = realloc(l->delta, l->batch*l->outputs*sizeof(float));
+
+#ifdef GPU
+ cuda_free(l->delta_gpu);
+ cuda_free(l->output_gpu);
+
+ l->delta_gpu = cuda_make_array(l->delta, l->batch*l->outputs);
+ l->output_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+#endif
+}
+
+void forward_iseg_layer(const layer l, network net)
+{
+
+ double time = what_time_is_it_now();
+ int i,b,j,k;
+ int ids = l.extra;
+ memcpy(l.output, net.input, l.outputs*l.batch*sizeof(float));
+ memset(l.delta, 0, l.outputs * l.batch * sizeof(float));
+
+#ifndef GPU
+ for (b = 0; b < l.batch; ++b){
+ int index = b*l.outputs;
+ activate_array(l.output + index, l.classes*l.w*l.h, LOGISTIC);
+ }
+#endif
+
+ for (b = 0; b < l.batch; ++b){
+ // a priori, each pixel has no class
+ for(i = 0; i < l.classes; ++i){
+ for(k = 0; k < l.w*l.h; ++k){
+ int index = b*l.outputs + i*l.w*l.h + k;
+ l.delta[index] = 0 - l.output[index];
+ }
+ }
+
+ // a priori, embedding should be small magnitude
+ for(i = 0; i < ids; ++i){
+ for(k = 0; k < l.w*l.h; ++k){
+ int index = b*l.outputs + (i+l.classes)*l.w*l.h + k;
+ l.delta[index] = .1 * (0 - l.output[index]);
+ }
+ }
+
+
+ memset(l.counts, 0, 90*sizeof(int));
+ for(i = 0; i < 90; ++i){
+ fill_cpu(ids, 0, l.sums[i], 1);
+
+ int c = net.truth[b*l.truths + i*(l.w*l.h+1)];
+ if(c < 0) break;
+ // add up metric embeddings for each instance
+ for(k = 0; k < l.w*l.h; ++k){
+ int index = b*l.outputs + c*l.w*l.h + k;
+ float v = net.truth[b*l.truths + i*(l.w*l.h + 1) + 1 + k];
+ if(v){
+ l.delta[index] = v - l.output[index];
+ axpy_cpu(ids, 1, l.output + b*l.outputs + l.classes*l.w*l.h + k, l.w*l.h, l.sums[i], 1);
+ ++l.counts[i];
+ }
+ }
+ }
+
+ float *mse = calloc(90, sizeof(float));
+ for(i = 0; i < 90; ++i){
+ int c = net.truth[b*l.truths + i*(l.w*l.h+1)];
+ if(c < 0) break;
+ for(k = 0; k < l.w*l.h; ++k){
+ float v = net.truth[b*l.truths + i*(l.w*l.h + 1) + 1 + k];
+ if(v){
+ int z;
+ float sum = 0;
+ for(z = 0; z < ids; ++z){
+ int index = b*l.outputs + (l.classes + z)*l.w*l.h + k;
+ sum += pow(l.sums[i][z]/l.counts[i] - l.output[index], 2);
+ }
+ mse[i] += sum;
+ }
+ }
+ mse[i] /= l.counts[i];
+ }
+
+ // Calculate average embedding
+ for(i = 0; i < 90; ++i){
+ if(!l.counts[i]) continue;
+ scal_cpu(ids, 1.f/l.counts[i], l.sums[i], 1);
+ if(b == 0 && net.gpu_index == 0){
+ printf("%4d, %6.3f, ", l.counts[i], mse[i]);
+ for(j = 0; j < ids; ++j){
+ printf("%6.3f,", l.sums[i][j]);
+ }
+ printf("\n");
+ }
+ }
+ free(mse);
+
+ // Calculate embedding loss
+ for(i = 0; i < 90; ++i){
+ if(!l.counts[i]) continue;
+ for(k = 0; k < l.w*l.h; ++k){
+ float v = net.truth[b*l.truths + i*(l.w*l.h + 1) + 1 + k];
+ if(v){
+ for(j = 0; j < 90; ++j){
+ if(!l.counts[j])continue;
+ int z;
+ for(z = 0; z < ids; ++z){
+ int index = b*l.outputs + (l.classes + z)*l.w*l.h + k;
+ float diff = l.sums[j][z] - l.output[index];
+ if (j == i) l.delta[index] += diff < 0? -.1 : .1;
+ else l.delta[index] += -(diff < 0? -.1 : .1);
+ }
+ }
+ }
+ }
+ }
+
+ for(i = 0; i < ids; ++i){
+ for(k = 0; k < l.w*l.h; ++k){
+ int index = b*l.outputs + (i+l.classes)*l.w*l.h + k;
+ l.delta[index] *= .01;
+ }
+ }
+ }
+
+ *(l.cost) = pow(mag_array(l.delta, l.outputs * l.batch), 2);
+ printf("took %lf sec\n", what_time_is_it_now() - time);
+}
+
+void backward_iseg_layer(const layer l, network net)
+{
+ axpy_cpu(l.batch*l.inputs, 1, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void forward_iseg_layer_gpu(const layer l, network net)
+{
+ copy_gpu(l.batch*l.inputs, net.input_gpu, 1, l.output_gpu, 1);
+ int b;
+ for (b = 0; b < l.batch; ++b){
+ activate_array_gpu(l.output_gpu + b*l.outputs, l.classes*l.w*l.h, LOGISTIC);
+ //if(l.extra) activate_array_gpu(l.output_gpu + b*l.outputs + l.classes*l.w*l.h, l.extra*l.w*l.h, LOGISTIC);
+ }
+
+ cuda_pull_array(l.output_gpu, net.input, l.batch*l.inputs);
+ forward_iseg_layer(l, net);
+ cuda_push_array(l.delta_gpu, l.delta, l.batch*l.outputs);
+}
+
+void backward_iseg_layer_gpu(const layer l, network net)
+{
+ int b;
+ for (b = 0; b < l.batch; ++b){
+ //if(l.extra) gradient_array_gpu(l.output_gpu + b*l.outputs + l.classes*l.w*l.h, l.extra*l.w*l.h, LOGISTIC, l.delta_gpu + b*l.outputs + l.classes*l.w*l.h);
+ }
+ axpy_gpu(l.batch*l.inputs, 1, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/iseg_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/iseg_layer.h"
new file mode 100644
index 00000000..dd8e64e0
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/iseg_layer.h"
@@ -0,0 +1,19 @@
+#ifndef ISEG_LAYER_H
+#define ISEG_LAYER_H
+
+#include "darknet.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_iseg_layer(int batch, int w, int h, int classes, int ids);
+void forward_iseg_layer(const layer l, network net);
+void backward_iseg_layer(const layer l, network net);
+void resize_iseg_layer(layer *l, int w, int h);
+int iseg_num_detections(layer l, float thresh);
+
+#ifdef GPU
+void forward_iseg_layer_gpu(const layer l, network net);
+void backward_iseg_layer_gpu(layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/l2norm_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/l2norm_layer.c"
new file mode 100644
index 00000000..d099479b
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/l2norm_layer.c"
@@ -0,0 +1,63 @@
+#include "l2norm_layer.h"
+#include "activations.h"
+#include "blas.h"
+#include "cuda.h"
+
+#include
+#include
+#include
+#include
+#include
+
+layer make_l2norm_layer(int batch, int inputs)
+{
+ fprintf(stderr, "l2norm %4d\n", inputs);
+ layer l = {0};
+ l.type = L2NORM;
+ l.batch = batch;
+ l.inputs = inputs;
+ l.outputs = inputs;
+ l.output = calloc(inputs*batch, sizeof(float));
+ l.scales = calloc(inputs*batch, sizeof(float));
+ l.delta = calloc(inputs*batch, sizeof(float));
+
+ l.forward = forward_l2norm_layer;
+ l.backward = backward_l2norm_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_l2norm_layer_gpu;
+ l.backward_gpu = backward_l2norm_layer_gpu;
+
+ l.output_gpu = cuda_make_array(l.output, inputs*batch);
+ l.scales_gpu = cuda_make_array(l.output, inputs*batch);
+ l.delta_gpu = cuda_make_array(l.delta, inputs*batch);
+ #endif
+ return l;
+}
+
+void forward_l2norm_layer(const layer l, network net)
+{
+ copy_cpu(l.outputs*l.batch, net.input, 1, l.output, 1);
+ l2normalize_cpu(l.output, l.scales, l.batch, l.out_c, l.out_w*l.out_h);
+}
+
+void backward_l2norm_layer(const layer l, network net)
+{
+ //axpy_cpu(l.inputs*l.batch, 1, l.scales, 1, l.delta, 1);
+ axpy_cpu(l.inputs*l.batch, 1, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void forward_l2norm_layer_gpu(const layer l, network net)
+{
+ copy_gpu(l.outputs*l.batch, net.input_gpu, 1, l.output_gpu, 1);
+ l2normalize_gpu(l.output_gpu, l.scales_gpu, l.batch, l.out_c, l.out_w*l.out_h);
+}
+
+void backward_l2norm_layer_gpu(const layer l, network net)
+{
+ axpy_gpu(l.batch*l.inputs, 1, l.scales_gpu, 1, l.delta_gpu, 1);
+ axpy_gpu(l.batch*l.inputs, 1, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/l2norm_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/l2norm_layer.h"
new file mode 100644
index 00000000..1ca6f710
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/l2norm_layer.h"
@@ -0,0 +1,15 @@
+#ifndef L2NORM_LAYER_H
+#define L2NORM_LAYER_H
+#include "layer.h"
+#include "network.h"
+
+layer make_l2norm_layer(int batch, int inputs);
+void forward_l2norm_layer(const layer l, network net);
+void backward_l2norm_layer(const layer l, network net);
+
+#ifdef GPU
+void forward_l2norm_layer_gpu(const layer l, network net);
+void backward_l2norm_layer_gpu(const layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/layer.c"
new file mode 100644
index 00000000..c27b4776
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/layer.c"
@@ -0,0 +1,97 @@
+#include "layer.h"
+#include "cuda.h"
+
+#include
+
+void free_layer(layer l)
+{
+ if(l.type == DROPOUT){
+ if(l.rand) free(l.rand);
+#ifdef GPU
+ if(l.rand_gpu) cuda_free(l.rand_gpu);
+#endif
+ return;
+ }
+ if(l.cweights) free(l.cweights);
+ if(l.indexes) free(l.indexes);
+ if(l.input_layers) free(l.input_layers);
+ if(l.input_sizes) free(l.input_sizes);
+ if(l.map) free(l.map);
+ if(l.rand) free(l.rand);
+ if(l.cost) free(l.cost);
+ if(l.state) free(l.state);
+ if(l.prev_state) free(l.prev_state);
+ if(l.forgot_state) free(l.forgot_state);
+ if(l.forgot_delta) free(l.forgot_delta);
+ if(l.state_delta) free(l.state_delta);
+ if(l.concat) free(l.concat);
+ if(l.concat_delta) free(l.concat_delta);
+ if(l.binary_weights) free(l.binary_weights);
+ if(l.biases) free(l.biases);
+ if(l.bias_updates) free(l.bias_updates);
+ if(l.scales) free(l.scales);
+ if(l.scale_updates) free(l.scale_updates);
+ if(l.weights) free(l.weights);
+ if(l.weight_updates) free(l.weight_updates);
+ if(l.delta) free(l.delta);
+ if(l.output) free(l.output);
+ if(l.squared) free(l.squared);
+ if(l.norms) free(l.norms);
+ if(l.spatial_mean) free(l.spatial_mean);
+ if(l.mean) free(l.mean);
+ if(l.variance) free(l.variance);
+ if(l.mean_delta) free(l.mean_delta);
+ if(l.variance_delta) free(l.variance_delta);
+ if(l.rolling_mean) free(l.rolling_mean);
+ if(l.rolling_variance) free(l.rolling_variance);
+ if(l.x) free(l.x);
+ if(l.x_norm) free(l.x_norm);
+ if(l.m) free(l.m);
+ if(l.v) free(l.v);
+ if(l.z_cpu) free(l.z_cpu);
+ if(l.r_cpu) free(l.r_cpu);
+ if(l.h_cpu) free(l.h_cpu);
+ if(l.binary_input) free(l.binary_input);
+
+#ifdef GPU
+ if(l.indexes_gpu) cuda_free((float *)l.indexes_gpu);
+
+ if(l.z_gpu) cuda_free(l.z_gpu);
+ if(l.r_gpu) cuda_free(l.r_gpu);
+ if(l.h_gpu) cuda_free(l.h_gpu);
+ if(l.m_gpu) cuda_free(l.m_gpu);
+ if(l.v_gpu) cuda_free(l.v_gpu);
+ if(l.prev_state_gpu) cuda_free(l.prev_state_gpu);
+ if(l.forgot_state_gpu) cuda_free(l.forgot_state_gpu);
+ if(l.forgot_delta_gpu) cuda_free(l.forgot_delta_gpu);
+ if(l.state_gpu) cuda_free(l.state_gpu);
+ if(l.state_delta_gpu) cuda_free(l.state_delta_gpu);
+ if(l.gate_gpu) cuda_free(l.gate_gpu);
+ if(l.gate_delta_gpu) cuda_free(l.gate_delta_gpu);
+ if(l.save_gpu) cuda_free(l.save_gpu);
+ if(l.save_delta_gpu) cuda_free(l.save_delta_gpu);
+ if(l.concat_gpu) cuda_free(l.concat_gpu);
+ if(l.concat_delta_gpu) cuda_free(l.concat_delta_gpu);
+ if(l.binary_input_gpu) cuda_free(l.binary_input_gpu);
+ if(l.binary_weights_gpu) cuda_free(l.binary_weights_gpu);
+ if(l.mean_gpu) cuda_free(l.mean_gpu);
+ if(l.variance_gpu) cuda_free(l.variance_gpu);
+ if(l.rolling_mean_gpu) cuda_free(l.rolling_mean_gpu);
+ if(l.rolling_variance_gpu) cuda_free(l.rolling_variance_gpu);
+ if(l.variance_delta_gpu) cuda_free(l.variance_delta_gpu);
+ if(l.mean_delta_gpu) cuda_free(l.mean_delta_gpu);
+ if(l.x_gpu) cuda_free(l.x_gpu);
+ if(l.x_norm_gpu) cuda_free(l.x_norm_gpu);
+ if(l.weights_gpu) cuda_free(l.weights_gpu);
+ if(l.weight_updates_gpu) cuda_free(l.weight_updates_gpu);
+ if(l.biases_gpu) cuda_free(l.biases_gpu);
+ if(l.bias_updates_gpu) cuda_free(l.bias_updates_gpu);
+ if(l.scales_gpu) cuda_free(l.scales_gpu);
+ if(l.scale_updates_gpu) cuda_free(l.scale_updates_gpu);
+ if(l.output_gpu) cuda_free(l.output_gpu);
+ if(l.delta_gpu) cuda_free(l.delta_gpu);
+ if(l.rand_gpu) cuda_free(l.rand_gpu);
+ if(l.squared_gpu) cuda_free(l.squared_gpu);
+ if(l.norms_gpu) cuda_free(l.norms_gpu);
+#endif
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/layer.h"
new file mode 100644
index 00000000..af6cd2ab
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/layer.h"
@@ -0,0 +1 @@
+#include "darknet.h"
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/list.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/list.c"
new file mode 100644
index 00000000..0e4165d3
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/list.c"
@@ -0,0 +1,92 @@
+#include
+#include
+#include "list.h"
+
+list *make_list()
+{
+ list *l = malloc(sizeof(list));
+ l->size = 0;
+ l->front = 0;
+ l->back = 0;
+ return l;
+}
+
+/*
+void transfer_node(list *s, list *d, node *n)
+{
+ node *prev, *next;
+ prev = n->prev;
+ next = n->next;
+ if(prev) prev->next = next;
+ if(next) next->prev = prev;
+ --s->size;
+ if(s->front == n) s->front = next;
+ if(s->back == n) s->back = prev;
+}
+*/
+
+void *list_pop(list *l){
+ if(!l->back) return 0;
+ node *b = l->back;
+ void *val = b->val;
+ l->back = b->prev;
+ if(l->back) l->back->next = 0;
+ free(b);
+ --l->size;
+
+ return val;
+}
+
+void list_insert(list *l, void *val)
+{
+ node *new = malloc(sizeof(node));
+ new->val = val;
+ new->next = 0;
+
+ if(!l->back){
+ l->front = new;
+ new->prev = 0;
+ }else{
+ l->back->next = new;
+ new->prev = l->back;
+ }
+ l->back = new;
+ ++l->size;
+}
+
+void free_node(node *n)
+{
+ node *next;
+ while(n) {
+ next = n->next;
+ free(n);
+ n = next;
+ }
+}
+
+void free_list(list *l)
+{
+ free_node(l->front);
+ free(l);
+}
+
+void free_list_contents(list *l)
+{
+ node *n = l->front;
+ while(n){
+ free(n->val);
+ n = n->next;
+ }
+}
+
+void **list_to_array(list *l)
+{
+ void **a = calloc(l->size, sizeof(void*));
+ int count = 0;
+ node *n = l->front;
+ while(n){
+ a[count++] = n->val;
+ n = n->next;
+ }
+ return a;
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/list.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/list.h"
new file mode 100644
index 00000000..6b445c71
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/list.h"
@@ -0,0 +1,13 @@
+#ifndef LIST_H
+#define LIST_H
+#include "darknet.h"
+
+list *make_list();
+int list_find(list *l, void *val);
+
+void list_insert(list *, void *);
+
+
+void free_list_contents(list *l);
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/local_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/local_layer.c"
new file mode 100644
index 00000000..74f6910a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/local_layer.c"
@@ -0,0 +1,293 @@
+#include "local_layer.h"
+#include "utils.h"
+#include "im2col.h"
+#include "col2im.h"
+#include "blas.h"
+#include "gemm.h"
+#include
+#include
+
+int local_out_height(local_layer l)
+{
+ int h = l.h;
+ if (!l.pad) h -= l.size;
+ else h -= 1;
+ return h/l.stride + 1;
+}
+
+int local_out_width(local_layer l)
+{
+ int w = l.w;
+ if (!l.pad) w -= l.size;
+ else w -= 1;
+ return w/l.stride + 1;
+}
+
+local_layer make_local_layer(int batch, int h, int w, int c, int n, int size, int stride, int pad, ACTIVATION activation)
+{
+ int i;
+ local_layer l = {0};
+ l.type = LOCAL;
+
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.n = n;
+ l.batch = batch;
+ l.stride = stride;
+ l.size = size;
+ l.pad = pad;
+
+ int out_h = local_out_height(l);
+ int out_w = local_out_width(l);
+ int locations = out_h*out_w;
+ l.out_h = out_h;
+ l.out_w = out_w;
+ l.out_c = n;
+ l.outputs = l.out_h * l.out_w * l.out_c;
+ l.inputs = l.w * l.h * l.c;
+
+ l.weights = calloc(c*n*size*size*locations, sizeof(float));
+ l.weight_updates = calloc(c*n*size*size*locations, sizeof(float));
+
+ l.biases = calloc(l.outputs, sizeof(float));
+ l.bias_updates = calloc(l.outputs, sizeof(float));
+
+ // float scale = 1./sqrt(size*size*c);
+ float scale = sqrt(2./(size*size*c));
+ for(i = 0; i < c*n*size*size; ++i) l.weights[i] = scale*rand_uniform(-1,1);
+
+ l.output = calloc(l.batch*out_h * out_w * n, sizeof(float));
+ l.delta = calloc(l.batch*out_h * out_w * n, sizeof(float));
+
+ l.workspace_size = out_h*out_w*size*size*c;
+
+ l.forward = forward_local_layer;
+ l.backward = backward_local_layer;
+ l.update = update_local_layer;
+
+#ifdef GPU
+ l.forward_gpu = forward_local_layer_gpu;
+ l.backward_gpu = backward_local_layer_gpu;
+ l.update_gpu = update_local_layer_gpu;
+
+ l.weights_gpu = cuda_make_array(l.weights, c*n*size*size*locations);
+ l.weight_updates_gpu = cuda_make_array(l.weight_updates, c*n*size*size*locations);
+
+ l.biases_gpu = cuda_make_array(l.biases, l.outputs);
+ l.bias_updates_gpu = cuda_make_array(l.bias_updates, l.outputs);
+
+ l.delta_gpu = cuda_make_array(l.delta, l.batch*out_h*out_w*n);
+ l.output_gpu = cuda_make_array(l.output, l.batch*out_h*out_w*n);
+
+#endif
+ l.activation = activation;
+
+ fprintf(stderr, "Local Layer: %d x %d x %d image, %d filters -> %d x %d x %d image\n", h,w,c,n, out_h, out_w, n);
+
+ return l;
+}
+
+void forward_local_layer(const local_layer l, network net)
+{
+ int out_h = local_out_height(l);
+ int out_w = local_out_width(l);
+ int i, j;
+ int locations = out_h * out_w;
+
+ for(i = 0; i < l.batch; ++i){
+ copy_cpu(l.outputs, l.biases, 1, l.output + i*l.outputs, 1);
+ }
+
+ for(i = 0; i < l.batch; ++i){
+ float *input = net.input + i*l.w*l.h*l.c;
+ im2col_cpu(input, l.c, l.h, l.w,
+ l.size, l.stride, l.pad, net.workspace);
+ float *output = l.output + i*l.outputs;
+ for(j = 0; j < locations; ++j){
+ float *a = l.weights + j*l.size*l.size*l.c*l.n;
+ float *b = net.workspace + j;
+ float *c = output + j;
+
+ int m = l.n;
+ int n = 1;
+ int k = l.size*l.size*l.c;
+
+ gemm(0,0,m,n,k,1,a,k,b,locations,1,c,locations);
+ }
+ }
+ activate_array(l.output, l.outputs*l.batch, l.activation);
+}
+
+void backward_local_layer(local_layer l, network net)
+{
+ int i, j;
+ int locations = l.out_w*l.out_h;
+
+ gradient_array(l.output, l.outputs*l.batch, l.activation, l.delta);
+
+ for(i = 0; i < l.batch; ++i){
+ axpy_cpu(l.outputs, 1, l.delta + i*l.outputs, 1, l.bias_updates, 1);
+ }
+
+ for(i = 0; i < l.batch; ++i){
+ float *input = net.input + i*l.w*l.h*l.c;
+ im2col_cpu(input, l.c, l.h, l.w,
+ l.size, l.stride, l.pad, net.workspace);
+
+ for(j = 0; j < locations; ++j){
+ float *a = l.delta + i*l.outputs + j;
+ float *b = net.workspace + j;
+ float *c = l.weight_updates + j*l.size*l.size*l.c*l.n;
+ int m = l.n;
+ int n = l.size*l.size*l.c;
+ int k = 1;
+
+ gemm(0,1,m,n,k,1,a,locations,b,locations,1,c,n);
+ }
+
+ if(net.delta){
+ for(j = 0; j < locations; ++j){
+ float *a = l.weights + j*l.size*l.size*l.c*l.n;
+ float *b = l.delta + i*l.outputs + j;
+ float *c = net.workspace + j;
+
+ int m = l.size*l.size*l.c;
+ int n = 1;
+ int k = l.n;
+
+ gemm(1,0,m,n,k,1,a,m,b,locations,0,c,locations);
+ }
+
+ col2im_cpu(net.workspace, l.c, l.h, l.w, l.size, l.stride, l.pad, net.delta+i*l.c*l.h*l.w);
+ }
+ }
+}
+
+void update_local_layer(local_layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+
+ int locations = l.out_w*l.out_h;
+ int size = l.size*l.size*l.c*l.n*locations;
+ axpy_cpu(l.outputs, learning_rate/batch, l.bias_updates, 1, l.biases, 1);
+ scal_cpu(l.outputs, momentum, l.bias_updates, 1);
+
+ axpy_cpu(size, -decay*batch, l.weights, 1, l.weight_updates, 1);
+ axpy_cpu(size, learning_rate/batch, l.weight_updates, 1, l.weights, 1);
+ scal_cpu(size, momentum, l.weight_updates, 1);
+}
+
+#ifdef GPU
+
+void forward_local_layer_gpu(const local_layer l, network net)
+{
+ int out_h = local_out_height(l);
+ int out_w = local_out_width(l);
+ int i, j;
+ int locations = out_h * out_w;
+
+ for(i = 0; i < l.batch; ++i){
+ copy_gpu(l.outputs, l.biases_gpu, 1, l.output_gpu + i*l.outputs, 1);
+ }
+
+ for(i = 0; i < l.batch; ++i){
+ float *input = net.input_gpu + i*l.w*l.h*l.c;
+ im2col_gpu(input, l.c, l.h, l.w,
+ l.size, l.stride, l.pad, net.workspace);
+ float *output = l.output_gpu + i*l.outputs;
+ for(j = 0; j < locations; ++j){
+ float *a = l.weights_gpu + j*l.size*l.size*l.c*l.n;
+ float *b = net.workspace + j;
+ float *c = output + j;
+
+ int m = l.n;
+ int n = 1;
+ int k = l.size*l.size*l.c;
+
+ gemm_gpu(0,0,m,n,k,1,a,k,b,locations,1,c,locations);
+ }
+ }
+ activate_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation);
+}
+
+void backward_local_layer_gpu(local_layer l, network net)
+{
+ int i, j;
+ int locations = l.out_w*l.out_h;
+
+ gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
+ for(i = 0; i < l.batch; ++i){
+ axpy_gpu(l.outputs, 1, l.delta_gpu + i*l.outputs, 1, l.bias_updates_gpu, 1);
+ }
+
+ for(i = 0; i < l.batch; ++i){
+ float *input = net.input_gpu + i*l.w*l.h*l.c;
+ im2col_gpu(input, l.c, l.h, l.w,
+ l.size, l.stride, l.pad, net.workspace);
+
+ for(j = 0; j < locations; ++j){
+ float *a = l.delta_gpu + i*l.outputs + j;
+ float *b = net.workspace + j;
+ float *c = l.weight_updates_gpu + j*l.size*l.size*l.c*l.n;
+ int m = l.n;
+ int n = l.size*l.size*l.c;
+ int k = 1;
+
+ gemm_gpu(0,1,m,n,k,1,a,locations,b,locations,1,c,n);
+ }
+
+ if(net.delta_gpu){
+ for(j = 0; j < locations; ++j){
+ float *a = l.weights_gpu + j*l.size*l.size*l.c*l.n;
+ float *b = l.delta_gpu + i*l.outputs + j;
+ float *c = net.workspace + j;
+
+ int m = l.size*l.size*l.c;
+ int n = 1;
+ int k = l.n;
+
+ gemm_gpu(1,0,m,n,k,1,a,m,b,locations,0,c,locations);
+ }
+
+ col2im_gpu(net.workspace, l.c, l.h, l.w, l.size, l.stride, l.pad, net.delta_gpu+i*l.c*l.h*l.w);
+ }
+ }
+}
+
+void update_local_layer_gpu(local_layer l, update_args a)
+{
+ float learning_rate = a.learning_rate*l.learning_rate_scale;
+ float momentum = a.momentum;
+ float decay = a.decay;
+ int batch = a.batch;
+
+ int locations = l.out_w*l.out_h;
+ int size = l.size*l.size*l.c*l.n*locations;
+ axpy_gpu(l.outputs, learning_rate/batch, l.bias_updates_gpu, 1, l.biases_gpu, 1);
+ scal_gpu(l.outputs, momentum, l.bias_updates_gpu, 1);
+
+ axpy_gpu(size, -decay*batch, l.weights_gpu, 1, l.weight_updates_gpu, 1);
+ axpy_gpu(size, learning_rate/batch, l.weight_updates_gpu, 1, l.weights_gpu, 1);
+ scal_gpu(size, momentum, l.weight_updates_gpu, 1);
+}
+
+void pull_local_layer(local_layer l)
+{
+ int locations = l.out_w*l.out_h;
+ int size = l.size*l.size*l.c*l.n*locations;
+ cuda_pull_array(l.weights_gpu, l.weights, size);
+ cuda_pull_array(l.biases_gpu, l.biases, l.outputs);
+}
+
+void push_local_layer(local_layer l)
+{
+ int locations = l.out_w*l.out_h;
+ int size = l.size*l.size*l.c*l.n*locations;
+ cuda_push_array(l.weights_gpu, l.weights, size);
+ cuda_push_array(l.biases_gpu, l.biases, l.outputs);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/local_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/local_layer.h"
new file mode 100644
index 00000000..776e572f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/local_layer.h"
@@ -0,0 +1,31 @@
+#ifndef LOCAL_LAYER_H
+#define LOCAL_LAYER_H
+
+#include "cuda.h"
+#include "image.h"
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+
+typedef layer local_layer;
+
+#ifdef GPU
+void forward_local_layer_gpu(local_layer layer, network net);
+void backward_local_layer_gpu(local_layer layer, network net);
+void update_local_layer_gpu(local_layer layer, update_args a);
+
+void push_local_layer(local_layer layer);
+void pull_local_layer(local_layer layer);
+#endif
+
+local_layer make_local_layer(int batch, int h, int w, int c, int n, int size, int stride, int pad, ACTIVATION activation);
+
+void forward_local_layer(const local_layer layer, network net);
+void backward_local_layer(local_layer layer, network net);
+void update_local_layer(local_layer layer, update_args a);
+
+void bias_output(float *output, float *biases, int batch, int n, int size);
+void backward_bias(float *bias_updates, float *delta, int batch, int n, int size);
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/logistic_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/logistic_layer.c"
new file mode 100644
index 00000000..b2b3d6b1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/logistic_layer.c"
@@ -0,0 +1,71 @@
+#include "logistic_layer.h"
+#include "activations.h"
+#include "blas.h"
+#include "cuda.h"
+
+#include
+#include
+#include
+#include
+#include
+
+layer make_logistic_layer(int batch, int inputs)
+{
+ fprintf(stderr, "logistic x entropy %4d\n", inputs);
+ layer l = {0};
+ l.type = LOGXENT;
+ l.batch = batch;
+ l.inputs = inputs;
+ l.outputs = inputs;
+ l.loss = calloc(inputs*batch, sizeof(float));
+ l.output = calloc(inputs*batch, sizeof(float));
+ l.delta = calloc(inputs*batch, sizeof(float));
+ l.cost = calloc(1, sizeof(float));
+
+ l.forward = forward_logistic_layer;
+ l.backward = backward_logistic_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_logistic_layer_gpu;
+ l.backward_gpu = backward_logistic_layer_gpu;
+
+ l.output_gpu = cuda_make_array(l.output, inputs*batch);
+ l.loss_gpu = cuda_make_array(l.loss, inputs*batch);
+ l.delta_gpu = cuda_make_array(l.delta, inputs*batch);
+ #endif
+ return l;
+}
+
+void forward_logistic_layer(const layer l, network net)
+{
+ copy_cpu(l.outputs*l.batch, net.input, 1, l.output, 1);
+ activate_array(l.output, l.outputs*l.batch, LOGISTIC);
+ if(net.truth){
+ logistic_x_ent_cpu(l.batch*l.inputs, l.output, net.truth, l.delta, l.loss);
+ l.cost[0] = sum_array(l.loss, l.batch*l.inputs);
+ }
+}
+
+void backward_logistic_layer(const layer l, network net)
+{
+ axpy_cpu(l.inputs*l.batch, 1, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void forward_logistic_layer_gpu(const layer l, network net)
+{
+ copy_gpu(l.outputs*l.batch, net.input_gpu, 1, l.output_gpu, 1);
+ activate_array_gpu(l.output_gpu, l.outputs*l.batch, LOGISTIC);
+ if(net.truth){
+ logistic_x_ent_gpu(l.batch*l.inputs, l.output_gpu, net.truth_gpu, l.delta_gpu, l.loss_gpu);
+ cuda_pull_array(l.loss_gpu, l.loss, l.batch*l.inputs);
+ l.cost[0] = sum_array(l.loss, l.batch*l.inputs);
+ }
+}
+
+void backward_logistic_layer_gpu(const layer l, network net)
+{
+ axpy_gpu(l.batch*l.inputs, 1, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/logistic_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/logistic_layer.h"
new file mode 100644
index 00000000..9c25bee3
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/logistic_layer.h"
@@ -0,0 +1,15 @@
+#ifndef LOGISTIC_LAYER_H
+#define LOGISTIC_LAYER_H
+#include "layer.h"
+#include "network.h"
+
+layer make_logistic_layer(int batch, int inputs);
+void forward_logistic_layer(const layer l, network net);
+void backward_logistic_layer(const layer l, network net);
+
+#ifdef GPU
+void forward_logistic_layer_gpu(const layer l, network net);
+void backward_logistic_layer_gpu(const layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/lstm_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/lstm_layer.c"
new file mode 100644
index 00000000..fb07de20
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/lstm_layer.c"
@@ -0,0 +1,626 @@
+#include "lstm_layer.h"
+#include "connected_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "blas.h"
+#include "gemm.h"
+
+#include
+#include
+#include
+#include
+
+static void increment_layer(layer *l, int steps)
+{
+ int num = l->outputs*l->batch*steps;
+ l->output += num;
+ l->delta += num;
+ l->x += num;
+ l->x_norm += num;
+
+#ifdef GPU
+ l->output_gpu += num;
+ l->delta_gpu += num;
+ l->x_gpu += num;
+ l->x_norm_gpu += num;
+#endif
+}
+
+layer make_lstm_layer(int batch, int inputs, int outputs, int steps, int batch_normalize, int adam)
+{
+ fprintf(stderr, "LSTM Layer: %d inputs, %d outputs\n", inputs, outputs);
+ batch = batch / steps;
+ layer l = { 0 };
+ l.batch = batch;
+ l.type = LSTM;
+ l.steps = steps;
+ l.inputs = inputs;
+
+ l.uf = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.uf) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.uf->batch = batch;
+
+ l.ui = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.ui) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.ui->batch = batch;
+
+ l.ug = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.ug) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.ug->batch = batch;
+
+ l.uo = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.uo) = make_connected_layer(batch*steps, inputs, outputs, LINEAR, batch_normalize, adam);
+ l.uo->batch = batch;
+
+ l.wf = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wf) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wf->batch = batch;
+
+ l.wi = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wi) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wi->batch = batch;
+
+ l.wg = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wg) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wg->batch = batch;
+
+ l.wo = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.wo) = make_connected_layer(batch*steps, outputs, outputs, LINEAR, batch_normalize, adam);
+ l.wo->batch = batch;
+
+ l.batch_normalize = batch_normalize;
+ l.outputs = outputs;
+
+ l.output = calloc(outputs*batch*steps, sizeof(float));
+ l.state = calloc(outputs*batch, sizeof(float));
+
+ l.forward = forward_lstm_layer;
+ l.update = update_lstm_layer;
+
+ l.prev_state_cpu = calloc(batch*outputs, sizeof(float));
+ l.prev_cell_cpu = calloc(batch*outputs, sizeof(float));
+ l.cell_cpu = calloc(batch*outputs*steps, sizeof(float));
+
+ l.f_cpu = calloc(batch*outputs, sizeof(float));
+ l.i_cpu = calloc(batch*outputs, sizeof(float));
+ l.g_cpu = calloc(batch*outputs, sizeof(float));
+ l.o_cpu = calloc(batch*outputs, sizeof(float));
+ l.c_cpu = calloc(batch*outputs, sizeof(float));
+ l.h_cpu = calloc(batch*outputs, sizeof(float));
+ l.temp_cpu = calloc(batch*outputs, sizeof(float));
+ l.temp2_cpu = calloc(batch*outputs, sizeof(float));
+ l.temp3_cpu = calloc(batch*outputs, sizeof(float));
+ l.dc_cpu = calloc(batch*outputs, sizeof(float));
+ l.dh_cpu = calloc(batch*outputs, sizeof(float));
+
+#ifdef GPU
+ l.forward_gpu = forward_lstm_layer_gpu;
+ l.backward_gpu = backward_lstm_layer_gpu;
+ l.update_gpu = update_lstm_layer_gpu;
+
+ l.output_gpu = cuda_make_array(0, batch*outputs*steps);
+ l.delta_gpu = cuda_make_array(0, batch*l.outputs*steps);
+
+ l.prev_state_gpu = cuda_make_array(0, batch*outputs);
+ l.prev_cell_gpu = cuda_make_array(0, batch*outputs);
+ l.cell_gpu = cuda_make_array(0, batch*outputs*steps);
+
+ l.f_gpu = cuda_make_array(0, batch*outputs);
+ l.i_gpu = cuda_make_array(0, batch*outputs);
+ l.g_gpu = cuda_make_array(0, batch*outputs);
+ l.o_gpu = cuda_make_array(0, batch*outputs);
+ l.c_gpu = cuda_make_array(0, batch*outputs);
+ l.h_gpu = cuda_make_array(0, batch*outputs);
+ l.temp_gpu = cuda_make_array(0, batch*outputs);
+ l.temp2_gpu = cuda_make_array(0, batch*outputs);
+ l.temp3_gpu = cuda_make_array(0, batch*outputs);
+ l.dc_gpu = cuda_make_array(0, batch*outputs);
+ l.dh_gpu = cuda_make_array(0, batch*outputs);
+#ifdef CUDNN
+ cudnnSetTensor4dDescriptor(l.wf->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wf->out_c, l.wf->out_h, l.wf->out_w);
+ cudnnSetTensor4dDescriptor(l.wi->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wi->out_c, l.wi->out_h, l.wi->out_w);
+ cudnnSetTensor4dDescriptor(l.wg->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wg->out_c, l.wg->out_h, l.wg->out_w);
+ cudnnSetTensor4dDescriptor(l.wo->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.wo->out_c, l.wo->out_h, l.wo->out_w);
+
+ cudnnSetTensor4dDescriptor(l.uf->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.uf->out_c, l.uf->out_h, l.uf->out_w);
+ cudnnSetTensor4dDescriptor(l.ui->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.ui->out_c, l.ui->out_h, l.ui->out_w);
+ cudnnSetTensor4dDescriptor(l.ug->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.ug->out_c, l.ug->out_h, l.ug->out_w);
+ cudnnSetTensor4dDescriptor(l.uo->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.uo->out_c, l.uo->out_h, l.uo->out_w);
+#endif
+
+#endif
+
+ return l;
+}
+
+void update_lstm_layer(layer l, update_args a)
+{
+ update_connected_layer(*(l.wf), a);
+ update_connected_layer(*(l.wi), a);
+ update_connected_layer(*(l.wg), a);
+ update_connected_layer(*(l.wo), a);
+ update_connected_layer(*(l.uf), a);
+ update_connected_layer(*(l.ui), a);
+ update_connected_layer(*(l.ug), a);
+ update_connected_layer(*(l.uo), a);
+}
+
+void forward_lstm_layer(layer l, network state)
+{
+ network s = { 0 };
+ s.train = state.train;
+ int i;
+ layer wf = *(l.wf);
+ layer wi = *(l.wi);
+ layer wg = *(l.wg);
+ layer wo = *(l.wo);
+
+ layer uf = *(l.uf);
+ layer ui = *(l.ui);
+ layer ug = *(l.ug);
+ layer uo = *(l.uo);
+
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wf.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wi.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wg.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, wo.delta, 1);
+
+ fill_cpu(l.outputs * l.batch * l.steps, 0, uf.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, ui.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, ug.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, uo.delta, 1);
+ if (state.train) {
+ fill_cpu(l.outputs * l.batch * l.steps, 0, l.delta, 1);
+ }
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input = l.h_cpu;
+ forward_connected_layer(wf, s);
+ forward_connected_layer(wi, s);
+ forward_connected_layer(wg, s);
+ forward_connected_layer(wo, s);
+
+ s.input = state.input;
+ forward_connected_layer(uf, s);
+ forward_connected_layer(ui, s);
+ forward_connected_layer(ug, s);
+ forward_connected_layer(uo, s);
+
+ copy_cpu(l.outputs*l.batch, wf.output, 1, l.f_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, uf.output, 1, l.f_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, wi.output, 1, l.i_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, ui.output, 1, l.i_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, wg.output, 1, l.g_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, ug.output, 1, l.g_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, wo.output, 1, l.o_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, uo.output, 1, l.o_cpu, 1);
+
+ activate_array(l.f_cpu, l.outputs*l.batch, LOGISTIC);
+ activate_array(l.i_cpu, l.outputs*l.batch, LOGISTIC);
+ activate_array(l.g_cpu, l.outputs*l.batch, TANH);
+ activate_array(l.o_cpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_cpu(l.outputs*l.batch, l.i_cpu, 1, l.temp_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.g_cpu, 1, l.temp_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.f_cpu, 1, l.c_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, l.temp_cpu, 1, l.c_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, l.c_cpu, 1, l.h_cpu, 1);
+ activate_array(l.h_cpu, l.outputs*l.batch, TANH);
+ mul_cpu(l.outputs*l.batch, l.o_cpu, 1, l.h_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, l.c_cpu, 1, l.cell_cpu, 1);
+ copy_cpu(l.outputs*l.batch, l.h_cpu, 1, l.output, 1);
+
+ state.input += l.inputs*l.batch;
+ l.output += l.outputs*l.batch;
+ l.cell_cpu += l.outputs*l.batch;
+
+ increment_layer(&wf, 1);
+ increment_layer(&wi, 1);
+ increment_layer(&wg, 1);
+ increment_layer(&wo, 1);
+
+ increment_layer(&uf, 1);
+ increment_layer(&ui, 1);
+ increment_layer(&ug, 1);
+ increment_layer(&uo, 1);
+ }
+}
+
+void backward_lstm_layer(layer l, network state)
+{
+ network s = { 0 };
+ s.train = state.train;
+ int i;
+ layer wf = *(l.wf);
+ layer wi = *(l.wi);
+ layer wg = *(l.wg);
+ layer wo = *(l.wo);
+
+ layer uf = *(l.uf);
+ layer ui = *(l.ui);
+ layer ug = *(l.ug);
+ layer uo = *(l.uo);
+
+ increment_layer(&wf, l.steps - 1);
+ increment_layer(&wi, l.steps - 1);
+ increment_layer(&wg, l.steps - 1);
+ increment_layer(&wo, l.steps - 1);
+
+ increment_layer(&uf, l.steps - 1);
+ increment_layer(&ui, l.steps - 1);
+ increment_layer(&ug, l.steps - 1);
+ increment_layer(&uo, l.steps - 1);
+
+ state.input += l.inputs*l.batch*(l.steps - 1);
+ if (state.delta) state.delta += l.inputs*l.batch*(l.steps - 1);
+
+ l.output += l.outputs*l.batch*(l.steps - 1);
+ l.cell_cpu += l.outputs*l.batch*(l.steps - 1);
+ l.delta += l.outputs*l.batch*(l.steps - 1);
+
+ for (i = l.steps - 1; i >= 0; --i) {
+ if (i != 0) copy_cpu(l.outputs*l.batch, l.cell_cpu - l.outputs*l.batch, 1, l.prev_cell_cpu, 1);
+ copy_cpu(l.outputs*l.batch, l.cell_cpu, 1, l.c_cpu, 1);
+ if (i != 0) copy_cpu(l.outputs*l.batch, l.output - l.outputs*l.batch, 1, l.prev_state_cpu, 1);
+ copy_cpu(l.outputs*l.batch, l.output, 1, l.h_cpu, 1);
+
+ l.dh_cpu = (i == 0) ? 0 : l.delta - l.outputs*l.batch;
+
+ copy_cpu(l.outputs*l.batch, wf.output, 1, l.f_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, uf.output, 1, l.f_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, wi.output, 1, l.i_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, ui.output, 1, l.i_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, wg.output, 1, l.g_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, ug.output, 1, l.g_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, wo.output, 1, l.o_cpu, 1);
+ axpy_cpu(l.outputs*l.batch, 1, uo.output, 1, l.o_cpu, 1);
+
+ activate_array(l.f_cpu, l.outputs*l.batch, LOGISTIC);
+ activate_array(l.i_cpu, l.outputs*l.batch, LOGISTIC);
+ activate_array(l.g_cpu, l.outputs*l.batch, TANH);
+ activate_array(l.o_cpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_cpu(l.outputs*l.batch, l.delta, 1, l.temp3_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, l.c_cpu, 1, l.temp_cpu, 1);
+ activate_array(l.temp_cpu, l.outputs*l.batch, TANH);
+
+ copy_cpu(l.outputs*l.batch, l.temp3_cpu, 1, l.temp2_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.o_cpu, 1, l.temp2_cpu, 1);
+
+ gradient_array(l.temp_cpu, l.outputs*l.batch, TANH, l.temp2_cpu);
+ axpy_cpu(l.outputs*l.batch, 1, l.dc_cpu, 1, l.temp2_cpu, 1);
+
+ copy_cpu(l.outputs*l.batch, l.c_cpu, 1, l.temp_cpu, 1);
+ activate_array(l.temp_cpu, l.outputs*l.batch, TANH);
+ mul_cpu(l.outputs*l.batch, l.temp3_cpu, 1, l.temp_cpu, 1);
+ gradient_array(l.o_cpu, l.outputs*l.batch, LOGISTIC, l.temp_cpu);
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, wo.delta, 1);
+ s.input = l.prev_state_cpu;
+ s.delta = l.dh_cpu;
+ backward_connected_layer(wo, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, uo.delta, 1);
+ s.input = state.input;
+ s.delta = state.delta;
+ backward_connected_layer(uo, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp2_cpu, 1, l.temp_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.i_cpu, 1, l.temp_cpu, 1);
+ gradient_array(l.g_cpu, l.outputs*l.batch, TANH, l.temp_cpu);
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, wg.delta, 1);
+ s.input = l.prev_state_cpu;
+ s.delta = l.dh_cpu;
+ backward_connected_layer(wg, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, ug.delta, 1);
+ s.input = state.input;
+ s.delta = state.delta;
+ backward_connected_layer(ug, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp2_cpu, 1, l.temp_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.g_cpu, 1, l.temp_cpu, 1);
+ gradient_array(l.i_cpu, l.outputs*l.batch, LOGISTIC, l.temp_cpu);
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, wi.delta, 1);
+ s.input = l.prev_state_cpu;
+ s.delta = l.dh_cpu;
+ backward_connected_layer(wi, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, ui.delta, 1);
+ s.input = state.input;
+ s.delta = state.delta;
+ backward_connected_layer(ui, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp2_cpu, 1, l.temp_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.prev_cell_cpu, 1, l.temp_cpu, 1);
+ gradient_array(l.f_cpu, l.outputs*l.batch, LOGISTIC, l.temp_cpu);
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, wf.delta, 1);
+ s.input = l.prev_state_cpu;
+ s.delta = l.dh_cpu;
+ backward_connected_layer(wf, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, uf.delta, 1);
+ s.input = state.input;
+ s.delta = state.delta;
+ backward_connected_layer(uf, s);
+
+ copy_cpu(l.outputs*l.batch, l.temp2_cpu, 1, l.temp_cpu, 1);
+ mul_cpu(l.outputs*l.batch, l.f_cpu, 1, l.temp_cpu, 1);
+ copy_cpu(l.outputs*l.batch, l.temp_cpu, 1, l.dc_cpu, 1);
+
+ state.input -= l.inputs*l.batch;
+ if (state.delta) state.delta -= l.inputs*l.batch;
+ l.output -= l.outputs*l.batch;
+ l.cell_cpu -= l.outputs*l.batch;
+ l.delta -= l.outputs*l.batch;
+
+ increment_layer(&wf, -1);
+ increment_layer(&wi, -1);
+ increment_layer(&wg, -1);
+ increment_layer(&wo, -1);
+
+ increment_layer(&uf, -1);
+ increment_layer(&ui, -1);
+ increment_layer(&ug, -1);
+ increment_layer(&uo, -1);
+ }
+}
+
+#ifdef GPU
+void update_lstm_layer_gpu(layer l, update_args a)
+{
+ update_connected_layer_gpu(*(l.wf), a);
+ update_connected_layer_gpu(*(l.wi), a);
+ update_connected_layer_gpu(*(l.wg), a);
+ update_connected_layer_gpu(*(l.wo), a);
+ update_connected_layer_gpu(*(l.uf), a);
+ update_connected_layer_gpu(*(l.ui), a);
+ update_connected_layer_gpu(*(l.ug), a);
+ update_connected_layer_gpu(*(l.uo), a);
+}
+
+void forward_lstm_layer_gpu(layer l, network state)
+{
+ network s = { 0 };
+ s.train = state.train;
+ int i;
+ layer wf = *(l.wf);
+ layer wi = *(l.wi);
+ layer wg = *(l.wg);
+ layer wo = *(l.wo);
+
+ layer uf = *(l.uf);
+ layer ui = *(l.ui);
+ layer ug = *(l.ug);
+ layer uo = *(l.uo);
+
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wf.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wi.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wg.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, wo.delta_gpu, 1);
+
+ fill_gpu(l.outputs * l.batch * l.steps, 0, uf.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, ui.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, ug.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, uo.delta_gpu, 1);
+ if (state.train) {
+ fill_gpu(l.outputs * l.batch * l.steps, 0, l.delta_gpu, 1);
+ }
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input_gpu = l.h_gpu;
+ forward_connected_layer_gpu(wf, s);
+ forward_connected_layer_gpu(wi, s);
+ forward_connected_layer_gpu(wg, s);
+ forward_connected_layer_gpu(wo, s);
+
+ s.input_gpu = state.input_gpu;
+ forward_connected_layer_gpu(uf, s);
+ forward_connected_layer_gpu(ui, s);
+ forward_connected_layer_gpu(ug, s);
+ forward_connected_layer_gpu(uo, s);
+
+ copy_gpu(l.outputs*l.batch, wf.output_gpu, 1, l.f_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, uf.output_gpu, 1, l.f_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, wi.output_gpu, 1, l.i_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, ui.output_gpu, 1, l.i_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, wg.output_gpu, 1, l.g_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, ug.output_gpu, 1, l.g_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, wo.output_gpu, 1, l.o_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, uo.output_gpu, 1, l.o_gpu, 1);
+
+ activate_array_gpu(l.f_gpu, l.outputs*l.batch, LOGISTIC);
+ activate_array_gpu(l.i_gpu, l.outputs*l.batch, LOGISTIC);
+ activate_array_gpu(l.g_gpu, l.outputs*l.batch, TANH);
+ activate_array_gpu(l.o_gpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_gpu(l.outputs*l.batch, l.i_gpu, 1, l.temp_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.g_gpu, 1, l.temp_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.f_gpu, 1, l.c_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, l.temp_gpu, 1, l.c_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, l.c_gpu, 1, l.h_gpu, 1);
+ activate_array_gpu(l.h_gpu, l.outputs*l.batch, TANH);
+ mul_gpu(l.outputs*l.batch, l.o_gpu, 1, l.h_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, l.c_gpu, 1, l.cell_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.h_gpu, 1, l.output_gpu, 1);
+
+ state.input_gpu += l.inputs*l.batch;
+ l.output_gpu += l.outputs*l.batch;
+ l.cell_gpu += l.outputs*l.batch;
+
+ increment_layer(&wf, 1);
+ increment_layer(&wi, 1);
+ increment_layer(&wg, 1);
+ increment_layer(&wo, 1);
+
+ increment_layer(&uf, 1);
+ increment_layer(&ui, 1);
+ increment_layer(&ug, 1);
+ increment_layer(&uo, 1);
+ }
+}
+
+void backward_lstm_layer_gpu(layer l, network state)
+{
+ network s = { 0 };
+ s.train = state.train;
+ int i;
+ layer wf = *(l.wf);
+ layer wi = *(l.wi);
+ layer wg = *(l.wg);
+ layer wo = *(l.wo);
+
+ layer uf = *(l.uf);
+ layer ui = *(l.ui);
+ layer ug = *(l.ug);
+ layer uo = *(l.uo);
+
+ increment_layer(&wf, l.steps - 1);
+ increment_layer(&wi, l.steps - 1);
+ increment_layer(&wg, l.steps - 1);
+ increment_layer(&wo, l.steps - 1);
+
+ increment_layer(&uf, l.steps - 1);
+ increment_layer(&ui, l.steps - 1);
+ increment_layer(&ug, l.steps - 1);
+ increment_layer(&uo, l.steps - 1);
+
+ state.input_gpu += l.inputs*l.batch*(l.steps - 1);
+ if (state.delta_gpu) state.delta_gpu += l.inputs*l.batch*(l.steps - 1);
+
+ l.output_gpu += l.outputs*l.batch*(l.steps - 1);
+ l.cell_gpu += l.outputs*l.batch*(l.steps - 1);
+ l.delta_gpu += l.outputs*l.batch*(l.steps - 1);
+
+ for (i = l.steps - 1; i >= 0; --i) {
+ if (i != 0) copy_gpu(l.outputs*l.batch, l.cell_gpu - l.outputs*l.batch, 1, l.prev_cell_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.cell_gpu, 1, l.c_gpu, 1);
+ if (i != 0) copy_gpu(l.outputs*l.batch, l.output_gpu - l.outputs*l.batch, 1, l.prev_state_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.output_gpu, 1, l.h_gpu, 1);
+
+ l.dh_gpu = (i == 0) ? 0 : l.delta_gpu - l.outputs*l.batch;
+
+ copy_gpu(l.outputs*l.batch, wf.output_gpu, 1, l.f_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, uf.output_gpu, 1, l.f_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, wi.output_gpu, 1, l.i_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, ui.output_gpu, 1, l.i_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, wg.output_gpu, 1, l.g_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, ug.output_gpu, 1, l.g_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, wo.output_gpu, 1, l.o_gpu, 1);
+ axpy_gpu(l.outputs*l.batch, 1, uo.output_gpu, 1, l.o_gpu, 1);
+
+ activate_array_gpu(l.f_gpu, l.outputs*l.batch, LOGISTIC);
+ activate_array_gpu(l.i_gpu, l.outputs*l.batch, LOGISTIC);
+ activate_array_gpu(l.g_gpu, l.outputs*l.batch, TANH);
+ activate_array_gpu(l.o_gpu, l.outputs*l.batch, LOGISTIC);
+
+ copy_gpu(l.outputs*l.batch, l.delta_gpu, 1, l.temp3_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, l.c_gpu, 1, l.temp_gpu, 1);
+ activate_array_gpu(l.temp_gpu, l.outputs*l.batch, TANH);
+
+ copy_gpu(l.outputs*l.batch, l.temp3_gpu, 1, l.temp2_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.o_gpu, 1, l.temp2_gpu, 1);
+
+ gradient_array_gpu(l.temp_gpu, l.outputs*l.batch, TANH, l.temp2_gpu);
+ axpy_gpu(l.outputs*l.batch, 1, l.dc_gpu, 1, l.temp2_gpu, 1);
+
+ copy_gpu(l.outputs*l.batch, l.c_gpu, 1, l.temp_gpu, 1);
+ activate_array_gpu(l.temp_gpu, l.outputs*l.batch, TANH);
+ mul_gpu(l.outputs*l.batch, l.temp3_gpu, 1, l.temp_gpu, 1);
+ gradient_array_gpu(l.o_gpu, l.outputs*l.batch, LOGISTIC, l.temp_gpu);
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, wo.delta_gpu, 1);
+ s.input_gpu = l.prev_state_gpu;
+ s.delta_gpu = l.dh_gpu;
+ backward_connected_layer_gpu(wo, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, uo.delta_gpu, 1);
+ s.input_gpu = state.input_gpu;
+ s.delta_gpu = state.delta_gpu;
+ backward_connected_layer_gpu(uo, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp2_gpu, 1, l.temp_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.i_gpu, 1, l.temp_gpu, 1);
+ gradient_array_gpu(l.g_gpu, l.outputs*l.batch, TANH, l.temp_gpu);
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, wg.delta_gpu, 1);
+ s.input_gpu = l.prev_state_gpu;
+ s.delta_gpu = l.dh_gpu;
+ backward_connected_layer_gpu(wg, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, ug.delta_gpu, 1);
+ s.input_gpu = state.input_gpu;
+ s.delta_gpu = state.delta_gpu;
+ backward_connected_layer_gpu(ug, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp2_gpu, 1, l.temp_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.g_gpu, 1, l.temp_gpu, 1);
+ gradient_array_gpu(l.i_gpu, l.outputs*l.batch, LOGISTIC, l.temp_gpu);
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, wi.delta_gpu, 1);
+ s.input_gpu = l.prev_state_gpu;
+ s.delta_gpu = l.dh_gpu;
+ backward_connected_layer_gpu(wi, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, ui.delta_gpu, 1);
+ s.input_gpu = state.input_gpu;
+ s.delta_gpu = state.delta_gpu;
+ backward_connected_layer_gpu(ui, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp2_gpu, 1, l.temp_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.prev_cell_gpu, 1, l.temp_gpu, 1);
+ gradient_array_gpu(l.f_gpu, l.outputs*l.batch, LOGISTIC, l.temp_gpu);
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, wf.delta_gpu, 1);
+ s.input_gpu = l.prev_state_gpu;
+ s.delta_gpu = l.dh_gpu;
+ backward_connected_layer_gpu(wf, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, uf.delta_gpu, 1);
+ s.input_gpu = state.input_gpu;
+ s.delta_gpu = state.delta_gpu;
+ backward_connected_layer_gpu(uf, s);
+
+ copy_gpu(l.outputs*l.batch, l.temp2_gpu, 1, l.temp_gpu, 1);
+ mul_gpu(l.outputs*l.batch, l.f_gpu, 1, l.temp_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.temp_gpu, 1, l.dc_gpu, 1);
+
+ state.input_gpu -= l.inputs*l.batch;
+ if (state.delta_gpu) state.delta_gpu -= l.inputs*l.batch;
+ l.output_gpu -= l.outputs*l.batch;
+ l.cell_gpu -= l.outputs*l.batch;
+ l.delta_gpu -= l.outputs*l.batch;
+
+ increment_layer(&wf, -1);
+ increment_layer(&wi, -1);
+ increment_layer(&wg, -1);
+ increment_layer(&wo, -1);
+
+ increment_layer(&uf, -1);
+ increment_layer(&ui, -1);
+ increment_layer(&ug, -1);
+ increment_layer(&uo, -1);
+ }
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/lstm_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/lstm_layer.h"
new file mode 100644
index 00000000..b9f07e64
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/lstm_layer.h"
@@ -0,0 +1,20 @@
+#ifndef LSTM_LAYER_H
+#define LSTM_LAYER_H
+
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+#define USET
+
+layer make_lstm_layer(int batch, int inputs, int outputs, int steps, int batch_normalize, int adam);
+
+void forward_lstm_layer(layer l, network net);
+void update_lstm_layer(layer l, update_args a);
+
+#ifdef GPU
+void forward_lstm_layer_gpu(layer l, network net);
+void backward_lstm_layer_gpu(layer l, network net);
+void update_lstm_layer_gpu(layer l, update_args a);
+
+#endif
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/matrix.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/matrix.c"
new file mode 100644
index 00000000..799916bf
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/matrix.c"
@@ -0,0 +1,196 @@
+#include "matrix.h"
+#include "utils.h"
+#include "blas.h"
+#include
+#include
+#include
+#include
+#include
+
+void free_matrix(matrix m)
+{
+ int i;
+ for(i = 0; i < m.rows; ++i) free(m.vals[i]);
+ free(m.vals);
+}
+
+float matrix_topk_accuracy(matrix truth, matrix guess, int k)
+{
+ int *indexes = calloc(k, sizeof(int));
+ int n = truth.cols;
+ int i,j;
+ int correct = 0;
+ for(i = 0; i < truth.rows; ++i){
+ top_k(guess.vals[i], n, k, indexes);
+ for(j = 0; j < k; ++j){
+ int class = indexes[j];
+ if(truth.vals[i][class]){
+ ++correct;
+ break;
+ }
+ }
+ }
+ free(indexes);
+ return (float)correct/truth.rows;
+}
+
+void scale_matrix(matrix m, float scale)
+{
+ int i,j;
+ for(i = 0; i < m.rows; ++i){
+ for(j = 0; j < m.cols; ++j){
+ m.vals[i][j] *= scale;
+ }
+ }
+}
+
+matrix resize_matrix(matrix m, int size)
+{
+ int i;
+ if (m.rows == size) return m;
+ if (m.rows < size) {
+ m.vals = realloc(m.vals, size*sizeof(float*));
+ for (i = m.rows; i < size; ++i) {
+ m.vals[i] = calloc(m.cols, sizeof(float));
+ }
+ } else if (m.rows > size) {
+ for (i = size; i < m.rows; ++i) {
+ free(m.vals[i]);
+ }
+ m.vals = realloc(m.vals, size*sizeof(float*));
+ }
+ m.rows = size;
+ return m;
+}
+
+void matrix_add_matrix(matrix from, matrix to)
+{
+ assert(from.rows == to.rows && from.cols == to.cols);
+ int i,j;
+ for(i = 0; i < from.rows; ++i){
+ for(j = 0; j < from.cols; ++j){
+ to.vals[i][j] += from.vals[i][j];
+ }
+ }
+}
+
+matrix copy_matrix(matrix m)
+{
+ matrix c = {0};
+ c.rows = m.rows;
+ c.cols = m.cols;
+ c.vals = calloc(c.rows, sizeof(float *));
+ int i;
+ for(i = 0; i < c.rows; ++i){
+ c.vals[i] = calloc(c.cols, sizeof(float));
+ copy_cpu(c.cols, m.vals[i], 1, c.vals[i], 1);
+ }
+ return c;
+}
+
+matrix make_matrix(int rows, int cols)
+{
+ int i;
+ matrix m;
+ m.rows = rows;
+ m.cols = cols;
+ m.vals = calloc(m.rows, sizeof(float *));
+ for(i = 0; i < m.rows; ++i){
+ m.vals[i] = calloc(m.cols, sizeof(float));
+ }
+ return m;
+}
+
+matrix hold_out_matrix(matrix *m, int n)
+{
+ int i;
+ matrix h;
+ h.rows = n;
+ h.cols = m->cols;
+ h.vals = calloc(h.rows, sizeof(float *));
+ for(i = 0; i < n; ++i){
+ int index = rand()%m->rows;
+ h.vals[i] = m->vals[index];
+ m->vals[index] = m->vals[--(m->rows)];
+ }
+ return h;
+}
+
+float *pop_column(matrix *m, int c)
+{
+ float *col = calloc(m->rows, sizeof(float));
+ int i, j;
+ for(i = 0; i < m->rows; ++i){
+ col[i] = m->vals[i][c];
+ for(j = c; j < m->cols-1; ++j){
+ m->vals[i][j] = m->vals[i][j+1];
+ }
+ }
+ --m->cols;
+ return col;
+}
+
+matrix csv_to_matrix(char *filename)
+{
+ FILE *fp = fopen(filename, "r");
+ if(!fp) file_error(filename);
+
+ matrix m;
+ m.cols = -1;
+
+ char *line;
+
+ int n = 0;
+ int size = 1024;
+ m.vals = calloc(size, sizeof(float*));
+ while((line = fgetl(fp))){
+ if(m.cols == -1) m.cols = count_fields(line);
+ if(n == size){
+ size *= 2;
+ m.vals = realloc(m.vals, size*sizeof(float*));
+ }
+ m.vals[n] = parse_fields(line, m.cols);
+ free(line);
+ ++n;
+ }
+ m.vals = realloc(m.vals, n*sizeof(float*));
+ m.rows = n;
+ return m;
+}
+
+void matrix_to_csv(matrix m)
+{
+ int i, j;
+
+ for(i = 0; i < m.rows; ++i){
+ for(j = 0; j < m.cols; ++j){
+ if(j > 0) printf(",");
+ printf("%.17g", m.vals[i][j]);
+ }
+ printf("\n");
+ }
+}
+
+void print_matrix(matrix m)
+{
+ int i, j;
+ printf("%d X %d Matrix:\n",m.rows, m.cols);
+ printf(" __");
+ for(j = 0; j < 16*m.cols-1; ++j) printf(" ");
+ printf("__ \n");
+
+ printf("| ");
+ for(j = 0; j < 16*m.cols-1; ++j) printf(" ");
+ printf(" |\n");
+
+ for(i = 0; i < m.rows; ++i){
+ printf("| ");
+ for(j = 0; j < m.cols; ++j){
+ printf("%15.7f ", m.vals[i][j]);
+ }
+ printf(" |\n");
+ }
+ printf("|__");
+ for(j = 0; j < 16*m.cols-1; ++j) printf(" ");
+ printf("__|\n");
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/matrix.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/matrix.h"
new file mode 100644
index 00000000..879acd70
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/matrix.h"
@@ -0,0 +1,13 @@
+#ifndef MATRIX_H
+#define MATRIX_H
+#include "darknet.h"
+
+matrix copy_matrix(matrix m);
+void print_matrix(matrix m);
+
+matrix hold_out_matrix(matrix *m, int n);
+matrix resize_matrix(matrix m, int size);
+
+float *pop_column(matrix *m, int c);
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer.c"
new file mode 100644
index 00000000..fb05635e
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer.c"
@@ -0,0 +1,127 @@
+#include "maxpool_layer.h"
+#include "cuda.h"
+#include
+
+image get_maxpool_image(maxpool_layer l)
+{
+ int h = l.out_h;
+ int w = l.out_w;
+ int c = l.c;
+ return float_to_image(w,h,c,l.output);
+}
+
+image get_maxpool_delta(maxpool_layer l)
+{
+ int h = l.out_h;
+ int w = l.out_w;
+ int c = l.c;
+ return float_to_image(w,h,c,l.delta);
+}
+
+maxpool_layer make_maxpool_layer(int batch, int h, int w, int c, int size, int stride, int padding)
+{
+ maxpool_layer l = {0};
+ l.type = MAXPOOL;
+ l.batch = batch;
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.pad = padding;
+ l.out_w = (w + padding - size)/stride + 1;
+ l.out_h = (h + padding - size)/stride + 1;
+ l.out_c = c;
+ l.outputs = l.out_h * l.out_w * l.out_c;
+ l.inputs = h*w*c;
+ l.size = size;
+ l.stride = stride;
+ int output_size = l.out_h * l.out_w * l.out_c * batch;
+ l.indexes = calloc(output_size, sizeof(int));
+ l.output = calloc(output_size, sizeof(float));
+ l.delta = calloc(output_size, sizeof(float));
+ l.forward = forward_maxpool_layer;
+ l.backward = backward_maxpool_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_maxpool_layer_gpu;
+ l.backward_gpu = backward_maxpool_layer_gpu;
+ l.indexes_gpu = cuda_make_int_array(0, output_size);
+ l.output_gpu = cuda_make_array(l.output, output_size);
+ l.delta_gpu = cuda_make_array(l.delta, output_size);
+ #endif
+ fprintf(stderr, "max %d x %d / %d %4d x%4d x%4d -> %4d x%4d x%4d\n", size, size, stride, w, h, c, l.out_w, l.out_h, l.out_c);
+ return l;
+}
+
+void resize_maxpool_layer(maxpool_layer *l, int w, int h)
+{
+ l->h = h;
+ l->w = w;
+ l->inputs = h*w*l->c;
+
+ l->out_w = (w + l->pad - l->size)/l->stride + 1;
+ l->out_h = (h + l->pad - l->size)/l->stride + 1;
+ l->outputs = l->out_w * l->out_h * l->c;
+ int output_size = l->outputs * l->batch;
+
+ l->indexes = realloc(l->indexes, output_size * sizeof(int));
+ l->output = realloc(l->output, output_size * sizeof(float));
+ l->delta = realloc(l->delta, output_size * sizeof(float));
+
+ #ifdef GPU
+ cuda_free((float *)l->indexes_gpu);
+ cuda_free(l->output_gpu);
+ cuda_free(l->delta_gpu);
+ l->indexes_gpu = cuda_make_int_array(0, output_size);
+ l->output_gpu = cuda_make_array(l->output, output_size);
+ l->delta_gpu = cuda_make_array(l->delta, output_size);
+ #endif
+}
+
+void forward_maxpool_layer(const maxpool_layer l, network net)
+{
+ int b,i,j,k,m,n;
+ int w_offset = -l.pad/2;
+ int h_offset = -l.pad/2;
+
+ int h = l.out_h;
+ int w = l.out_w;
+ int c = l.c;
+
+ for(b = 0; b < l.batch; ++b){
+ for(k = 0; k < c; ++k){
+ for(i = 0; i < h; ++i){
+ for(j = 0; j < w; ++j){
+ int out_index = j + w*(i + h*(k + c*b));
+ float max = -FLT_MAX;
+ int max_i = -1;
+ for(n = 0; n < l.size; ++n){
+ for(m = 0; m < l.size; ++m){
+ int cur_h = h_offset + i*l.stride + n;
+ int cur_w = w_offset + j*l.stride + m;
+ int index = cur_w + l.w*(cur_h + l.h*(k + b*l.c));
+ int valid = (cur_h >= 0 && cur_h < l.h &&
+ cur_w >= 0 && cur_w < l.w);
+ float val = (valid != 0) ? net.input[index] : -FLT_MAX;
+ max_i = (val > max) ? index : max_i;
+ max = (val > max) ? val : max;
+ }
+ }
+ l.output[out_index] = max;
+ l.indexes[out_index] = max_i;
+ }
+ }
+ }
+ }
+}
+
+void backward_maxpool_layer(const maxpool_layer l, network net)
+{
+ int i;
+ int h = l.out_h;
+ int w = l.out_w;
+ int c = l.c;
+ for(i = 0; i < h*w*c*l.batch; ++i){
+ int index = l.indexes[i];
+ net.delta[index] += l.delta[i];
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer.h"
new file mode 100644
index 00000000..ceb51907
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer.h"
@@ -0,0 +1,23 @@
+#ifndef MAXPOOL_LAYER_H
+#define MAXPOOL_LAYER_H
+
+#include "image.h"
+#include "cuda.h"
+#include "layer.h"
+#include "network.h"
+
+typedef layer maxpool_layer;
+
+image get_maxpool_image(maxpool_layer l);
+maxpool_layer make_maxpool_layer(int batch, int h, int w, int c, int size, int stride, int padding);
+void resize_maxpool_layer(maxpool_layer *l, int w, int h);
+void forward_maxpool_layer(const maxpool_layer l, network net);
+void backward_maxpool_layer(const maxpool_layer l, network net);
+
+#ifdef GPU
+void forward_maxpool_layer_gpu(maxpool_layer l, network net);
+void backward_maxpool_layer_gpu(maxpool_layer l, network net);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer_kernels.cu" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer_kernels.cu"
new file mode 100644
index 00000000..869ef466
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/maxpool_layer_kernels.cu"
@@ -0,0 +1,106 @@
+#include "cuda_runtime.h"
+#include "curand.h"
+#include "cublas_v2.h"
+
+extern "C" {
+#include "maxpool_layer.h"
+#include "cuda.h"
+}
+
+__global__ void forward_maxpool_layer_kernel(int n, int in_h, int in_w, int in_c, int stride, int size, int pad, float *input, float *output, int *indexes)
+{
+ int h = (in_h + pad - size)/stride + 1;
+ int w = (in_w + pad - size)/stride + 1;
+ int c = in_c;
+
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= n) return;
+
+ int j = id % w;
+ id /= w;
+ int i = id % h;
+ id /= h;
+ int k = id % c;
+ id /= c;
+ int b = id;
+
+ int w_offset = -pad/2;
+ int h_offset = -pad/2;
+
+ int out_index = j + w*(i + h*(k + c*b));
+ float max = -INFINITY;
+ int max_i = -1;
+ int l, m;
+ for(l = 0; l < size; ++l){
+ for(m = 0; m < size; ++m){
+ int cur_h = h_offset + i*stride + l;
+ int cur_w = w_offset + j*stride + m;
+ int index = cur_w + in_w*(cur_h + in_h*(k + b*in_c));
+ int valid = (cur_h >= 0 && cur_h < in_h &&
+ cur_w >= 0 && cur_w < in_w);
+ float val = (valid != 0) ? input[index] : -INFINITY;
+ max_i = (val > max) ? index : max_i;
+ max = (val > max) ? val : max;
+ }
+ }
+ output[out_index] = max;
+ indexes[out_index] = max_i;
+}
+
+__global__ void backward_maxpool_layer_kernel(int n, int in_h, int in_w, int in_c, int stride, int size, int pad, float *delta, float *prev_delta, int *indexes)
+{
+ int h = (in_h + pad - size)/stride + 1;
+ int w = (in_w + pad - size)/stride + 1;
+ int c = in_c;
+ int area = (size-1)/stride;
+
+ int id = (blockIdx.x + blockIdx.y*gridDim.x) * blockDim.x + threadIdx.x;
+ if(id >= n) return;
+
+ int index = id;
+ int j = id % in_w;
+ id /= in_w;
+ int i = id % in_h;
+ id /= in_h;
+ int k = id % in_c;
+ id /= in_c;
+ int b = id;
+
+ int w_offset = -pad/2;
+ int h_offset = -pad/2;
+
+ float d = 0;
+ int l, m;
+ for(l = -area; l < area+1; ++l){
+ for(m = -area; m < area+1; ++m){
+ int out_w = (j-w_offset)/stride + m;
+ int out_h = (i-h_offset)/stride + l;
+ int out_index = out_w + w*(out_h + h*(k + c*b));
+ int valid = (out_w >= 0 && out_w < w &&
+ out_h >= 0 && out_h < h);
+ d += (valid && indexes[out_index] == index) ? delta[out_index] : 0;
+ }
+ }
+ prev_delta[index] += d;
+}
+
+extern "C" void forward_maxpool_layer_gpu(maxpool_layer layer, network net)
+{
+ int h = layer.out_h;
+ int w = layer.out_w;
+ int c = layer.c;
+
+ size_t n = h*w*c*layer.batch;
+
+ forward_maxpool_layer_kernel<<>>(n, layer.h, layer.w, layer.c, layer.stride, layer.size, layer.pad, net.input_gpu, layer.output_gpu, layer.indexes_gpu);
+ check_error(cudaPeekAtLastError());
+}
+
+extern "C" void backward_maxpool_layer_gpu(maxpool_layer layer, network net)
+{
+ size_t n = layer.h*layer.w*layer.c*layer.batch;
+
+ backward_maxpool_layer_kernel<<>>(n, layer.h, layer.w, layer.c, layer.stride, layer.size, layer.pad, layer.delta_gpu, net.delta_gpu, layer.indexes_gpu);
+ check_error(cudaPeekAtLastError());
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/network.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/network.c"
new file mode 100644
index 00000000..aaab7997
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/network.c"
@@ -0,0 +1,1129 @@
+#include
+#include
+#include
+#include "network.h"
+#include "image.h"
+#include "data.h"
+#include "utils.h"
+#include "blas.h"
+
+#include "crop_layer.h"
+#include "connected_layer.h"
+#include "gru_layer.h"
+#include "rnn_layer.h"
+#include "crnn_layer.h"
+#include "local_layer.h"
+#include "convolutional_layer.h"
+#include "activation_layer.h"
+#include "detection_layer.h"
+#include "region_layer.h"
+#include "yolo_layer.h"
+#include "normalization_layer.h"
+#include "batchnorm_layer.h"
+#include "maxpool_layer.h"
+#include "reorg_layer.h"
+#include "avgpool_layer.h"
+#include "cost_layer.h"
+#include "softmax_layer.h"
+#include "dropout_layer.h"
+#include "route_layer.h"
+#include "upsample_layer.h"
+#include "shortcut_layer.h"
+#include "parser.h"
+#include "data.h"
+
+load_args get_base_args(network *net)
+{
+ load_args args = {0};
+ args.w = net->w;
+ args.h = net->h;
+ args.size = net->w;
+
+ args.min = net->min_crop;
+ args.max = net->max_crop;
+ args.angle = net->angle;
+ args.aspect = net->aspect;
+ args.exposure = net->exposure;
+ args.center = net->center;
+ args.saturation = net->saturation;
+ args.hue = net->hue;
+ return args;
+}
+
+network *load_network(char *cfg, char *weights, int clear)
+{
+ network *net = parse_network_cfg(cfg);
+ if(weights && weights[0] != 0){
+ load_weights(net, weights);
+ }
+ if(clear) (*net->seen) = 0;
+ return net;
+}
+
+size_t get_current_batch(network *net)
+{
+ size_t batch_num = (*net->seen)/(net->batch*net->subdivisions);
+ return batch_num;
+}
+
+void reset_network_state(network *net, int b)
+{
+ int i;
+ for (i = 0; i < net->n; ++i) {
+ #ifdef GPU
+ layer l = net->layers[i];
+ if(l.state_gpu){
+ fill_gpu(l.outputs, 0, l.state_gpu + l.outputs*b, 1);
+ }
+ if(l.h_gpu){
+ fill_gpu(l.outputs, 0, l.h_gpu + l.outputs*b, 1);
+ }
+ #endif
+ }
+}
+
+void reset_rnn(network *net)
+{
+ reset_network_state(net, 0);
+}
+
+float get_current_rate(network *net)
+{
+ size_t batch_num = get_current_batch(net);
+ int i;
+ float rate;
+ if (batch_num < net->burn_in) return net->learning_rate * pow((float)batch_num / net->burn_in, net->power);
+ switch (net->policy) {
+ case CONSTANT:
+ return net->learning_rate;
+ case STEP:
+ return net->learning_rate * pow(net->scale, batch_num/net->step);
+ case STEPS:
+ rate = net->learning_rate;
+ for(i = 0; i < net->num_steps; ++i){
+ if(net->steps[i] > batch_num) return rate;
+ rate *= net->scales[i];
+ }
+ return rate;
+ case EXP:
+ return net->learning_rate * pow(net->gamma, batch_num);
+ case POLY:
+ return net->learning_rate * pow(1 - (float)batch_num / net->max_batches, net->power);
+ case RANDOM:
+ return net->learning_rate * pow(rand_uniform(0,1), net->power);
+ case SIG:
+ return net->learning_rate * (1./(1.+exp(net->gamma*(batch_num - net->step))));
+ default:
+ fprintf(stderr, "Policy is weird!\n");
+ return net->learning_rate;
+ }
+}
+
+char *get_layer_string(LAYER_TYPE a)
+{
+ switch(a){
+ case CONVOLUTIONAL:
+ return "convolutional";
+ case ACTIVE:
+ return "activation";
+ case LOCAL:
+ return "local";
+ case DECONVOLUTIONAL:
+ return "deconvolutional";
+ case CONNECTED:
+ return "connected";
+ case RNN:
+ return "rnn";
+ case GRU:
+ return "gru";
+ case LSTM:
+ return "lstm";
+ case CRNN:
+ return "crnn";
+ case MAXPOOL:
+ return "maxpool";
+ case REORG:
+ return "reorg";
+ case AVGPOOL:
+ return "avgpool";
+ case SOFTMAX:
+ return "softmax";
+ case DETECTION:
+ return "detection";
+ case REGION:
+ return "region";
+ case YOLO:
+ return "yolo";
+ case DROPOUT:
+ return "dropout";
+ case CROP:
+ return "crop";
+ case COST:
+ return "cost";
+ case ROUTE:
+ return "route";
+ case SHORTCUT:
+ return "shortcut";
+ case NORMALIZATION:
+ return "normalization";
+ case BATCHNORM:
+ return "batchnorm";
+ default:
+ break;
+ }
+ return "none";
+}
+
+network *make_network(int n)
+{
+ network *net = calloc(1, sizeof(network));
+ net->n = n;
+ net->layers = calloc(net->n, sizeof(layer));
+ net->seen = calloc(1, sizeof(size_t));
+ net->t = calloc(1, sizeof(int));
+ net->cost = calloc(1, sizeof(float));
+ return net;
+}
+
+void forward_network(network *netp)
+{
+#ifdef GPU
+ if(netp->gpu_index >= 0){
+ forward_network_gpu(netp);
+ return;
+ }
+#endif
+ network net = *netp;
+ int i;
+ for(i = 0; i < net.n; ++i){
+ net.index = i;
+ layer l = net.layers[i];
+ if(l.delta){
+ fill_cpu(l.outputs * l.batch, 0, l.delta, 1);
+ }
+ l.forward(l, net);
+ net.input = l.output;
+ if(l.truth) {
+ net.truth = l.output;
+ }
+ }
+ calc_network_cost(netp);
+}
+
+void update_network(network *netp)
+{
+#ifdef GPU
+ if(netp->gpu_index >= 0){
+ update_network_gpu(netp);
+ return;
+ }
+#endif
+ network net = *netp;
+ int i;
+ update_args a = {0};
+ a.batch = net.batch*net.subdivisions;
+ a.learning_rate = get_current_rate(netp);
+ a.momentum = net.momentum;
+ a.decay = net.decay;
+ a.adam = net.adam;
+ a.B1 = net.B1;
+ a.B2 = net.B2;
+ a.eps = net.eps;
+ ++*net.t;
+ a.t = *net.t;
+
+ for(i = 0; i < net.n; ++i){
+ layer l = net.layers[i];
+ if(l.update){
+ l.update(l, a);
+ }
+ }
+}
+
+void calc_network_cost(network *netp)
+{
+ network net = *netp;
+ int i;
+ float sum = 0;
+ int count = 0;
+ for(i = 0; i < net.n; ++i){
+ if(net.layers[i].cost){
+ sum += net.layers[i].cost[0];
+ ++count;
+ }
+ }
+ *net.cost = sum/count;
+}
+
+int get_predicted_class_network(network *net)
+{
+ return max_index(net->output, net->outputs);
+}
+
+void backward_network(network *netp)
+{
+#ifdef GPU
+ if(netp->gpu_index >= 0){
+ backward_network_gpu(netp);
+ return;
+ }
+#endif
+ network net = *netp;
+ int i;
+ network orig = net;
+ for(i = net.n-1; i >= 0; --i){
+ layer l = net.layers[i];
+ if(l.stopbackward) break;
+ if(i == 0){
+ net = orig;
+ }else{
+ layer prev = net.layers[i-1];
+ net.input = prev.output;
+ net.delta = prev.delta;
+ }
+ net.index = i;
+ l.backward(l, net);
+ }
+}
+
+float train_network_datum(network *net)
+{
+ *net->seen += net->batch;
+ net->train = 1;
+ forward_network(net);
+ backward_network(net);
+ float error = *net->cost;
+ if(((*net->seen)/net->batch)%net->subdivisions == 0) update_network(net);
+ return error;
+}
+
+float train_network_sgd(network *net, data d, int n)
+{
+ int batch = net->batch;
+
+ int i;
+ float sum = 0;
+ for(i = 0; i < n; ++i){
+ get_random_batch(d, batch, net->input, net->truth);
+ float err = train_network_datum(net);
+ sum += err;
+ }
+ return (float)sum/(n*batch);
+}
+
+float train_network(network *net, data d)
+{
+ assert(d.X.rows % net->batch == 0);
+ int batch = net->batch;
+ int n = d.X.rows / batch;
+
+ int i;
+ float sum = 0;
+ for(i = 0; i < n; ++i){
+ get_next_batch(d, batch, i*batch, net->input, net->truth);
+ float err = train_network_datum(net);
+ sum += err;
+ }
+ return (float)sum/(n*batch);
+}
+
+void set_temp_network(network *net, float t)
+{
+ int i;
+ for(i = 0; i < net->n; ++i){
+ net->layers[i].temperature = t;
+ }
+}
+
+
+void set_batch_network(network *net, int b)
+{
+ net->batch = b;
+ int i;
+ for(i = 0; i < net->n; ++i){
+ net->layers[i].batch = b;
+#ifdef CUDNN
+ if(net->layers[i].type == CONVOLUTIONAL){
+ cudnn_convolutional_setup(net->layers + i);
+ }
+ if(net->layers[i].type == DECONVOLUTIONAL){
+ layer *l = net->layers + i;
+ cudnnSetTensor4dDescriptor(l->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l->out_c, l->out_h, l->out_w);
+ cudnnSetTensor4dDescriptor(l->normTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, 1, l->out_c, 1, 1);
+ }
+#endif
+ }
+}
+
+int resize_network(network *net, int w, int h)
+{
+#ifdef GPU
+ cuda_set_device(net->gpu_index);
+ cuda_free(net->workspace);
+#endif
+ int i;
+ //if(w == net->w && h == net->h) return 0;
+ net->w = w;
+ net->h = h;
+ int inputs = 0;
+ size_t workspace_size = 0;
+ //fprintf(stderr, "Resizing to %d x %d...\n", w, h);
+ //fflush(stderr);
+ for (i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == CONVOLUTIONAL){
+ resize_convolutional_layer(&l, w, h);
+ }else if(l.type == CROP){
+ resize_crop_layer(&l, w, h);
+ }else if(l.type == MAXPOOL){
+ resize_maxpool_layer(&l, w, h);
+ }else if(l.type == REGION){
+ resize_region_layer(&l, w, h);
+ }else if(l.type == YOLO){
+ resize_yolo_layer(&l, w, h);
+ }else if(l.type == ROUTE){
+ resize_route_layer(&l, net);
+ }else if(l.type == SHORTCUT){
+ resize_shortcut_layer(&l, w, h);
+ }else if(l.type == UPSAMPLE){
+ resize_upsample_layer(&l, w, h);
+ }else if(l.type == REORG){
+ resize_reorg_layer(&l, w, h);
+ }else if(l.type == AVGPOOL){
+ resize_avgpool_layer(&l, w, h);
+ }else if(l.type == NORMALIZATION){
+ resize_normalization_layer(&l, w, h);
+ }else if(l.type == COST){
+ resize_cost_layer(&l, inputs);
+ }else{
+ error("Cannot resize this type of layer");
+ }
+ if(l.workspace_size > workspace_size) workspace_size = l.workspace_size;
+ if(l.workspace_size > 2000000000) assert(0);
+ inputs = l.outputs;
+ net->layers[i] = l;
+ w = l.out_w;
+ h = l.out_h;
+ if(l.type == AVGPOOL) break;
+ }
+ layer out = get_network_output_layer(net);
+ net->inputs = net->layers[0].inputs;
+ net->outputs = out.outputs;
+ net->truths = out.outputs;
+ if(net->layers[net->n-1].truths) net->truths = net->layers[net->n-1].truths;
+ net->output = out.output;
+ free(net->input);
+ free(net->truth);
+ net->input = calloc(net->inputs*net->batch, sizeof(float));
+ net->truth = calloc(net->truths*net->batch, sizeof(float));
+#ifdef GPU
+ if(gpu_index >= 0){
+ cuda_free(net->input_gpu);
+ cuda_free(net->truth_gpu);
+ net->input_gpu = cuda_make_array(net->input, net->inputs*net->batch);
+ net->truth_gpu = cuda_make_array(net->truth, net->truths*net->batch);
+ if(workspace_size){
+ net->workspace = cuda_make_array(0, (workspace_size-1)/sizeof(float)+1);
+ }
+ }else {
+ free(net->workspace);
+ net->workspace = calloc(1, workspace_size);
+ }
+#else
+ free(net->workspace);
+ net->workspace = calloc(1, workspace_size);
+#endif
+ //fprintf(stderr, " Done!\n");
+ return 0;
+}
+
+layer get_network_detection_layer(network *net)
+{
+ int i;
+ for(i = 0; i < net->n; ++i){
+ if(net->layers[i].type == DETECTION){
+ return net->layers[i];
+ }
+ }
+ fprintf(stderr, "Detection layer not found!!\n");
+ layer l = {0};
+ return l;
+}
+
+image get_network_image_layer(network *net, int i)
+{
+ layer l = net->layers[i];
+#ifdef GPU
+ //cuda_pull_array(l.output_gpu, l.output, l.outputs);
+#endif
+ if (l.out_w && l.out_h && l.out_c){
+ return float_to_image(l.out_w, l.out_h, l.out_c, l.output);
+ }
+ image def = {0};
+ return def;
+}
+
+image get_network_image(network *net)
+{
+ int i;
+ for(i = net->n-1; i >= 0; --i){
+ image m = get_network_image_layer(net, i);
+ if(m.h != 0) return m;
+ }
+ image def = {0};
+ return def;
+}
+
+void visualize_network(network *net)
+{
+ image *prev = 0;
+ int i;
+ char buff[256];
+ for(i = 0; i < net->n; ++i){
+ sprintf(buff, "Layer %d", i);
+ layer l = net->layers[i];
+ if(l.type == CONVOLUTIONAL){
+ prev = visualize_convolutional_layer(l, buff, prev);
+ }
+ }
+}
+
+void top_predictions(network *net, int k, int *index)
+{
+ top_k(net->output, net->outputs, k, index);
+}
+
+
+float *network_predict(network *net, float *input)
+{
+ network orig = *net;
+ net->input = input;
+ net->truth = 0;
+ net->train = 0;
+ net->delta = 0;
+ forward_network(net);
+ float *out = net->output;
+ *net = orig;
+ return out;
+}
+
+int num_detections(network *net, float thresh)
+{
+ int i;
+ int s = 0;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ if(l.type == YOLO){
+ s += yolo_num_detections(l, thresh);
+ }
+ if(l.type == DETECTION || l.type == REGION){
+ s += l.w*l.h*l.n;
+ }
+ }
+ return s;
+}
+
+detection *make_network_boxes(network *net, float thresh, int *num)
+{
+ layer l = net->layers[net->n - 1];
+ int i;
+ int nboxes = num_detections(net, thresh);
+ if(num) *num = nboxes;
+ detection *dets = calloc(nboxes, sizeof(detection));
+ for(i = 0; i < nboxes; ++i){
+ dets[i].prob = calloc(l.classes, sizeof(float));
+ if(l.coords > 4){
+ dets[i].mask = calloc(l.coords-4, sizeof(float));
+ }
+ }
+ return dets;
+}
+
+void fill_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, detection *dets)
+{
+ int j;
+ for(j = 0; j < net->n; ++j){
+ layer l = net->layers[j];
+ if(l.type == YOLO){
+ int count = get_yolo_detections(l, w, h, net->w, net->h, thresh, map, relative, dets);
+ dets += count;
+ }
+ if(l.type == REGION){
+ get_region_detections(l, w, h, net->w, net->h, thresh, map, hier, relative, dets);
+ dets += l.w*l.h*l.n;
+ }
+ if(l.type == DETECTION){
+ get_detection_detections(l, w, h, thresh, dets);
+ dets += l.w*l.h*l.n;
+ }
+ }
+}
+
+detection *get_network_boxes(network *net, int w, int h, float thresh, float hier, int *map, int relative, int *num)
+{
+ detection *dets = make_network_boxes(net, thresh, num);
+ fill_network_boxes(net, w, h, thresh, hier, map, relative, dets);
+ return dets;
+}
+
+void free_detections(detection *dets, int n)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ free(dets[i].prob);
+ if(dets[i].mask) free(dets[i].mask);
+ }
+ free(dets);
+}
+
+float *network_predict_image(network *net, image im)
+{
+ image imr = letterbox_image(im, net->w, net->h);
+ set_batch_network(net, 1);
+ float *p = network_predict(net, imr.data);
+ free_image(imr);
+ return p;
+}
+
+int network_width(network *net){return net->w;}
+int network_height(network *net){return net->h;}
+
+matrix network_predict_data_multi(network *net, data test, int n)
+{
+ int i,j,b,m;
+ int k = net->outputs;
+ matrix pred = make_matrix(test.X.rows, k);
+ float *X = calloc(net->batch*test.X.rows, sizeof(float));
+ for(i = 0; i < test.X.rows; i += net->batch){
+ for(b = 0; b < net->batch; ++b){
+ if(i+b == test.X.rows) break;
+ memcpy(X+b*test.X.cols, test.X.vals[i+b], test.X.cols*sizeof(float));
+ }
+ for(m = 0; m < n; ++m){
+ float *out = network_predict(net, X);
+ for(b = 0; b < net->batch; ++b){
+ if(i+b == test.X.rows) break;
+ for(j = 0; j < k; ++j){
+ pred.vals[i+b][j] += out[j+b*k]/n;
+ }
+ }
+ }
+ }
+ free(X);
+ return pred;
+}
+
+matrix network_predict_data(network *net, data test)
+{
+ int i,j,b;
+ int k = net->outputs;
+ matrix pred = make_matrix(test.X.rows, k);
+ float *X = calloc(net->batch*test.X.cols, sizeof(float));
+ for(i = 0; i < test.X.rows; i += net->batch){
+ for(b = 0; b < net->batch; ++b){
+ if(i+b == test.X.rows) break;
+ memcpy(X+b*test.X.cols, test.X.vals[i+b], test.X.cols*sizeof(float));
+ }
+ float *out = network_predict(net, X);
+ for(b = 0; b < net->batch; ++b){
+ if(i+b == test.X.rows) break;
+ for(j = 0; j < k; ++j){
+ pred.vals[i+b][j] = out[j+b*k];
+ }
+ }
+ }
+ free(X);
+ return pred;
+}
+
+void print_network(network *net)
+{
+ int i,j;
+ for(i = 0; i < net->n; ++i){
+ layer l = net->layers[i];
+ float *output = l.output;
+ int n = l.outputs;
+ float mean = mean_array(output, n);
+ float vari = variance_array(output, n);
+ fprintf(stderr, "Layer %d - Mean: %f, Variance: %f\n",i,mean, vari);
+ if(n > 100) n = 100;
+ for(j = 0; j < n; ++j) fprintf(stderr, "%f, ", output[j]);
+ if(n == 100)fprintf(stderr,".....\n");
+ fprintf(stderr, "\n");
+ }
+}
+
+void compare_networks(network *n1, network *n2, data test)
+{
+ matrix g1 = network_predict_data(n1, test);
+ matrix g2 = network_predict_data(n2, test);
+ int i;
+ int a,b,c,d;
+ a = b = c = d = 0;
+ for(i = 0; i < g1.rows; ++i){
+ int truth = max_index(test.y.vals[i], test.y.cols);
+ int p1 = max_index(g1.vals[i], g1.cols);
+ int p2 = max_index(g2.vals[i], g2.cols);
+ if(p1 == truth){
+ if(p2 == truth) ++d;
+ else ++c;
+ }else{
+ if(p2 == truth) ++b;
+ else ++a;
+ }
+ }
+ printf("%5d %5d\n%5d %5d\n", a, b, c, d);
+ float num = pow((abs(b - c) - 1.), 2.);
+ float den = b + c;
+ printf("%f\n", num/den);
+}
+
+float network_accuracy(network *net, data d)
+{
+ matrix guess = network_predict_data(net, d);
+ float acc = matrix_topk_accuracy(d.y, guess,1);
+ free_matrix(guess);
+ return acc;
+}
+
+float *network_accuracies(network *net, data d, int n)
+{
+ static float acc[2];
+ matrix guess = network_predict_data(net, d);
+ acc[0] = matrix_topk_accuracy(d.y, guess, 1);
+ acc[1] = matrix_topk_accuracy(d.y, guess, n);
+ free_matrix(guess);
+ return acc;
+}
+
+layer get_network_output_layer(network *net)
+{
+ int i;
+ for(i = net->n - 1; i >= 0; --i){
+ if(net->layers[i].type != COST) break;
+ }
+ return net->layers[i];
+}
+
+float network_accuracy_multi(network *net, data d, int n)
+{
+ matrix guess = network_predict_data_multi(net, d, n);
+ float acc = matrix_topk_accuracy(d.y, guess,1);
+ free_matrix(guess);
+ return acc;
+}
+
+void free_network(network *net)
+{
+ int i;
+ for(i = 0; i < net->n; ++i){
+ free_layer(net->layers[i]);
+ }
+ free(net->layers);
+ if(net->input) free(net->input);
+ if(net->truth) free(net->truth);
+#ifdef GPU
+ if(net->input_gpu) cuda_free(net->input_gpu);
+ if(net->truth_gpu) cuda_free(net->truth_gpu);
+#endif
+ free(net);
+}
+
+// Some day...
+// ^ What the hell is this comment for?
+
+
+layer network_output_layer(network *net)
+{
+ int i;
+ for(i = net->n - 1; i >= 0; --i){
+ if(net->layers[i].type != COST) break;
+ }
+ return net->layers[i];
+}
+
+int network_inputs(network *net)
+{
+ return net->layers[0].inputs;
+}
+
+int network_outputs(network *net)
+{
+ return network_output_layer(net).outputs;
+}
+
+float *network_output(network *net)
+{
+ return network_output_layer(net).output;
+}
+
+#ifdef GPU
+
+void forward_network_gpu(network *netp)
+{
+ network net = *netp;
+ cuda_set_device(net.gpu_index);
+ cuda_push_array(net.input_gpu, net.input, net.inputs*net.batch);
+ if(net.truth){
+ cuda_push_array(net.truth_gpu, net.truth, net.truths*net.batch);
+ }
+
+ int i;
+ for(i = 0; i < net.n; ++i){
+ net.index = i;
+ layer l = net.layers[i];
+ if(l.delta_gpu){
+ fill_gpu(l.outputs * l.batch, 0, l.delta_gpu, 1);
+ }
+ l.forward_gpu(l, net);
+ net.input_gpu = l.output_gpu;
+ net.input = l.output;
+ if(l.truth) {
+ net.truth_gpu = l.output_gpu;
+ net.truth = l.output;
+ }
+ }
+ pull_network_output(netp);
+ calc_network_cost(netp);
+}
+
+void backward_network_gpu(network *netp)
+{
+ int i;
+ network net = *netp;
+ network orig = net;
+ cuda_set_device(net.gpu_index);
+ for(i = net.n-1; i >= 0; --i){
+ layer l = net.layers[i];
+ if(l.stopbackward) break;
+ if(i == 0){
+ net = orig;
+ }else{
+ layer prev = net.layers[i-1];
+ net.input = prev.output;
+ net.delta = prev.delta;
+ net.input_gpu = prev.output_gpu;
+ net.delta_gpu = prev.delta_gpu;
+ }
+ net.index = i;
+ l.backward_gpu(l, net);
+ }
+}
+
+void update_network_gpu(network *netp)
+{
+ network net = *netp;
+ cuda_set_device(net.gpu_index);
+ int i;
+ update_args a = {0};
+ a.batch = net.batch*net.subdivisions;
+ a.learning_rate = get_current_rate(netp);
+ a.momentum = net.momentum;
+ a.decay = net.decay;
+ a.adam = net.adam;
+ a.B1 = net.B1;
+ a.B2 = net.B2;
+ a.eps = net.eps;
+ ++*net.t;
+ a.t = (*net.t);
+
+ for(i = 0; i < net.n; ++i){
+ layer l = net.layers[i];
+ if(l.update_gpu){
+ l.update_gpu(l, a);
+ }
+ }
+}
+
+void harmless_update_network_gpu(network *netp)
+{
+ network net = *netp;
+ cuda_set_device(net.gpu_index);
+ int i;
+ for(i = 0; i < net.n; ++i){
+ layer l = net.layers[i];
+ if(l.weight_updates_gpu) fill_gpu(l.nweights, 0, l.weight_updates_gpu, 1);
+ if(l.bias_updates_gpu) fill_gpu(l.nbiases, 0, l.bias_updates_gpu, 1);
+ if(l.scale_updates_gpu) fill_gpu(l.nbiases, 0, l.scale_updates_gpu, 1);
+ }
+}
+
+typedef struct {
+ network *net;
+ data d;
+ float *err;
+} train_args;
+
+void *train_thread(void *ptr)
+{
+ train_args args = *(train_args*)ptr;
+ free(ptr);
+ cuda_set_device(args.net->gpu_index);
+ *args.err = train_network(args.net, args.d);
+ return 0;
+}
+
+pthread_t train_network_in_thread(network *net, data d, float *err)
+{
+ pthread_t thread;
+ train_args *ptr = (train_args *)calloc(1, sizeof(train_args));
+ ptr->net = net;
+ ptr->d = d;
+ ptr->err = err;
+ if(pthread_create(&thread, 0, train_thread, ptr)) error("Thread creation failed");
+ return thread;
+}
+
+void merge_weights(layer l, layer base)
+{
+ if (l.type == CONVOLUTIONAL) {
+ axpy_cpu(l.n, 1, l.bias_updates, 1, base.biases, 1);
+ axpy_cpu(l.nweights, 1, l.weight_updates, 1, base.weights, 1);
+ if (l.scales) {
+ axpy_cpu(l.n, 1, l.scale_updates, 1, base.scales, 1);
+ }
+ } else if(l.type == CONNECTED) {
+ axpy_cpu(l.outputs, 1, l.bias_updates, 1, base.biases, 1);
+ axpy_cpu(l.outputs*l.inputs, 1, l.weight_updates, 1, base.weights, 1);
+ }
+}
+
+void scale_weights(layer l, float s)
+{
+ if (l.type == CONVOLUTIONAL) {
+ scal_cpu(l.n, s, l.biases, 1);
+ scal_cpu(l.nweights, s, l.weights, 1);
+ if (l.scales) {
+ scal_cpu(l.n, s, l.scales, 1);
+ }
+ } else if(l.type == CONNECTED) {
+ scal_cpu(l.outputs, s, l.biases, 1);
+ scal_cpu(l.outputs*l.inputs, s, l.weights, 1);
+ }
+}
+
+
+void pull_weights(layer l)
+{
+ if(l.type == CONVOLUTIONAL || l.type == DECONVOLUTIONAL){
+ cuda_pull_array(l.biases_gpu, l.bias_updates, l.n);
+ cuda_pull_array(l.weights_gpu, l.weight_updates, l.nweights);
+ if(l.scales) cuda_pull_array(l.scales_gpu, l.scale_updates, l.n);
+ } else if(l.type == CONNECTED){
+ cuda_pull_array(l.biases_gpu, l.bias_updates, l.outputs);
+ cuda_pull_array(l.weights_gpu, l.weight_updates, l.outputs*l.inputs);
+ }
+}
+
+void push_weights(layer l)
+{
+ if(l.type == CONVOLUTIONAL || l.type == DECONVOLUTIONAL){
+ cuda_push_array(l.biases_gpu, l.biases, l.n);
+ cuda_push_array(l.weights_gpu, l.weights, l.nweights);
+ if(l.scales) cuda_push_array(l.scales_gpu, l.scales, l.n);
+ } else if(l.type == CONNECTED){
+ cuda_push_array(l.biases_gpu, l.biases, l.outputs);
+ cuda_push_array(l.weights_gpu, l.weights, l.outputs*l.inputs);
+ }
+}
+
+void distribute_weights(layer l, layer base)
+{
+ if (l.type == CONVOLUTIONAL || l.type == DECONVOLUTIONAL) {
+ cuda_push_array(l.biases_gpu, base.biases, l.n);
+ cuda_push_array(l.weights_gpu, base.weights, l.nweights);
+ if (base.scales) cuda_push_array(l.scales_gpu, base.scales, l.n);
+ } else if (l.type == CONNECTED) {
+ cuda_push_array(l.biases_gpu, base.biases, l.outputs);
+ cuda_push_array(l.weights_gpu, base.weights, l.outputs*l.inputs);
+ }
+}
+
+
+/*
+
+ void pull_updates(layer l)
+ {
+ if(l.type == CONVOLUTIONAL){
+ cuda_pull_array(l.bias_updates_gpu, l.bias_updates, l.n);
+ cuda_pull_array(l.weight_updates_gpu, l.weight_updates, l.nweights);
+ if(l.scale_updates) cuda_pull_array(l.scale_updates_gpu, l.scale_updates, l.n);
+ } else if(l.type == CONNECTED){
+ cuda_pull_array(l.bias_updates_gpu, l.bias_updates, l.outputs);
+ cuda_pull_array(l.weight_updates_gpu, l.weight_updates, l.outputs*l.inputs);
+ }
+ }
+
+ void push_updates(layer l)
+ {
+ if(l.type == CONVOLUTIONAL){
+ cuda_push_array(l.bias_updates_gpu, l.bias_updates, l.n);
+ cuda_push_array(l.weight_updates_gpu, l.weight_updates, l.nweights);
+ if(l.scale_updates) cuda_push_array(l.scale_updates_gpu, l.scale_updates, l.n);
+ } else if(l.type == CONNECTED){
+ cuda_push_array(l.bias_updates_gpu, l.bias_updates, l.outputs);
+ cuda_push_array(l.weight_updates_gpu, l.weight_updates, l.outputs*l.inputs);
+ }
+ }
+
+ void update_layer(layer l, network net)
+ {
+ int update_batch = net.batch*net.subdivisions;
+ float rate = get_current_rate(net);
+ l.t = get_current_batch(net);
+ if(l.update_gpu){
+ l.update_gpu(l, update_batch, rate*l.learning_rate_scale, net.momentum, net.decay);
+ }
+ }
+ void merge_updates(layer l, layer base)
+ {
+ if (l.type == CONVOLUTIONAL) {
+ axpy_cpu(l.n, 1, l.bias_updates, 1, base.bias_updates, 1);
+ axpy_cpu(l.nweights, 1, l.weight_updates, 1, base.weight_updates, 1);
+ if (l.scale_updates) {
+ axpy_cpu(l.n, 1, l.scale_updates, 1, base.scale_updates, 1);
+ }
+ } else if(l.type == CONNECTED) {
+ axpy_cpu(l.outputs, 1, l.bias_updates, 1, base.bias_updates, 1);
+ axpy_cpu(l.outputs*l.inputs, 1, l.weight_updates, 1, base.weight_updates, 1);
+ }
+ }
+
+ void distribute_updates(layer l, layer base)
+ {
+ if(l.type == CONVOLUTIONAL || l.type == DECONVOLUTIONAL){
+ cuda_push_array(l.bias_updates_gpu, base.bias_updates, l.n);
+ cuda_push_array(l.weight_updates_gpu, base.weight_updates, l.nweights);
+ if(base.scale_updates) cuda_push_array(l.scale_updates_gpu, base.scale_updates, l.n);
+ } else if(l.type == CONNECTED){
+ cuda_push_array(l.bias_updates_gpu, base.bias_updates, l.outputs);
+ cuda_push_array(l.weight_updates_gpu, base.weight_updates, l.outputs*l.inputs);
+ }
+ }
+ */
+
+/*
+ void sync_layer(network *nets, int n, int j)
+ {
+ int i;
+ network net = nets[0];
+ layer base = net.layers[j];
+ scale_weights(base, 0);
+ for (i = 0; i < n; ++i) {
+ cuda_set_device(nets[i].gpu_index);
+ layer l = nets[i].layers[j];
+ pull_weights(l);
+ merge_weights(l, base);
+ }
+ scale_weights(base, 1./n);
+ for (i = 0; i < n; ++i) {
+ cuda_set_device(nets[i].gpu_index);
+ layer l = nets[i].layers[j];
+ distribute_weights(l, base);
+ }
+ }
+ */
+
+void sync_layer(network **nets, int n, int j)
+{
+ int i;
+ network *net = nets[0];
+ layer base = net->layers[j];
+ scale_weights(base, 0);
+ for (i = 0; i < n; ++i) {
+ cuda_set_device(nets[i]->gpu_index);
+ layer l = nets[i]->layers[j];
+ pull_weights(l);
+ merge_weights(l, base);
+ }
+ scale_weights(base, 1./n);
+ for (i = 0; i < n; ++i) {
+ cuda_set_device(nets[i]->gpu_index);
+ layer l = nets[i]->layers[j];
+ distribute_weights(l, base);
+ }
+}
+
+typedef struct{
+ network **nets;
+ int n;
+ int j;
+} sync_args;
+
+void *sync_layer_thread(void *ptr)
+{
+ sync_args args = *(sync_args*)ptr;
+ sync_layer(args.nets, args.n, args.j);
+ free(ptr);
+ return 0;
+}
+
+pthread_t sync_layer_in_thread(network **nets, int n, int j)
+{
+ pthread_t thread;
+ sync_args *ptr = (sync_args *)calloc(1, sizeof(sync_args));
+ ptr->nets = nets;
+ ptr->n = n;
+ ptr->j = j;
+ if(pthread_create(&thread, 0, sync_layer_thread, ptr)) error("Thread creation failed");
+ return thread;
+}
+
+void sync_nets(network **nets, int n, int interval)
+{
+ int j;
+ int layers = nets[0]->n;
+ pthread_t *threads = (pthread_t *) calloc(layers, sizeof(pthread_t));
+
+ *(nets[0]->seen) += interval * (n-1) * nets[0]->batch * nets[0]->subdivisions;
+ for (j = 0; j < n; ++j){
+ *(nets[j]->seen) = *(nets[0]->seen);
+ }
+ for (j = 0; j < layers; ++j) {
+ threads[j] = sync_layer_in_thread(nets, n, j);
+ }
+ for (j = 0; j < layers; ++j) {
+ pthread_join(threads[j], 0);
+ }
+ free(threads);
+}
+
+float train_networks(network **nets, int n, data d, int interval)
+{
+ int i;
+ int batch = nets[0]->batch;
+ int subdivisions = nets[0]->subdivisions;
+ assert(batch * subdivisions * n == d.X.rows);
+ pthread_t *threads = (pthread_t *) calloc(n, sizeof(pthread_t));
+ float *errors = (float *) calloc(n, sizeof(float));
+
+ float sum = 0;
+ for(i = 0; i < n; ++i){
+ data p = get_data_part(d, i, n);
+ threads[i] = train_network_in_thread(nets[i], p, errors + i);
+ }
+ for(i = 0; i < n; ++i){
+ pthread_join(threads[i], 0);
+ //printf("%f\n", errors[i]);
+ sum += errors[i];
+ }
+ //cudaDeviceSynchronize();
+ if (get_current_batch(nets[0]) % interval == 0) {
+ printf("Syncing... ");
+ fflush(stdout);
+ sync_nets(nets, n, interval);
+ printf("Done!\n");
+ }
+ //cudaDeviceSynchronize();
+ free(threads);
+ free(errors);
+ return (float)sum/(n);
+}
+
+void pull_network_output(network *net)
+{
+ layer l = get_network_output_layer(net);
+ cuda_pull_array(l.output_gpu, l.output, l.outputs*l.batch);
+}
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/network.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/network.h"
new file mode 100644
index 00000000..1b0dfd1a
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/network.h"
@@ -0,0 +1,29 @@
+// Oh boy, why am I about to do this....
+#ifndef NETWORK_H
+#define NETWORK_H
+#include "darknet.h"
+
+#include "image.h"
+#include "layer.h"
+#include "data.h"
+#include "tree.h"
+
+
+#ifdef GPU
+void pull_network_output(network *net);
+#endif
+
+void compare_networks(network *n1, network *n2, data d);
+char *get_layer_string(LAYER_TYPE a);
+
+network *make_network(int n);
+
+
+float network_accuracy_multi(network *net, data d, int n);
+int get_predicted_class_network(network *net);
+void print_network(network *net);
+int resize_network(network *net, int w, int h);
+void calc_network_cost(network *net);
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/normalization_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/normalization_layer.c"
new file mode 100644
index 00000000..424714fe
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/normalization_layer.c"
@@ -0,0 +1,151 @@
+#include "normalization_layer.h"
+#include "blas.h"
+
+#include
+
+layer make_normalization_layer(int batch, int w, int h, int c, int size, float alpha, float beta, float kappa)
+{
+ fprintf(stderr, "Local Response Normalization Layer: %d x %d x %d image, %d size\n", w,h,c,size);
+ layer layer = {0};
+ layer.type = NORMALIZATION;
+ layer.batch = batch;
+ layer.h = layer.out_h = h;
+ layer.w = layer.out_w = w;
+ layer.c = layer.out_c = c;
+ layer.kappa = kappa;
+ layer.size = size;
+ layer.alpha = alpha;
+ layer.beta = beta;
+ layer.output = calloc(h * w * c * batch, sizeof(float));
+ layer.delta = calloc(h * w * c * batch, sizeof(float));
+ layer.squared = calloc(h * w * c * batch, sizeof(float));
+ layer.norms = calloc(h * w * c * batch, sizeof(float));
+ layer.inputs = w*h*c;
+ layer.outputs = layer.inputs;
+
+ layer.forward = forward_normalization_layer;
+ layer.backward = backward_normalization_layer;
+ #ifdef GPU
+ layer.forward_gpu = forward_normalization_layer_gpu;
+ layer.backward_gpu = backward_normalization_layer_gpu;
+
+ layer.output_gpu = cuda_make_array(layer.output, h * w * c * batch);
+ layer.delta_gpu = cuda_make_array(layer.delta, h * w * c * batch);
+ layer.squared_gpu = cuda_make_array(layer.squared, h * w * c * batch);
+ layer.norms_gpu = cuda_make_array(layer.norms, h * w * c * batch);
+ #endif
+ return layer;
+}
+
+void resize_normalization_layer(layer *layer, int w, int h)
+{
+ int c = layer->c;
+ int batch = layer->batch;
+ layer->h = h;
+ layer->w = w;
+ layer->out_h = h;
+ layer->out_w = w;
+ layer->inputs = w*h*c;
+ layer->outputs = layer->inputs;
+ layer->output = realloc(layer->output, h * w * c * batch * sizeof(float));
+ layer->delta = realloc(layer->delta, h * w * c * batch * sizeof(float));
+ layer->squared = realloc(layer->squared, h * w * c * batch * sizeof(float));
+ layer->norms = realloc(layer->norms, h * w * c * batch * sizeof(float));
+#ifdef GPU
+ cuda_free(layer->output_gpu);
+ cuda_free(layer->delta_gpu);
+ cuda_free(layer->squared_gpu);
+ cuda_free(layer->norms_gpu);
+ layer->output_gpu = cuda_make_array(layer->output, h * w * c * batch);
+ layer->delta_gpu = cuda_make_array(layer->delta, h * w * c * batch);
+ layer->squared_gpu = cuda_make_array(layer->squared, h * w * c * batch);
+ layer->norms_gpu = cuda_make_array(layer->norms, h * w * c * batch);
+#endif
+}
+
+void forward_normalization_layer(const layer layer, network net)
+{
+ int k,b;
+ int w = layer.w;
+ int h = layer.h;
+ int c = layer.c;
+ scal_cpu(w*h*c*layer.batch, 0, layer.squared, 1);
+
+ for(b = 0; b < layer.batch; ++b){
+ float *squared = layer.squared + w*h*c*b;
+ float *norms = layer.norms + w*h*c*b;
+ float *input = net.input + w*h*c*b;
+ pow_cpu(w*h*c, 2, input, 1, squared, 1);
+
+ const_cpu(w*h, layer.kappa, norms, 1);
+ for(k = 0; k < layer.size/2; ++k){
+ axpy_cpu(w*h, layer.alpha, squared + w*h*k, 1, norms, 1);
+ }
+
+ for(k = 1; k < layer.c; ++k){
+ copy_cpu(w*h, norms + w*h*(k-1), 1, norms + w*h*k, 1);
+ int prev = k - ((layer.size-1)/2) - 1;
+ int next = k + (layer.size/2);
+ if(prev >= 0) axpy_cpu(w*h, -layer.alpha, squared + w*h*prev, 1, norms + w*h*k, 1);
+ if(next < layer.c) axpy_cpu(w*h, layer.alpha, squared + w*h*next, 1, norms + w*h*k, 1);
+ }
+ }
+ pow_cpu(w*h*c*layer.batch, -layer.beta, layer.norms, 1, layer.output, 1);
+ mul_cpu(w*h*c*layer.batch, net.input, 1, layer.output, 1);
+}
+
+void backward_normalization_layer(const layer layer, network net)
+{
+ // TODO This is approximate ;-)
+ // Also this should add in to delta instead of overwritting.
+
+ int w = layer.w;
+ int h = layer.h;
+ int c = layer.c;
+ pow_cpu(w*h*c*layer.batch, -layer.beta, layer.norms, 1, net.delta, 1);
+ mul_cpu(w*h*c*layer.batch, layer.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+void forward_normalization_layer_gpu(const layer layer, network net)
+{
+ int k,b;
+ int w = layer.w;
+ int h = layer.h;
+ int c = layer.c;
+ scal_gpu(w*h*c*layer.batch, 0, layer.squared_gpu, 1);
+
+ for(b = 0; b < layer.batch; ++b){
+ float *squared = layer.squared_gpu + w*h*c*b;
+ float *norms = layer.norms_gpu + w*h*c*b;
+ float *input = net.input_gpu + w*h*c*b;
+ pow_gpu(w*h*c, 2, input, 1, squared, 1);
+
+ const_gpu(w*h, layer.kappa, norms, 1);
+ for(k = 0; k < layer.size/2; ++k){
+ axpy_gpu(w*h, layer.alpha, squared + w*h*k, 1, norms, 1);
+ }
+
+ for(k = 1; k < layer.c; ++k){
+ copy_gpu(w*h, norms + w*h*(k-1), 1, norms + w*h*k, 1);
+ int prev = k - ((layer.size-1)/2) - 1;
+ int next = k + (layer.size/2);
+ if(prev >= 0) axpy_gpu(w*h, -layer.alpha, squared + w*h*prev, 1, norms + w*h*k, 1);
+ if(next < layer.c) axpy_gpu(w*h, layer.alpha, squared + w*h*next, 1, norms + w*h*k, 1);
+ }
+ }
+ pow_gpu(w*h*c*layer.batch, -layer.beta, layer.norms_gpu, 1, layer.output_gpu, 1);
+ mul_gpu(w*h*c*layer.batch, net.input_gpu, 1, layer.output_gpu, 1);
+}
+
+void backward_normalization_layer_gpu(const layer layer, network net)
+{
+ // TODO This is approximate ;-)
+
+ int w = layer.w;
+ int h = layer.h;
+ int c = layer.c;
+ pow_gpu(w*h*c*layer.batch, -layer.beta, layer.norms_gpu, 1, net.delta_gpu, 1);
+ mul_gpu(w*h*c*layer.batch, layer.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/normalization_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/normalization_layer.h"
new file mode 100644
index 00000000..665baa50
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/normalization_layer.h"
@@ -0,0 +1,19 @@
+#ifndef NORMALIZATION_LAYER_H
+#define NORMALIZATION_LAYER_H
+
+#include "image.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_normalization_layer(int batch, int w, int h, int c, int size, float alpha, float beta, float kappa);
+void resize_normalization_layer(layer *layer, int h, int w);
+void forward_normalization_layer(const layer layer, network net);
+void backward_normalization_layer(const layer layer, network net);
+void visualize_normalization_layer(layer layer, char *window);
+
+#ifdef GPU
+void forward_normalization_layer_gpu(const layer layer, network net);
+void backward_normalization_layer_gpu(const layer layer, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/option_list.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/option_list.c"
new file mode 100644
index 00000000..2f52781f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/option_list.c"
@@ -0,0 +1,140 @@
+#include
+#include
+#include
+#include "option_list.h"
+#include "utils.h"
+
+list *read_data_cfg(char *filename)
+{
+ FILE *file = fopen(filename, "r");
+ if(file == 0) file_error(filename);
+ char *line;
+ int nu = 0;
+ list *options = make_list();
+ while((line=fgetl(file)) != 0){
+ ++ nu;
+ strip(line);
+ switch(line[0]){
+ case '\0':
+ case '#':
+ case ';':
+ free(line);
+ break;
+ default:
+ if(!read_option(line, options)){
+ fprintf(stderr, "Config file error line %d, could parse: %s\n", nu, line);
+ free(line);
+ }
+ break;
+ }
+ }
+ fclose(file);
+ return options;
+}
+
+metadata get_metadata(char *file)
+{
+ metadata m = {0};
+ list *options = read_data_cfg(file);
+
+ char *name_list = option_find_str(options, "names", 0);
+ if(!name_list) name_list = option_find_str(options, "labels", 0);
+ if(!name_list) {
+ fprintf(stderr, "No names or labels found\n");
+ } else {
+ m.names = get_labels(name_list);
+ }
+ m.classes = option_find_int(options, "classes", 2);
+ free_list(options);
+ return m;
+}
+
+int read_option(char *s, list *options)
+{
+ size_t i;
+ size_t len = strlen(s);
+ char *val = 0;
+ for(i = 0; i < len; ++i){
+ if(s[i] == '='){
+ s[i] = '\0';
+ val = s+i+1;
+ break;
+ }
+ }
+ if(i == len-1) return 0;
+ char *key = s;
+ option_insert(options, key, val);
+ return 1;
+}
+
+void option_insert(list *l, char *key, char *val)
+{
+ kvp *p = malloc(sizeof(kvp));
+ p->key = key;
+ p->val = val;
+ p->used = 0;
+ list_insert(l, p);
+}
+
+void option_unused(list *l)
+{
+ node *n = l->front;
+ while(n){
+ kvp *p = (kvp *)n->val;
+ if(!p->used){
+ fprintf(stderr, "Unused field: '%s = %s'\n", p->key, p->val);
+ }
+ n = n->next;
+ }
+}
+
+char *option_find(list *l, char *key)
+{
+ node *n = l->front;
+ while(n){
+ kvp *p = (kvp *)n->val;
+ if(strcmp(p->key, key) == 0){
+ p->used = 1;
+ return p->val;
+ }
+ n = n->next;
+ }
+ return 0;
+}
+char *option_find_str(list *l, char *key, char *def)
+{
+ char *v = option_find(l, key);
+ if(v) return v;
+ if(def) fprintf(stderr, "%s: Using default '%s'\n", key, def);
+ return def;
+}
+
+int option_find_int(list *l, char *key, int def)
+{
+ char *v = option_find(l, key);
+ if(v) return atoi(v);
+ fprintf(stderr, "%s: Using default '%d'\n", key, def);
+ return def;
+}
+
+int option_find_int_quiet(list *l, char *key, int def)
+{
+ char *v = option_find(l, key);
+ if(v) return atoi(v);
+ return def;
+}
+
+float option_find_float_quiet(list *l, char *key, float def)
+{
+ char *v = option_find(l, key);
+ if(v) return atof(v);
+ return def;
+}
+
+float option_find_float(list *l, char *key, float def)
+{
+ char *v = option_find(l, key);
+ if(v) return atof(v);
+ fprintf(stderr, "%s: Using default '%lf'\n", key, def);
+ return def;
+}
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/option_list.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/option_list.h"
new file mode 100644
index 00000000..844bd872
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/option_list.h"
@@ -0,0 +1,19 @@
+#ifndef OPTION_LIST_H
+#define OPTION_LIST_H
+#include "list.h"
+
+typedef struct{
+ char *key;
+ char *val;
+ int used;
+} kvp;
+
+
+int read_option(char *s, list *options);
+void option_insert(list *l, char *key, char *val);
+char *option_find(list *l, char *key);
+float option_find_float(list *l, char *key, float def);
+float option_find_float_quiet(list *l, char *key, float def);
+void option_unused(list *l);
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/parser.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/parser.c"
new file mode 100644
index 00000000..c8141c9f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/parser.c"
@@ -0,0 +1,1312 @@
+#include
+#include
+#include
+#include
+
+#include "activation_layer.h"
+#include "logistic_layer.h"
+#include "l2norm_layer.h"
+#include "activations.h"
+#include "avgpool_layer.h"
+#include "batchnorm_layer.h"
+#include "blas.h"
+#include "connected_layer.h"
+#include "deconvolutional_layer.h"
+#include "convolutional_layer.h"
+#include "cost_layer.h"
+#include "crnn_layer.h"
+#include "crop_layer.h"
+#include "detection_layer.h"
+#include "dropout_layer.h"
+#include "gru_layer.h"
+#include "list.h"
+#include "local_layer.h"
+#include "maxpool_layer.h"
+#include "normalization_layer.h"
+#include "option_list.h"
+#include "parser.h"
+#include "region_layer.h"
+#include "yolo_layer.h"
+#include "iseg_layer.h"
+#include "reorg_layer.h"
+#include "rnn_layer.h"
+#include "route_layer.h"
+#include "upsample_layer.h"
+#include "shortcut_layer.h"
+#include "softmax_layer.h"
+#include "lstm_layer.h"
+#include "utils.h"
+
+typedef struct{
+ char *type;
+ list *options;
+}section;
+
+list *read_cfg(char *filename);
+
+LAYER_TYPE string_to_layer_type(char * type)
+{
+
+ if (strcmp(type, "[shortcut]")==0) return SHORTCUT;
+ if (strcmp(type, "[crop]")==0) return CROP;
+ if (strcmp(type, "[cost]")==0) return COST;
+ if (strcmp(type, "[detection]")==0) return DETECTION;
+ if (strcmp(type, "[region]")==0) return REGION;
+ if (strcmp(type, "[yolo]")==0) return YOLO;
+ if (strcmp(type, "[iseg]")==0) return ISEG;
+ if (strcmp(type, "[local]")==0) return LOCAL;
+ if (strcmp(type, "[conv]")==0
+ || strcmp(type, "[convolutional]")==0) return CONVOLUTIONAL;
+ if (strcmp(type, "[deconv]")==0
+ || strcmp(type, "[deconvolutional]")==0) return DECONVOLUTIONAL;
+ if (strcmp(type, "[activation]")==0) return ACTIVE;
+ if (strcmp(type, "[logistic]")==0) return LOGXENT;
+ if (strcmp(type, "[l2norm]")==0) return L2NORM;
+ if (strcmp(type, "[net]")==0
+ || strcmp(type, "[network]")==0) return NETWORK;
+ if (strcmp(type, "[crnn]")==0) return CRNN;
+ if (strcmp(type, "[gru]")==0) return GRU;
+ if (strcmp(type, "[lstm]") == 0) return LSTM;
+ if (strcmp(type, "[rnn]")==0) return RNN;
+ if (strcmp(type, "[conn]")==0
+ || strcmp(type, "[connected]")==0) return CONNECTED;
+ if (strcmp(type, "[max]")==0
+ || strcmp(type, "[maxpool]")==0) return MAXPOOL;
+ if (strcmp(type, "[reorg]")==0) return REORG;
+ if (strcmp(type, "[avg]")==0
+ || strcmp(type, "[avgpool]")==0) return AVGPOOL;
+ if (strcmp(type, "[dropout]")==0) return DROPOUT;
+ if (strcmp(type, "[lrn]")==0
+ || strcmp(type, "[normalization]")==0) return NORMALIZATION;
+ if (strcmp(type, "[batchnorm]")==0) return BATCHNORM;
+ if (strcmp(type, "[soft]")==0
+ || strcmp(type, "[softmax]")==0) return SOFTMAX;
+ if (strcmp(type, "[route]")==0) return ROUTE;
+ if (strcmp(type, "[upsample]")==0) return UPSAMPLE;
+ return BLANK;
+}
+
+void free_section(section *s)
+{
+ free(s->type);
+ node *n = s->options->front;
+ while(n){
+ kvp *pair = (kvp *)n->val;
+ free(pair->key);
+ free(pair);
+ node *next = n->next;
+ free(n);
+ n = next;
+ }
+ free(s->options);
+ free(s);
+}
+
+void parse_data(char *data, float *a, int n)
+{
+ int i;
+ if(!data) return;
+ char *curr = data;
+ char *next = data;
+ int done = 0;
+ for(i = 0; i < n && !done; ++i){
+ while(*++next !='\0' && *next != ',');
+ if(*next == '\0') done = 1;
+ *next = '\0';
+ sscanf(curr, "%g", &a[i]);
+ curr = next+1;
+ }
+}
+
+typedef struct size_params{
+ int batch;
+ int inputs;
+ int h;
+ int w;
+ int c;
+ int index;
+ int time_steps;
+ network *net;
+} size_params;
+
+local_layer parse_local(list *options, size_params params)
+{
+ int n = option_find_int(options, "filters",1);
+ int size = option_find_int(options, "size",1);
+ int stride = option_find_int(options, "stride",1);
+ int pad = option_find_int(options, "pad",0);
+ char *activation_s = option_find_str(options, "activation", "logistic");
+ ACTIVATION activation = get_activation(activation_s);
+
+ int batch,h,w,c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before local layer must output image.");
+
+ local_layer layer = make_local_layer(batch,h,w,c,n,size,stride,pad,activation);
+
+ return layer;
+}
+
+layer parse_deconvolutional(list *options, size_params params)
+{
+ int n = option_find_int(options, "filters",1);
+ int size = option_find_int(options, "size",1);
+ int stride = option_find_int(options, "stride",1);
+
+ char *activation_s = option_find_str(options, "activation", "logistic");
+ ACTIVATION activation = get_activation(activation_s);
+
+ int batch,h,w,c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before deconvolutional layer must output image.");
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+ int pad = option_find_int_quiet(options, "pad",0);
+ int padding = option_find_int_quiet(options, "padding",0);
+ if(pad) padding = size/2;
+
+ layer l = make_deconvolutional_layer(batch,h,w,c,n,size,stride,padding, activation, batch_normalize, params.net->adam);
+
+ return l;
+}
+
+
+convolutional_layer parse_convolutional(list *options, size_params params)
+{
+ int n = option_find_int(options, "filters",1);
+ int size = option_find_int(options, "size",1);
+ int stride = option_find_int(options, "stride",1);
+ int pad = option_find_int_quiet(options, "pad",0);
+ int padding = option_find_int_quiet(options, "padding",0);
+ int groups = option_find_int_quiet(options, "groups", 1);
+ if(pad) padding = size/2;
+
+ char *activation_s = option_find_str(options, "activation", "logistic");
+ ACTIVATION activation = get_activation(activation_s);
+
+ int batch,h,w,c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before convolutional layer must output image.");
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+ int binary = option_find_int_quiet(options, "binary", 0);
+ int xnor = option_find_int_quiet(options, "xnor", 0);
+
+ convolutional_layer layer = make_convolutional_layer(batch,h,w,c,n,groups,size,stride,padding,activation, batch_normalize, binary, xnor, params.net->adam);
+ layer.flipped = option_find_int_quiet(options, "flipped", 0);
+ layer.dot = option_find_float_quiet(options, "dot", 0);
+
+ return layer;
+}
+
+layer parse_crnn(list *options, size_params params)
+{
+ int output_filters = option_find_int(options, "output_filters",1);
+ int hidden_filters = option_find_int(options, "hidden_filters",1);
+ char *activation_s = option_find_str(options, "activation", "logistic");
+ ACTIVATION activation = get_activation(activation_s);
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+
+ layer l = make_crnn_layer(params.batch, params.w, params.h, params.c, hidden_filters, output_filters, params.time_steps, activation, batch_normalize);
+
+ l.shortcut = option_find_int_quiet(options, "shortcut", 0);
+
+ return l;
+}
+
+layer parse_rnn(list *options, size_params params)
+{
+ int output = option_find_int(options, "output",1);
+ char *activation_s = option_find_str(options, "activation", "logistic");
+ ACTIVATION activation = get_activation(activation_s);
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+
+ layer l = make_rnn_layer(params.batch, params.inputs, output, params.time_steps, activation, batch_normalize, params.net->adam);
+
+ l.shortcut = option_find_int_quiet(options, "shortcut", 0);
+
+ return l;
+}
+
+layer parse_gru(list *options, size_params params)
+{
+ int output = option_find_int(options, "output",1);
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+
+ layer l = make_gru_layer(params.batch, params.inputs, output, params.time_steps, batch_normalize, params.net->adam);
+ l.tanh = option_find_int_quiet(options, "tanh", 0);
+
+ return l;
+}
+
+layer parse_lstm(list *options, size_params params)
+{
+ int output = option_find_int(options, "output", 1);
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+
+ layer l = make_lstm_layer(params.batch, params.inputs, output, params.time_steps, batch_normalize, params.net->adam);
+
+ return l;
+}
+
+layer parse_connected(list *options, size_params params)
+{
+ int output = option_find_int(options, "output",1);
+ char *activation_s = option_find_str(options, "activation", "logistic");
+ ACTIVATION activation = get_activation(activation_s);
+ int batch_normalize = option_find_int_quiet(options, "batch_normalize", 0);
+
+ layer l = make_connected_layer(params.batch, params.inputs, output, activation, batch_normalize, params.net->adam);
+ return l;
+}
+
+layer parse_softmax(list *options, size_params params)
+{
+ int groups = option_find_int_quiet(options, "groups",1);
+ layer l = make_softmax_layer(params.batch, params.inputs, groups);
+ l.temperature = option_find_float_quiet(options, "temperature", 1);
+ char *tree_file = option_find_str(options, "tree", 0);
+ if (tree_file) l.softmax_tree = read_tree(tree_file);
+ l.w = params.w;
+ l.h = params.h;
+ l.c = params.c;
+ l.spatial = option_find_float_quiet(options, "spatial", 0);
+ l.noloss = option_find_int_quiet(options, "noloss", 0);
+ return l;
+}
+
+int *parse_yolo_mask(char *a, int *num)
+{
+ int *mask = 0;
+ if(a){
+ int len = strlen(a);
+ int n = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (a[i] == ',') ++n;
+ }
+ mask = calloc(n, sizeof(int));
+ for(i = 0; i < n; ++i){
+ int val = atoi(a);
+ mask[i] = val;
+ a = strchr(a, ',')+1;
+ }
+ *num = n;
+ }
+ return mask;
+}
+
+layer parse_yolo(list *options, size_params params)
+{
+ int classes = option_find_int(options, "classes", 20);
+ int total = option_find_int(options, "num", 1);
+ int num = total;
+
+ char *a = option_find_str(options, "mask", 0);
+ int *mask = parse_yolo_mask(a, &num);
+ layer l = make_yolo_layer(params.batch, params.w, params.h, num, total, mask, classes);
+ assert(l.outputs == params.inputs);
+
+ l.max_boxes = option_find_int_quiet(options, "max",90);
+ l.jitter = option_find_float(options, "jitter", .2);
+
+ l.ignore_thresh = option_find_float(options, "ignore_thresh", .5);
+ l.truth_thresh = option_find_float(options, "truth_thresh", 1);
+ l.random = option_find_int_quiet(options, "random", 0);
+
+ char *map_file = option_find_str(options, "map", 0);
+ if (map_file) l.map = read_map(map_file);
+
+ a = option_find_str(options, "anchors", 0);
+ if(a){
+ int len = strlen(a);
+ int n = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (a[i] == ',') ++n;
+ }
+ for(i = 0; i < n; ++i){
+ float bias = atof(a);
+ l.biases[i] = bias;
+ a = strchr(a, ',')+1;
+ }
+ }
+ return l;
+}
+
+layer parse_iseg(list *options, size_params params)
+{
+ int classes = option_find_int(options, "classes", 20);
+ int ids = option_find_int(options, "ids", 32);
+ layer l = make_iseg_layer(params.batch, params.w, params.h, classes, ids);
+ assert(l.outputs == params.inputs);
+ return l;
+}
+
+layer parse_region(list *options, size_params params)
+{
+ int coords = option_find_int(options, "coords", 4);
+ int classes = option_find_int(options, "classes", 20);
+ int num = option_find_int(options, "num", 1);
+
+ layer l = make_region_layer(params.batch, params.w, params.h, num, classes, coords);
+ assert(l.outputs == params.inputs);
+
+ l.log = option_find_int_quiet(options, "log", 0);
+ l.sqrt = option_find_int_quiet(options, "sqrt", 0);
+
+ l.softmax = option_find_int(options, "softmax", 0);
+ l.background = option_find_int_quiet(options, "background", 0);
+ l.max_boxes = option_find_int_quiet(options, "max",30);
+ l.jitter = option_find_float(options, "jitter", .2);
+ l.rescore = option_find_int_quiet(options, "rescore",0);
+
+ l.thresh = option_find_float(options, "thresh", .5);
+ l.classfix = option_find_int_quiet(options, "classfix", 0);
+ l.absolute = option_find_int_quiet(options, "absolute", 0);
+ l.random = option_find_int_quiet(options, "random", 0);
+
+ l.coord_scale = option_find_float(options, "coord_scale", 1);
+ l.object_scale = option_find_float(options, "object_scale", 1);
+ l.noobject_scale = option_find_float(options, "noobject_scale", 1);
+ l.mask_scale = option_find_float(options, "mask_scale", 1);
+ l.class_scale = option_find_float(options, "class_scale", 1);
+ l.bias_match = option_find_int_quiet(options, "bias_match",0);
+
+ char *tree_file = option_find_str(options, "tree", 0);
+ if (tree_file) l.softmax_tree = read_tree(tree_file);
+ char *map_file = option_find_str(options, "map", 0);
+ if (map_file) l.map = read_map(map_file);
+
+ char *a = option_find_str(options, "anchors", 0);
+ if(a){
+ int len = strlen(a);
+ int n = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (a[i] == ',') ++n;
+ }
+ for(i = 0; i < n; ++i){
+ float bias = atof(a);
+ l.biases[i] = bias;
+ a = strchr(a, ',')+1;
+ }
+ }
+ return l;
+}
+
+detection_layer parse_detection(list *options, size_params params)
+{
+ int coords = option_find_int(options, "coords", 1);
+ int classes = option_find_int(options, "classes", 1);
+ int rescore = option_find_int(options, "rescore", 0);
+ int num = option_find_int(options, "num", 1);
+ int side = option_find_int(options, "side", 7);
+ detection_layer layer = make_detection_layer(params.batch, params.inputs, num, side, classes, coords, rescore);
+
+ layer.softmax = option_find_int(options, "softmax", 0);
+ layer.sqrt = option_find_int(options, "sqrt", 0);
+
+ layer.max_boxes = option_find_int_quiet(options, "max",90);
+ layer.coord_scale = option_find_float(options, "coord_scale", 1);
+ layer.forced = option_find_int(options, "forced", 0);
+ layer.object_scale = option_find_float(options, "object_scale", 1);
+ layer.noobject_scale = option_find_float(options, "noobject_scale", 1);
+ layer.class_scale = option_find_float(options, "class_scale", 1);
+ layer.jitter = option_find_float(options, "jitter", .2);
+ layer.random = option_find_int_quiet(options, "random", 0);
+ layer.reorg = option_find_int_quiet(options, "reorg", 0);
+ return layer;
+}
+
+cost_layer parse_cost(list *options, size_params params)
+{
+ char *type_s = option_find_str(options, "type", "sse");
+ COST_TYPE type = get_cost_type(type_s);
+ float scale = option_find_float_quiet(options, "scale",1);
+ cost_layer layer = make_cost_layer(params.batch, params.inputs, type, scale);
+ layer.ratio = option_find_float_quiet(options, "ratio",0);
+ layer.noobject_scale = option_find_float_quiet(options, "noobj", 1);
+ layer.thresh = option_find_float_quiet(options, "thresh",0);
+ return layer;
+}
+
+crop_layer parse_crop(list *options, size_params params)
+{
+ int crop_height = option_find_int(options, "crop_height",1);
+ int crop_width = option_find_int(options, "crop_width",1);
+ int flip = option_find_int(options, "flip",0);
+ float angle = option_find_float(options, "angle",0);
+ float saturation = option_find_float(options, "saturation",1);
+ float exposure = option_find_float(options, "exposure",1);
+
+ int batch,h,w,c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before crop layer must output image.");
+
+ int noadjust = option_find_int_quiet(options, "noadjust",0);
+
+ crop_layer l = make_crop_layer(batch,h,w,c,crop_height,crop_width,flip, angle, saturation, exposure);
+ l.shift = option_find_float(options, "shift", 0);
+ l.noadjust = noadjust;
+ return l;
+}
+
+layer parse_reorg(list *options, size_params params)
+{
+ int stride = option_find_int(options, "stride",1);
+ int reverse = option_find_int_quiet(options, "reverse",0);
+ int flatten = option_find_int_quiet(options, "flatten",0);
+ int extra = option_find_int_quiet(options, "extra",0);
+
+ int batch,h,w,c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before reorg layer must output image.");
+
+ layer layer = make_reorg_layer(batch,w,h,c,stride,reverse, flatten, extra);
+ return layer;
+}
+
+maxpool_layer parse_maxpool(list *options, size_params params)
+{
+ int stride = option_find_int(options, "stride",1);
+ int size = option_find_int(options, "size",stride);
+ int padding = option_find_int_quiet(options, "padding", size-1);
+
+ int batch,h,w,c;
+ h = params.h;
+ w = params.w;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before maxpool layer must output image.");
+
+ maxpool_layer layer = make_maxpool_layer(batch,h,w,c,size,stride,padding);
+ return layer;
+}
+
+avgpool_layer parse_avgpool(list *options, size_params params)
+{
+ int batch,w,h,c;
+ w = params.w;
+ h = params.h;
+ c = params.c;
+ batch=params.batch;
+ if(!(h && w && c)) error("Layer before avgpool layer must output image.");
+
+ avgpool_layer layer = make_avgpool_layer(batch,w,h,c);
+ return layer;
+}
+
+dropout_layer parse_dropout(list *options, size_params params)
+{
+ float probability = option_find_float(options, "probability", .5);
+ dropout_layer layer = make_dropout_layer(params.batch, params.inputs, probability);
+ layer.out_w = params.w;
+ layer.out_h = params.h;
+ layer.out_c = params.c;
+ return layer;
+}
+
+layer parse_normalization(list *options, size_params params)
+{
+ float alpha = option_find_float(options, "alpha", .0001);
+ float beta = option_find_float(options, "beta" , .75);
+ float kappa = option_find_float(options, "kappa", 1);
+ int size = option_find_int(options, "size", 5);
+ layer l = make_normalization_layer(params.batch, params.w, params.h, params.c, size, alpha, beta, kappa);
+ return l;
+}
+
+layer parse_batchnorm(list *options, size_params params)
+{
+ layer l = make_batchnorm_layer(params.batch, params.w, params.h, params.c);
+ return l;
+}
+
+layer parse_shortcut(list *options, size_params params, network *net)
+{
+ char *l = option_find(options, "from");
+ int index = atoi(l);
+ if(index < 0) index = params.index + index;
+
+ int batch = params.batch;
+ layer from = net->layers[index];
+
+ layer s = make_shortcut_layer(batch, index, params.w, params.h, params.c, from.out_w, from.out_h, from.out_c);
+
+ char *activation_s = option_find_str(options, "activation", "linear");
+ ACTIVATION activation = get_activation(activation_s);
+ s.activation = activation;
+ s.alpha = option_find_float_quiet(options, "alpha", 1);
+ s.beta = option_find_float_quiet(options, "beta", 1);
+ return s;
+}
+
+
+layer parse_l2norm(list *options, size_params params)
+{
+ layer l = make_l2norm_layer(params.batch, params.inputs);
+ l.h = l.out_h = params.h;
+ l.w = l.out_w = params.w;
+ l.c = l.out_c = params.c;
+ return l;
+}
+
+
+layer parse_logistic(list *options, size_params params)
+{
+ layer l = make_logistic_layer(params.batch, params.inputs);
+ l.h = l.out_h = params.h;
+ l.w = l.out_w = params.w;
+ l.c = l.out_c = params.c;
+ return l;
+}
+
+layer parse_activation(list *options, size_params params)
+{
+ char *activation_s = option_find_str(options, "activation", "linear");
+ ACTIVATION activation = get_activation(activation_s);
+
+ layer l = make_activation_layer(params.batch, params.inputs, activation);
+
+ l.h = l.out_h = params.h;
+ l.w = l.out_w = params.w;
+ l.c = l.out_c = params.c;
+
+ return l;
+}
+
+layer parse_upsample(list *options, size_params params, network *net)
+{
+
+ int stride = option_find_int(options, "stride",2);
+ layer l = make_upsample_layer(params.batch, params.w, params.h, params.c, stride);
+ l.scale = option_find_float_quiet(options, "scale", 1);
+ return l;
+}
+
+route_layer parse_route(list *options, size_params params, network *net)
+{
+ char *l = option_find(options, "layers");
+ int len = strlen(l);
+ if(!l) error("Route Layer must specify input layers");
+ int n = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (l[i] == ',') ++n;
+ }
+
+ int *layers = calloc(n, sizeof(int));
+ int *sizes = calloc(n, sizeof(int));
+ for(i = 0; i < n; ++i){
+ int index = atoi(l);
+ l = strchr(l, ',')+1;
+ if(index < 0) index = params.index + index;
+ layers[i] = index;
+ sizes[i] = net->layers[index].outputs;
+ }
+ int batch = params.batch;
+
+ route_layer layer = make_route_layer(batch, n, layers, sizes);
+
+ convolutional_layer first = net->layers[layers[0]];
+ layer.out_w = first.out_w;
+ layer.out_h = first.out_h;
+ layer.out_c = first.out_c;
+ for(i = 1; i < n; ++i){
+ int index = layers[i];
+ convolutional_layer next = net->layers[index];
+ if(next.out_w == first.out_w && next.out_h == first.out_h){
+ layer.out_c += next.out_c;
+ }else{
+ layer.out_h = layer.out_w = layer.out_c = 0;
+ }
+ }
+
+ return layer;
+}
+
+learning_rate_policy get_policy(char *s)
+{
+ if (strcmp(s, "random")==0) return RANDOM;
+ if (strcmp(s, "poly")==0) return POLY;
+ if (strcmp(s, "constant")==0) return CONSTANT;
+ if (strcmp(s, "step")==0) return STEP;
+ if (strcmp(s, "exp")==0) return EXP;
+ if (strcmp(s, "sigmoid")==0) return SIG;
+ if (strcmp(s, "steps")==0) return STEPS;
+ fprintf(stderr, "Couldn't find policy %s, going with constant\n", s);
+ return CONSTANT;
+}
+
+void parse_net_options(list *options, network *net)
+{
+ net->batch = option_find_int(options, "batch",1);
+ net->learning_rate = option_find_float(options, "learning_rate", .001);
+ net->momentum = option_find_float(options, "momentum", .9);
+ net->decay = option_find_float(options, "decay", .0001);
+ int subdivs = option_find_int(options, "subdivisions",1);
+ net->time_steps = option_find_int_quiet(options, "time_steps",1);
+ net->notruth = option_find_int_quiet(options, "notruth",0);
+ net->batch /= subdivs;
+ net->batch *= net->time_steps;
+ net->subdivisions = subdivs;
+ net->random = option_find_int_quiet(options, "random", 0);
+
+ net->adam = option_find_int_quiet(options, "adam", 0);
+ if(net->adam){
+ net->B1 = option_find_float(options, "B1", .9);
+ net->B2 = option_find_float(options, "B2", .999);
+ net->eps = option_find_float(options, "eps", .0000001);
+ }
+
+ net->h = option_find_int_quiet(options, "height",0);
+ net->w = option_find_int_quiet(options, "width",0);
+ net->c = option_find_int_quiet(options, "channels",0);
+ net->inputs = option_find_int_quiet(options, "inputs", net->h * net->w * net->c);
+ net->max_crop = option_find_int_quiet(options, "max_crop",net->w*2);
+ net->min_crop = option_find_int_quiet(options, "min_crop",net->w);
+ net->max_ratio = option_find_float_quiet(options, "max_ratio", (float) net->max_crop / net->w);
+ net->min_ratio = option_find_float_quiet(options, "min_ratio", (float) net->min_crop / net->w);
+ net->center = option_find_int_quiet(options, "center",0);
+ net->clip = option_find_float_quiet(options, "clip", 0);
+
+ net->angle = option_find_float_quiet(options, "angle", 0);
+ net->aspect = option_find_float_quiet(options, "aspect", 1);
+ net->saturation = option_find_float_quiet(options, "saturation", 1);
+ net->exposure = option_find_float_quiet(options, "exposure", 1);
+ net->hue = option_find_float_quiet(options, "hue", 0);
+
+ if(!net->inputs && !(net->h && net->w && net->c)) error("No input parameters supplied");
+
+ char *policy_s = option_find_str(options, "policy", "constant");
+ net->policy = get_policy(policy_s);
+ net->burn_in = option_find_int_quiet(options, "burn_in", 0);
+ net->power = option_find_float_quiet(options, "power", 4);
+ if(net->policy == STEP){
+ net->step = option_find_int(options, "step", 1);
+ net->scale = option_find_float(options, "scale", 1);
+ } else if (net->policy == STEPS){
+ char *l = option_find(options, "steps");
+ char *p = option_find(options, "scales");
+ if(!l || !p) error("STEPS policy must have steps and scales in cfg file");
+
+ int len = strlen(l);
+ int n = 1;
+ int i;
+ for(i = 0; i < len; ++i){
+ if (l[i] == ',') ++n;
+ }
+ int *steps = calloc(n, sizeof(int));
+ float *scales = calloc(n, sizeof(float));
+ for(i = 0; i < n; ++i){
+ int step = atoi(l);
+ float scale = atof(p);
+ l = strchr(l, ',')+1;
+ p = strchr(p, ',')+1;
+ steps[i] = step;
+ scales[i] = scale;
+ }
+ net->scales = scales;
+ net->steps = steps;
+ net->num_steps = n;
+ } else if (net->policy == EXP){
+ net->gamma = option_find_float(options, "gamma", 1);
+ } else if (net->policy == SIG){
+ net->gamma = option_find_float(options, "gamma", 1);
+ net->step = option_find_int(options, "step", 1);
+ } else if (net->policy == POLY || net->policy == RANDOM){
+ }
+ net->max_batches = option_find_int(options, "max_batches", 0);
+}
+
+int is_network(section *s)
+{
+ return (strcmp(s->type, "[net]")==0
+ || strcmp(s->type, "[network]")==0);
+}
+
+network *parse_network_cfg(char *filename)
+{
+ list *sections = read_cfg(filename);
+ node *n = sections->front;
+ if(!n) error("Config file has no sections");
+ network *net = make_network(sections->size - 1);
+ net->gpu_index = gpu_index;
+ size_params params;
+
+ section *s = (section *)n->val;
+ list *options = s->options;
+ if(!is_network(s)) error("First section must be [net] or [network]");
+ parse_net_options(options, net);
+
+ params.h = net->h;
+ params.w = net->w;
+ params.c = net->c;
+ params.inputs = net->inputs;
+ params.batch = net->batch;
+ params.time_steps = net->time_steps;
+ params.net = net;
+
+ size_t workspace_size = 0;
+ n = n->next;
+ int count = 0;
+ free_section(s);
+ fprintf(stderr, "layer filters size input output\n");
+ while(n){
+ params.index = count;
+ fprintf(stderr, "%5d ", count);
+ s = (section *)n->val;
+ options = s->options;
+ layer l = {0};
+ LAYER_TYPE lt = string_to_layer_type(s->type);
+ if(lt == CONVOLUTIONAL){
+ l = parse_convolutional(options, params);
+ }else if(lt == DECONVOLUTIONAL){
+ l = parse_deconvolutional(options, params);
+ }else if(lt == LOCAL){
+ l = parse_local(options, params);
+ }else if(lt == ACTIVE){
+ l = parse_activation(options, params);
+ }else if(lt == LOGXENT){
+ l = parse_logistic(options, params);
+ }else if(lt == L2NORM){
+ l = parse_l2norm(options, params);
+ }else if(lt == RNN){
+ l = parse_rnn(options, params);
+ }else if(lt == GRU){
+ l = parse_gru(options, params);
+ }else if (lt == LSTM) {
+ l = parse_lstm(options, params);
+ }else if(lt == CRNN){
+ l = parse_crnn(options, params);
+ }else if(lt == CONNECTED){
+ l = parse_connected(options, params);
+ }else if(lt == CROP){
+ l = parse_crop(options, params);
+ }else if(lt == COST){
+ l = parse_cost(options, params);
+ }else if(lt == REGION){
+ l = parse_region(options, params);
+ }else if(lt == YOLO){
+ l = parse_yolo(options, params);
+ }else if(lt == ISEG){
+ l = parse_iseg(options, params);
+ }else if(lt == DETECTION){
+ l = parse_detection(options, params);
+ }else if(lt == SOFTMAX){
+ l = parse_softmax(options, params);
+ net->hierarchy = l.softmax_tree;
+ }else if(lt == NORMALIZATION){
+ l = parse_normalization(options, params);
+ }else if(lt == BATCHNORM){
+ l = parse_batchnorm(options, params);
+ }else if(lt == MAXPOOL){
+ l = parse_maxpool(options, params);
+ }else if(lt == REORG){
+ l = parse_reorg(options, params);
+ }else if(lt == AVGPOOL){
+ l = parse_avgpool(options, params);
+ }else if(lt == ROUTE){
+ l = parse_route(options, params, net);
+ }else if(lt == UPSAMPLE){
+ l = parse_upsample(options, params, net);
+ }else if(lt == SHORTCUT){
+ l = parse_shortcut(options, params, net);
+ }else if(lt == DROPOUT){
+ l = parse_dropout(options, params);
+ l.output = net->layers[count-1].output;
+ l.delta = net->layers[count-1].delta;
+#ifdef GPU
+ l.output_gpu = net->layers[count-1].output_gpu;
+ l.delta_gpu = net->layers[count-1].delta_gpu;
+#endif
+ }else{
+ fprintf(stderr, "Type not recognized: %s\n", s->type);
+ }
+ l.clip = net->clip;
+ l.truth = option_find_int_quiet(options, "truth", 0);
+ l.onlyforward = option_find_int_quiet(options, "onlyforward", 0);
+ l.stopbackward = option_find_int_quiet(options, "stopbackward", 0);
+ l.dontsave = option_find_int_quiet(options, "dontsave", 0);
+ l.dontload = option_find_int_quiet(options, "dontload", 0);
+ l.numload = option_find_int_quiet(options, "numload", 0);
+ l.dontloadscales = option_find_int_quiet(options, "dontloadscales", 0);
+ l.learning_rate_scale = option_find_float_quiet(options, "learning_rate", 1);
+ l.smooth = option_find_float_quiet(options, "smooth", 0);
+ option_unused(options);
+ net->layers[count] = l;
+ if (l.workspace_size > workspace_size) workspace_size = l.workspace_size;
+ free_section(s);
+ n = n->next;
+ ++count;
+ if(n){
+ params.h = l.out_h;
+ params.w = l.out_w;
+ params.c = l.out_c;
+ params.inputs = l.outputs;
+ }
+ }
+ free_list(sections);
+ layer out = get_network_output_layer(net);
+ net->outputs = out.outputs;
+ net->truths = out.outputs;
+ if(net->layers[net->n-1].truths) net->truths = net->layers[net->n-1].truths;
+ net->output = out.output;
+ net->input = calloc(net->inputs*net->batch, sizeof(float));
+ net->truth = calloc(net->truths*net->batch, sizeof(float));
+#ifdef GPU
+ net->output_gpu = out.output_gpu;
+ net->input_gpu = cuda_make_array(net->input, net->inputs*net->batch);
+ net->truth_gpu = cuda_make_array(net->truth, net->truths*net->batch);
+#endif
+ if(workspace_size){
+ //printf("%ld\n", workspace_size);
+#ifdef GPU
+ if(gpu_index >= 0){
+ net->workspace = cuda_make_array(0, (workspace_size-1)/sizeof(float)+1);
+ }else {
+ net->workspace = calloc(1, workspace_size);
+ }
+#else
+ net->workspace = calloc(1, workspace_size);
+#endif
+ }
+ return net;
+}
+
+list *read_cfg(char *filename)
+{
+ FILE *file = fopen(filename, "r");
+ if(file == 0) file_error(filename);
+ char *line;
+ int nu = 0;
+ list *options = make_list();
+ section *current = 0;
+ while((line=fgetl(file)) != 0){
+ ++ nu;
+ strip(line);
+ switch(line[0]){
+ case '[':
+ current = malloc(sizeof(section));
+ list_insert(options, current);
+ current->options = make_list();
+ current->type = line;
+ break;
+ case '\0':
+ case '#':
+ case ';':
+ free(line);
+ break;
+ default:
+ if(!read_option(line, current->options)){
+ fprintf(stderr, "Config file error line %d, could parse: %s\n", nu, line);
+ free(line);
+ }
+ break;
+ }
+ }
+ fclose(file);
+ return options;
+}
+
+void save_convolutional_weights_binary(layer l, FILE *fp)
+{
+#ifdef GPU
+ if(gpu_index >= 0){
+ pull_convolutional_layer(l);
+ }
+#endif
+ binarize_weights(l.weights, l.n, l.c*l.size*l.size, l.binary_weights);
+ int size = l.c*l.size*l.size;
+ int i, j, k;
+ fwrite(l.biases, sizeof(float), l.n, fp);
+ if (l.batch_normalize){
+ fwrite(l.scales, sizeof(float), l.n, fp);
+ fwrite(l.rolling_mean, sizeof(float), l.n, fp);
+ fwrite(l.rolling_variance, sizeof(float), l.n, fp);
+ }
+ for(i = 0; i < l.n; ++i){
+ float mean = l.binary_weights[i*size];
+ if(mean < 0) mean = -mean;
+ fwrite(&mean, sizeof(float), 1, fp);
+ for(j = 0; j < size/8; ++j){
+ int index = i*size + j*8;
+ unsigned char c = 0;
+ for(k = 0; k < 8; ++k){
+ if (j*8 + k >= size) break;
+ if (l.binary_weights[index + k] > 0) c = (c | 1<= 0){
+ pull_convolutional_layer(l);
+ }
+#endif
+ int num = l.nweights;
+ fwrite(l.biases, sizeof(float), l.n, fp);
+ if (l.batch_normalize){
+ fwrite(l.scales, sizeof(float), l.n, fp);
+ fwrite(l.rolling_mean, sizeof(float), l.n, fp);
+ fwrite(l.rolling_variance, sizeof(float), l.n, fp);
+ }
+ fwrite(l.weights, sizeof(float), num, fp);
+}
+
+void save_batchnorm_weights(layer l, FILE *fp)
+{
+#ifdef GPU
+ if(gpu_index >= 0){
+ pull_batchnorm_layer(l);
+ }
+#endif
+ fwrite(l.scales, sizeof(float), l.c, fp);
+ fwrite(l.rolling_mean, sizeof(float), l.c, fp);
+ fwrite(l.rolling_variance, sizeof(float), l.c, fp);
+}
+
+void save_connected_weights(layer l, FILE *fp)
+{
+#ifdef GPU
+ if(gpu_index >= 0){
+ pull_connected_layer(l);
+ }
+#endif
+ fwrite(l.biases, sizeof(float), l.outputs, fp);
+ fwrite(l.weights, sizeof(float), l.outputs*l.inputs, fp);
+ if (l.batch_normalize){
+ fwrite(l.scales, sizeof(float), l.outputs, fp);
+ fwrite(l.rolling_mean, sizeof(float), l.outputs, fp);
+ fwrite(l.rolling_variance, sizeof(float), l.outputs, fp);
+ }
+}
+
+void save_weights_upto(network *net, char *filename, int cutoff)
+{
+#ifdef GPU
+ if(net->gpu_index >= 0){
+ cuda_set_device(net->gpu_index);
+ }
+#endif
+ fprintf(stderr, "Saving weights to %s\n", filename);
+ FILE *fp = fopen(filename, "wb");
+ if(!fp) file_error(filename);
+
+ int major = 0;
+ int minor = 2;
+ int revision = 0;
+ fwrite(&major, sizeof(int), 1, fp);
+ fwrite(&minor, sizeof(int), 1, fp);
+ fwrite(&revision, sizeof(int), 1, fp);
+ fwrite(net->seen, sizeof(size_t), 1, fp);
+
+ int i;
+ for(i = 0; i < net->n && i < cutoff; ++i){
+ layer l = net->layers[i];
+ if (l.dontsave) continue;
+ if(l.type == CONVOLUTIONAL || l.type == DECONVOLUTIONAL){
+ save_convolutional_weights(l, fp);
+ } if(l.type == CONNECTED){
+ save_connected_weights(l, fp);
+ } if(l.type == BATCHNORM){
+ save_batchnorm_weights(l, fp);
+ } if(l.type == RNN){
+ save_connected_weights(*(l.input_layer), fp);
+ save_connected_weights(*(l.self_layer), fp);
+ save_connected_weights(*(l.output_layer), fp);
+ } if (l.type == LSTM) {
+ save_connected_weights(*(l.wi), fp);
+ save_connected_weights(*(l.wf), fp);
+ save_connected_weights(*(l.wo), fp);
+ save_connected_weights(*(l.wg), fp);
+ save_connected_weights(*(l.ui), fp);
+ save_connected_weights(*(l.uf), fp);
+ save_connected_weights(*(l.uo), fp);
+ save_connected_weights(*(l.ug), fp);
+ } if (l.type == GRU) {
+ if(1){
+ save_connected_weights(*(l.wz), fp);
+ save_connected_weights(*(l.wr), fp);
+ save_connected_weights(*(l.wh), fp);
+ save_connected_weights(*(l.uz), fp);
+ save_connected_weights(*(l.ur), fp);
+ save_connected_weights(*(l.uh), fp);
+ }else{
+ save_connected_weights(*(l.reset_layer), fp);
+ save_connected_weights(*(l.update_layer), fp);
+ save_connected_weights(*(l.state_layer), fp);
+ }
+ } if(l.type == CRNN){
+ save_convolutional_weights(*(l.input_layer), fp);
+ save_convolutional_weights(*(l.self_layer), fp);
+ save_convolutional_weights(*(l.output_layer), fp);
+ } if(l.type == LOCAL){
+#ifdef GPU
+ if(gpu_index >= 0){
+ pull_local_layer(l);
+ }
+#endif
+ int locations = l.out_w*l.out_h;
+ int size = l.size*l.size*l.c*l.n*locations;
+ fwrite(l.biases, sizeof(float), l.outputs, fp);
+ fwrite(l.weights, sizeof(float), size, fp);
+ }
+ }
+ fclose(fp);
+}
+void save_weights(network *net, char *filename)
+{
+ save_weights_upto(net, filename, net->n);
+}
+
+void transpose_matrix(float *a, int rows, int cols)
+{
+ float *transpose = calloc(rows*cols, sizeof(float));
+ int x, y;
+ for(x = 0; x < rows; ++x){
+ for(y = 0; y < cols; ++y){
+ transpose[y*rows + x] = a[x*cols + y];
+ }
+ }
+ memcpy(a, transpose, rows*cols*sizeof(float));
+ free(transpose);
+}
+
+void load_connected_weights(layer l, FILE *fp, int transpose)
+{
+ fread(l.biases, sizeof(float), l.outputs, fp);
+ fread(l.weights, sizeof(float), l.outputs*l.inputs, fp);
+ if(transpose){
+ transpose_matrix(l.weights, l.inputs, l.outputs);
+ }
+ //printf("Biases: %f mean %f variance\n", mean_array(l.biases, l.outputs), variance_array(l.biases, l.outputs));
+ //printf("Weights: %f mean %f variance\n", mean_array(l.weights, l.outputs*l.inputs), variance_array(l.weights, l.outputs*l.inputs));
+ if (l.batch_normalize && (!l.dontloadscales)){
+ fread(l.scales, sizeof(float), l.outputs, fp);
+ fread(l.rolling_mean, sizeof(float), l.outputs, fp);
+ fread(l.rolling_variance, sizeof(float), l.outputs, fp);
+ //printf("Scales: %f mean %f variance\n", mean_array(l.scales, l.outputs), variance_array(l.scales, l.outputs));
+ //printf("rolling_mean: %f mean %f variance\n", mean_array(l.rolling_mean, l.outputs), variance_array(l.rolling_mean, l.outputs));
+ //printf("rolling_variance: %f mean %f variance\n", mean_array(l.rolling_variance, l.outputs), variance_array(l.rolling_variance, l.outputs));
+ }
+#ifdef GPU
+ if(gpu_index >= 0){
+ push_connected_layer(l);
+ }
+#endif
+}
+
+void load_batchnorm_weights(layer l, FILE *fp)
+{
+ fread(l.scales, sizeof(float), l.c, fp);
+ fread(l.rolling_mean, sizeof(float), l.c, fp);
+ fread(l.rolling_variance, sizeof(float), l.c, fp);
+#ifdef GPU
+ if(gpu_index >= 0){
+ push_batchnorm_layer(l);
+ }
+#endif
+}
+
+void load_convolutional_weights_binary(layer l, FILE *fp)
+{
+ fread(l.biases, sizeof(float), l.n, fp);
+ if (l.batch_normalize && (!l.dontloadscales)){
+ fread(l.scales, sizeof(float), l.n, fp);
+ fread(l.rolling_mean, sizeof(float), l.n, fp);
+ fread(l.rolling_variance, sizeof(float), l.n, fp);
+ }
+ int size = l.c*l.size*l.size;
+ int i, j, k;
+ for(i = 0; i < l.n; ++i){
+ float mean = 0;
+ fread(&mean, sizeof(float), 1, fp);
+ for(j = 0; j < size/8; ++j){
+ int index = i*size + j*8;
+ unsigned char c = 0;
+ fread(&c, sizeof(char), 1, fp);
+ for(k = 0; k < 8; ++k){
+ if (j*8 + k >= size) break;
+ l.weights[index + k] = (c & 1<= 0){
+ push_convolutional_layer(l);
+ }
+#endif
+}
+
+void load_convolutional_weights(layer l, FILE *fp)
+{
+ if(l.binary){
+ //load_convolutional_weights_binary(l, fp);
+ //return;
+ }
+ if(l.numload) l.n = l.numload;
+ int num = l.c/l.groups*l.n*l.size*l.size;
+ fread(l.biases, sizeof(float), l.n, fp);
+ if (l.batch_normalize && (!l.dontloadscales)){
+ fread(l.scales, sizeof(float), l.n, fp);
+ fread(l.rolling_mean, sizeof(float), l.n, fp);
+ fread(l.rolling_variance, sizeof(float), l.n, fp);
+ if(0){
+ int i;
+ for(i = 0; i < l.n; ++i){
+ printf("%g, ", l.rolling_mean[i]);
+ }
+ printf("\n");
+ for(i = 0; i < l.n; ++i){
+ printf("%g, ", l.rolling_variance[i]);
+ }
+ printf("\n");
+ }
+ if(0){
+ fill_cpu(l.n, 0, l.rolling_mean, 1);
+ fill_cpu(l.n, 0, l.rolling_variance, 1);
+ }
+ if(0){
+ int i;
+ for(i = 0; i < l.n; ++i){
+ printf("%g, ", l.rolling_mean[i]);
+ }
+ printf("\n");
+ for(i = 0; i < l.n; ++i){
+ printf("%g, ", l.rolling_variance[i]);
+ }
+ printf("\n");
+ }
+ }
+ fread(l.weights, sizeof(float), num, fp);
+ //if(l.c == 3) scal_cpu(num, 1./256, l.weights, 1);
+ if (l.flipped) {
+ transpose_matrix(l.weights, l.c*l.size*l.size, l.n);
+ }
+ //if (l.binary) binarize_weights(l.weights, l.n, l.c*l.size*l.size, l.weights);
+#ifdef GPU
+ if(gpu_index >= 0){
+ push_convolutional_layer(l);
+ }
+#endif
+}
+
+
+void load_weights_upto(network *net, char *filename, int start, int cutoff)
+{
+#ifdef GPU
+ if(net->gpu_index >= 0){
+ cuda_set_device(net->gpu_index);
+ }
+#endif
+ fprintf(stderr, "Loading weights from %s...", filename);
+ fflush(stdout);
+ FILE *fp = fopen(filename, "rb");
+ if(!fp) file_error(filename);
+
+ int major;
+ int minor;
+ int revision;
+ fread(&major, sizeof(int), 1, fp);
+ fread(&minor, sizeof(int), 1, fp);
+ fread(&revision, sizeof(int), 1, fp);
+ if ((major*10 + minor) >= 2 && major < 1000 && minor < 1000){
+ fread(net->seen, sizeof(size_t), 1, fp);
+ } else {
+ int iseen = 0;
+ fread(&iseen, sizeof(int), 1, fp);
+ *net->seen = iseen;
+ }
+ int transpose = (major > 1000) || (minor > 1000);
+
+ int i;
+ for(i = start; i < net->n && i < cutoff; ++i){
+ layer l = net->layers[i];
+ if (l.dontload) continue;
+ if(l.type == CONVOLUTIONAL || l.type == DECONVOLUTIONAL){
+ load_convolutional_weights(l, fp);
+ }
+ if(l.type == CONNECTED){
+ load_connected_weights(l, fp, transpose);
+ }
+ if(l.type == BATCHNORM){
+ load_batchnorm_weights(l, fp);
+ }
+ if(l.type == CRNN){
+ load_convolutional_weights(*(l.input_layer), fp);
+ load_convolutional_weights(*(l.self_layer), fp);
+ load_convolutional_weights(*(l.output_layer), fp);
+ }
+ if(l.type == RNN){
+ load_connected_weights(*(l.input_layer), fp, transpose);
+ load_connected_weights(*(l.self_layer), fp, transpose);
+ load_connected_weights(*(l.output_layer), fp, transpose);
+ }
+ if (l.type == LSTM) {
+ load_connected_weights(*(l.wi), fp, transpose);
+ load_connected_weights(*(l.wf), fp, transpose);
+ load_connected_weights(*(l.wo), fp, transpose);
+ load_connected_weights(*(l.wg), fp, transpose);
+ load_connected_weights(*(l.ui), fp, transpose);
+ load_connected_weights(*(l.uf), fp, transpose);
+ load_connected_weights(*(l.uo), fp, transpose);
+ load_connected_weights(*(l.ug), fp, transpose);
+ }
+ if (l.type == GRU) {
+ if(1){
+ load_connected_weights(*(l.wz), fp, transpose);
+ load_connected_weights(*(l.wr), fp, transpose);
+ load_connected_weights(*(l.wh), fp, transpose);
+ load_connected_weights(*(l.uz), fp, transpose);
+ load_connected_weights(*(l.ur), fp, transpose);
+ load_connected_weights(*(l.uh), fp, transpose);
+ }else{
+ load_connected_weights(*(l.reset_layer), fp, transpose);
+ load_connected_weights(*(l.update_layer), fp, transpose);
+ load_connected_weights(*(l.state_layer), fp, transpose);
+ }
+ }
+ if(l.type == LOCAL){
+ int locations = l.out_w*l.out_h;
+ int size = l.size*l.size*l.c*l.n*locations;
+ fread(l.biases, sizeof(float), l.outputs, fp);
+ fread(l.weights, sizeof(float), size, fp);
+#ifdef GPU
+ if(gpu_index >= 0){
+ push_local_layer(l);
+ }
+#endif
+ }
+ }
+ fprintf(stderr, "Done!\n");
+ fclose(fp);
+}
+
+void load_weights(network *net, char *filename)
+{
+ load_weights_upto(net, filename, 0, net->n);
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/parser.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/parser.h"
new file mode 100644
index 00000000..81aef2c8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/parser.h"
@@ -0,0 +1,9 @@
+#ifndef PARSER_H
+#define PARSER_H
+#include "darknet.h"
+#include "network.h"
+
+void save_network(network net, char *filename);
+void save_weights_double(network net, char *filename);
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/region_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/region_layer.c"
new file mode 100644
index 00000000..179f5e32
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/region_layer.c"
@@ -0,0 +1,507 @@
+#include "region_layer.h"
+#include "activations.h"
+#include "blas.h"
+#include "box.h"
+#include "cuda.h"
+#include "utils.h"
+
+#include
+#include
+#include
+#include
+
+layer make_region_layer(int batch, int w, int h, int n, int classes, int coords)
+{
+ layer l = {0};
+ l.type = REGION;
+
+ l.n = n;
+ l.batch = batch;
+ l.h = h;
+ l.w = w;
+ l.c = n*(classes + coords + 1);
+ l.out_w = l.w;
+ l.out_h = l.h;
+ l.out_c = l.c;
+ l.classes = classes;
+ l.coords = coords;
+ l.cost = calloc(1, sizeof(float));
+ l.biases = calloc(n*2, sizeof(float));
+ l.bias_updates = calloc(n*2, sizeof(float));
+ l.outputs = h*w*n*(classes + coords + 1);
+ l.inputs = l.outputs;
+ l.truths = 30*(l.coords + 1);
+ l.delta = calloc(batch*l.outputs, sizeof(float));
+ l.output = calloc(batch*l.outputs, sizeof(float));
+ int i;
+ for(i = 0; i < n*2; ++i){
+ l.biases[i] = .5;
+ }
+
+ l.forward = forward_region_layer;
+ l.backward = backward_region_layer;
+#ifdef GPU
+ l.forward_gpu = forward_region_layer_gpu;
+ l.backward_gpu = backward_region_layer_gpu;
+ l.output_gpu = cuda_make_array(l.output, batch*l.outputs);
+ l.delta_gpu = cuda_make_array(l.delta, batch*l.outputs);
+#endif
+
+ fprintf(stderr, "detection\n");
+ srand(0);
+
+ return l;
+}
+
+void resize_region_layer(layer *l, int w, int h)
+{
+ l->w = w;
+ l->h = h;
+
+ l->outputs = h*w*l->n*(l->classes + l->coords + 1);
+ l->inputs = l->outputs;
+
+ l->output = realloc(l->output, l->batch*l->outputs*sizeof(float));
+ l->delta = realloc(l->delta, l->batch*l->outputs*sizeof(float));
+
+#ifdef GPU
+ cuda_free(l->delta_gpu);
+ cuda_free(l->output_gpu);
+
+ l->delta_gpu = cuda_make_array(l->delta, l->batch*l->outputs);
+ l->output_gpu = cuda_make_array(l->output, l->batch*l->outputs);
+#endif
+}
+
+box get_region_box(float *x, float *biases, int n, int index, int i, int j, int w, int h, int stride)
+{
+ box b;
+ b.x = (i + x[index + 0*stride]) / w;
+ b.y = (j + x[index + 1*stride]) / h;
+ b.w = exp(x[index + 2*stride]) * biases[2*n] / w;
+ b.h = exp(x[index + 3*stride]) * biases[2*n+1] / h;
+ return b;
+}
+
+float delta_region_box(box truth, float *x, float *biases, int n, int index, int i, int j, int w, int h, float *delta, float scale, int stride)
+{
+ box pred = get_region_box(x, biases, n, index, i, j, w, h, stride);
+ float iou = box_iou(pred, truth);
+
+ float tx = (truth.x*w - i);
+ float ty = (truth.y*h - j);
+ float tw = log(truth.w*w / biases[2*n]);
+ float th = log(truth.h*h / biases[2*n + 1]);
+
+ delta[index + 0*stride] = scale * (tx - x[index + 0*stride]);
+ delta[index + 1*stride] = scale * (ty - x[index + 1*stride]);
+ delta[index + 2*stride] = scale * (tw - x[index + 2*stride]);
+ delta[index + 3*stride] = scale * (th - x[index + 3*stride]);
+ return iou;
+}
+
+void delta_region_mask(float *truth, float *x, int n, int index, float *delta, int stride, int scale)
+{
+ int i;
+ for(i = 0; i < n; ++i){
+ delta[index + i*stride] = scale*(truth[i] - x[index + i*stride]);
+ }
+}
+
+
+void delta_region_class(float *output, float *delta, int index, int class, int classes, tree *hier, float scale, int stride, float *avg_cat, int tag)
+{
+ int i, n;
+ if(hier){
+ float pred = 1;
+ while(class >= 0){
+ pred *= output[index + stride*class];
+ int g = hier->group[class];
+ int offset = hier->group_offset[g];
+ for(i = 0; i < hier->group_size[g]; ++i){
+ delta[index + stride*(offset + i)] = scale * (0 - output[index + stride*(offset + i)]);
+ }
+ delta[index + stride*class] = scale * (1 - output[index + stride*class]);
+
+ class = hier->parent[class];
+ }
+ *avg_cat += pred;
+ } else {
+ if (delta[index] && tag){
+ delta[index + stride*class] = scale * (1 - output[index + stride*class]);
+ return;
+ }
+ for(n = 0; n < classes; ++n){
+ delta[index + stride*n] = scale * (((n == class)?1 : 0) - output[index + stride*n]);
+ if(n == class) *avg_cat += output[index + stride*n];
+ }
+ }
+}
+
+float logit(float x)
+{
+ return log(x/(1.-x));
+}
+
+float tisnan(float x)
+{
+ return (x != x);
+}
+
+int entry_index(layer l, int batch, int location, int entry)
+{
+ int n = location / (l.w*l.h);
+ int loc = location % (l.w*l.h);
+ return batch*l.outputs + n*l.w*l.h*(l.coords+l.classes+1) + entry*l.w*l.h + loc;
+}
+
+void forward_region_layer(const layer l, network net)
+{
+ int i,j,b,t,n;
+ memcpy(l.output, net.input, l.outputs*l.batch*sizeof(float));
+
+#ifndef GPU
+ for (b = 0; b < l.batch; ++b){
+ for(n = 0; n < l.n; ++n){
+ int index = entry_index(l, b, n*l.w*l.h, 0);
+ activate_array(l.output + index, 2*l.w*l.h, LOGISTIC);
+ index = entry_index(l, b, n*l.w*l.h, l.coords);
+ if(!l.background) activate_array(l.output + index, l.w*l.h, LOGISTIC);
+ index = entry_index(l, b, n*l.w*l.h, l.coords + 1);
+ if(!l.softmax && !l.softmax_tree) activate_array(l.output + index, l.classes*l.w*l.h, LOGISTIC);
+ }
+ }
+ if (l.softmax_tree){
+ int i;
+ int count = l.coords + 1;
+ for (i = 0; i < l.softmax_tree->groups; ++i) {
+ int group_size = l.softmax_tree->group_size[i];
+ softmax_cpu(net.input + count, group_size, l.batch, l.inputs, l.n*l.w*l.h, 1, l.n*l.w*l.h, l.temperature, l.output + count);
+ count += group_size;
+ }
+ } else if (l.softmax){
+ int index = entry_index(l, 0, 0, l.coords + !l.background);
+ softmax_cpu(net.input + index, l.classes + l.background, l.batch*l.n, l.inputs/l.n, l.w*l.h, 1, l.w*l.h, 1, l.output + index);
+ }
+#endif
+
+ memset(l.delta, 0, l.outputs * l.batch * sizeof(float));
+ if(!net.train) return;
+ float avg_iou = 0;
+ float recall = 0;
+ float avg_cat = 0;
+ float avg_obj = 0;
+ float avg_anyobj = 0;
+ int count = 0;
+ int class_count = 0;
+ *(l.cost) = 0;
+ for (b = 0; b < l.batch; ++b) {
+ if(l.softmax_tree){
+ int onlyclass = 0;
+ for(t = 0; t < 30; ++t){
+ box truth = float_to_box(net.truth + t*(l.coords + 1) + b*l.truths, 1);
+ if(!truth.x) break;
+ int class = net.truth[t*(l.coords + 1) + b*l.truths + l.coords];
+ float maxp = 0;
+ int maxi = 0;
+ if(truth.x > 100000 && truth.y > 100000){
+ for(n = 0; n < l.n*l.w*l.h; ++n){
+ int class_index = entry_index(l, b, n, l.coords + 1);
+ int obj_index = entry_index(l, b, n, l.coords);
+ float scale = l.output[obj_index];
+ l.delta[obj_index] = l.noobject_scale * (0 - l.output[obj_index]);
+ float p = scale*get_hierarchy_probability(l.output + class_index, l.softmax_tree, class, l.w*l.h);
+ if(p > maxp){
+ maxp = p;
+ maxi = n;
+ }
+ }
+ int class_index = entry_index(l, b, maxi, l.coords + 1);
+ int obj_index = entry_index(l, b, maxi, l.coords);
+ delta_region_class(l.output, l.delta, class_index, class, l.classes, l.softmax_tree, l.class_scale, l.w*l.h, &avg_cat, !l.softmax);
+ if(l.output[obj_index] < .3) l.delta[obj_index] = l.object_scale * (.3 - l.output[obj_index]);
+ else l.delta[obj_index] = 0;
+ l.delta[obj_index] = 0;
+ ++class_count;
+ onlyclass = 1;
+ break;
+ }
+ }
+ if(onlyclass) continue;
+ }
+ for (j = 0; j < l.h; ++j) {
+ for (i = 0; i < l.w; ++i) {
+ for (n = 0; n < l.n; ++n) {
+ int box_index = entry_index(l, b, n*l.w*l.h + j*l.w + i, 0);
+ box pred = get_region_box(l.output, l.biases, n, box_index, i, j, l.w, l.h, l.w*l.h);
+ float best_iou = 0;
+ for(t = 0; t < 30; ++t){
+ box truth = float_to_box(net.truth + t*(l.coords + 1) + b*l.truths, 1);
+ if(!truth.x) break;
+ float iou = box_iou(pred, truth);
+ if (iou > best_iou) {
+ best_iou = iou;
+ }
+ }
+ int obj_index = entry_index(l, b, n*l.w*l.h + j*l.w + i, l.coords);
+ avg_anyobj += l.output[obj_index];
+ l.delta[obj_index] = l.noobject_scale * (0 - l.output[obj_index]);
+ if(l.background) l.delta[obj_index] = l.noobject_scale * (1 - l.output[obj_index]);
+ if (best_iou > l.thresh) {
+ l.delta[obj_index] = 0;
+ }
+
+ if(*(net.seen) < 12800){
+ box truth = {0};
+ truth.x = (i + .5)/l.w;
+ truth.y = (j + .5)/l.h;
+ truth.w = l.biases[2*n]/l.w;
+ truth.h = l.biases[2*n+1]/l.h;
+ delta_region_box(truth, l.output, l.biases, n, box_index, i, j, l.w, l.h, l.delta, .01, l.w*l.h);
+ }
+ }
+ }
+ }
+ for(t = 0; t < 30; ++t){
+ box truth = float_to_box(net.truth + t*(l.coords + 1) + b*l.truths, 1);
+
+ if(!truth.x) break;
+ float best_iou = 0;
+ int best_n = 0;
+ i = (truth.x * l.w);
+ j = (truth.y * l.h);
+ box truth_shift = truth;
+ truth_shift.x = 0;
+ truth_shift.y = 0;
+ for(n = 0; n < l.n; ++n){
+ int box_index = entry_index(l, b, n*l.w*l.h + j*l.w + i, 0);
+ box pred = get_region_box(l.output, l.biases, n, box_index, i, j, l.w, l.h, l.w*l.h);
+ if(l.bias_match){
+ pred.w = l.biases[2*n]/l.w;
+ pred.h = l.biases[2*n+1]/l.h;
+ }
+ pred.x = 0;
+ pred.y = 0;
+ float iou = box_iou(pred, truth_shift);
+ if (iou > best_iou){
+ best_iou = iou;
+ best_n = n;
+ }
+ }
+
+ int box_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, 0);
+ float iou = delta_region_box(truth, l.output, l.biases, best_n, box_index, i, j, l.w, l.h, l.delta, l.coord_scale * (2 - truth.w*truth.h), l.w*l.h);
+ if(l.coords > 4){
+ int mask_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, 4);
+ delta_region_mask(net.truth + t*(l.coords + 1) + b*l.truths + 5, l.output, l.coords - 4, mask_index, l.delta, l.w*l.h, l.mask_scale);
+ }
+ if(iou > .5) recall += 1;
+ avg_iou += iou;
+
+ int obj_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, l.coords);
+ avg_obj += l.output[obj_index];
+ l.delta[obj_index] = l.object_scale * (1 - l.output[obj_index]);
+ if (l.rescore) {
+ l.delta[obj_index] = l.object_scale * (iou - l.output[obj_index]);
+ }
+ if(l.background){
+ l.delta[obj_index] = l.object_scale * (0 - l.output[obj_index]);
+ }
+
+ int class = net.truth[t*(l.coords + 1) + b*l.truths + l.coords];
+ if (l.map) class = l.map[class];
+ int class_index = entry_index(l, b, best_n*l.w*l.h + j*l.w + i, l.coords + 1);
+ delta_region_class(l.output, l.delta, class_index, class, l.classes, l.softmax_tree, l.class_scale, l.w*l.h, &avg_cat, !l.softmax);
+ ++count;
+ ++class_count;
+ }
+ }
+ *(l.cost) = pow(mag_array(l.delta, l.outputs * l.batch), 2);
+ printf("Region Avg IOU: %f, Class: %f, Obj: %f, No Obj: %f, Avg Recall: %f, count: %d\n", avg_iou/count, avg_cat/class_count, avg_obj/count, avg_anyobj/(l.w*l.h*l.n*l.batch), recall/count, count);
+}
+
+void backward_region_layer(const layer l, network net)
+{
+ /*
+ int b;
+ int size = l.coords + l.classes + 1;
+ for (b = 0; b < l.batch*l.n; ++b){
+ int index = (b*size + 4)*l.w*l.h;
+ gradient_array(l.output + index, l.w*l.h, LOGISTIC, l.delta + index);
+ }
+ axpy_cpu(l.batch*l.inputs, 1, l.delta, 1, net.delta, 1);
+ */
+}
+
+void correct_region_boxes(detection *dets, int n, int w, int h, int netw, int neth, int relative)
+{
+ int i;
+ int new_w=0;
+ int new_h=0;
+ if (((float)netw/w) < ((float)neth/h)) {
+ new_w = netw;
+ new_h = (h * netw)/w;
+ } else {
+ new_h = neth;
+ new_w = (w * neth)/h;
+ }
+ for (i = 0; i < n; ++i){
+ box b = dets[i].bbox;
+ b.x = (b.x - (netw - new_w)/2./netw) / ((float)new_w/netw);
+ b.y = (b.y - (neth - new_h)/2./neth) / ((float)new_h/neth);
+ b.w *= (float)netw/new_w;
+ b.h *= (float)neth/new_h;
+ if(!relative){
+ b.x *= w;
+ b.w *= w;
+ b.y *= h;
+ b.h *= h;
+ }
+ dets[i].bbox = b;
+ }
+}
+
+void get_region_detections(layer l, int w, int h, int netw, int neth, float thresh, int *map, float tree_thresh, int relative, detection *dets)
+{
+ int i,j,n,z;
+ float *predictions = l.output;
+ if (l.batch == 2) {
+ float *flip = l.output + l.outputs;
+ for (j = 0; j < l.h; ++j) {
+ for (i = 0; i < l.w/2; ++i) {
+ for (n = 0; n < l.n; ++n) {
+ for(z = 0; z < l.classes + l.coords + 1; ++z){
+ int i1 = z*l.w*l.h*l.n + n*l.w*l.h + j*l.w + i;
+ int i2 = z*l.w*l.h*l.n + n*l.w*l.h + j*l.w + (l.w - i - 1);
+ float swap = flip[i1];
+ flip[i1] = flip[i2];
+ flip[i2] = swap;
+ if(z == 0){
+ flip[i1] = -flip[i1];
+ flip[i2] = -flip[i2];
+ }
+ }
+ }
+ }
+ }
+ for(i = 0; i < l.outputs; ++i){
+ l.output[i] = (l.output[i] + flip[i])/2.;
+ }
+ }
+ for (i = 0; i < l.w*l.h; ++i){
+ int row = i / l.w;
+ int col = i % l.w;
+ for(n = 0; n < l.n; ++n){
+ int index = n*l.w*l.h + i;
+ for(j = 0; j < l.classes; ++j){
+ dets[index].prob[j] = 0;
+ }
+ int obj_index = entry_index(l, 0, n*l.w*l.h + i, l.coords);
+ int box_index = entry_index(l, 0, n*l.w*l.h + i, 0);
+ int mask_index = entry_index(l, 0, n*l.w*l.h + i, 4);
+ float scale = l.background ? 1 : predictions[obj_index];
+ dets[index].bbox = get_region_box(predictions, l.biases, n, box_index, col, row, l.w, l.h, l.w*l.h);
+ dets[index].objectness = scale > thresh ? scale : 0;
+ if(dets[index].mask){
+ for(j = 0; j < l.coords - 4; ++j){
+ dets[index].mask[j] = l.output[mask_index + j*l.w*l.h];
+ }
+ }
+
+ int class_index = entry_index(l, 0, n*l.w*l.h + i, l.coords + !l.background);
+ if(l.softmax_tree){
+
+ hierarchy_predictions(predictions + class_index, l.classes, l.softmax_tree, 0, l.w*l.h);
+ if(map){
+ for(j = 0; j < 200; ++j){
+ int class_index = entry_index(l, 0, n*l.w*l.h + i, l.coords + 1 + map[j]);
+ float prob = scale*predictions[class_index];
+ dets[index].prob[j] = (prob > thresh) ? prob : 0;
+ }
+ } else {
+ int j = hierarchy_top_prediction(predictions + class_index, l.softmax_tree, tree_thresh, l.w*l.h);
+ dets[index].prob[j] = (scale > thresh) ? scale : 0;
+ }
+ } else {
+ if(dets[index].objectness){
+ for(j = 0; j < l.classes; ++j){
+ int class_index = entry_index(l, 0, n*l.w*l.h + i, l.coords + 1 + j);
+ float prob = scale*predictions[class_index];
+ dets[index].prob[j] = (prob > thresh) ? prob : 0;
+ }
+ }
+ }
+ }
+ }
+ correct_region_boxes(dets, l.w*l.h*l.n, w, h, netw, neth, relative);
+}
+
+#ifdef GPU
+
+void forward_region_layer_gpu(const layer l, network net)
+{
+ copy_gpu(l.batch*l.inputs, net.input_gpu, 1, l.output_gpu, 1);
+ int b, n;
+ for (b = 0; b < l.batch; ++b){
+ for(n = 0; n < l.n; ++n){
+ int index = entry_index(l, b, n*l.w*l.h, 0);
+ activate_array_gpu(l.output_gpu + index, 2*l.w*l.h, LOGISTIC);
+ if(l.coords > 4){
+ index = entry_index(l, b, n*l.w*l.h, 4);
+ activate_array_gpu(l.output_gpu + index, (l.coords - 4)*l.w*l.h, LOGISTIC);
+ }
+ index = entry_index(l, b, n*l.w*l.h, l.coords);
+ if(!l.background) activate_array_gpu(l.output_gpu + index, l.w*l.h, LOGISTIC);
+ index = entry_index(l, b, n*l.w*l.h, l.coords + 1);
+ if(!l.softmax && !l.softmax_tree) activate_array_gpu(l.output_gpu + index, l.classes*l.w*l.h, LOGISTIC);
+ }
+ }
+ if (l.softmax_tree){
+ int index = entry_index(l, 0, 0, l.coords + 1);
+ softmax_tree(net.input_gpu + index, l.w*l.h, l.batch*l.n, l.inputs/l.n, 1, l.output_gpu + index, *l.softmax_tree);
+ } else if (l.softmax) {
+ int index = entry_index(l, 0, 0, l.coords + !l.background);
+ softmax_gpu(net.input_gpu + index, l.classes + l.background, l.batch*l.n, l.inputs/l.n, l.w*l.h, 1, l.w*l.h, 1, l.output_gpu + index);
+ }
+ if(!net.train || l.onlyforward){
+ cuda_pull_array(l.output_gpu, l.output, l.batch*l.outputs);
+ return;
+ }
+
+ cuda_pull_array(l.output_gpu, net.input, l.batch*l.inputs);
+ forward_region_layer(l, net);
+ //cuda_push_array(l.output_gpu, l.output, l.batch*l.outputs);
+ if(!net.train) return;
+ cuda_push_array(l.delta_gpu, l.delta, l.batch*l.outputs);
+}
+
+void backward_region_layer_gpu(const layer l, network net)
+{
+ int b, n;
+ for (b = 0; b < l.batch; ++b){
+ for(n = 0; n < l.n; ++n){
+ int index = entry_index(l, b, n*l.w*l.h, 0);
+ gradient_array_gpu(l.output_gpu + index, 2*l.w*l.h, LOGISTIC, l.delta_gpu + index);
+ if(l.coords > 4){
+ index = entry_index(l, b, n*l.w*l.h, 4);
+ gradient_array_gpu(l.output_gpu + index, (l.coords - 4)*l.w*l.h, LOGISTIC, l.delta_gpu + index);
+ }
+ index = entry_index(l, b, n*l.w*l.h, l.coords);
+ if(!l.background) gradient_array_gpu(l.output_gpu + index, l.w*l.h, LOGISTIC, l.delta_gpu + index);
+ }
+ }
+ axpy_gpu(l.batch*l.inputs, 1, l.delta_gpu, 1, net.delta_gpu, 1);
+}
+#endif
+
+void zero_objectness(layer l)
+{
+ int i, n;
+ for (i = 0; i < l.w*l.h; ++i){
+ for(n = 0; n < l.n; ++n){
+ int obj_index = entry_index(l, 0, n*l.w*l.h + i, l.coords);
+ l.output[obj_index] = 0;
+ }
+ }
+}
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/region_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/region_layer.h"
new file mode 100644
index 00000000..9f12fd18
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/region_layer.h"
@@ -0,0 +1,18 @@
+#ifndef REGION_LAYER_H
+#define REGION_LAYER_H
+
+#include "darknet.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_region_layer(int batch, int w, int h, int n, int classes, int coords);
+void forward_region_layer(const layer l, network net);
+void backward_region_layer(const layer l, network net);
+void resize_region_layer(layer *l, int w, int h);
+
+#ifdef GPU
+void forward_region_layer_gpu(const layer l, network net);
+void backward_region_layer_gpu(layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/reorg_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/reorg_layer.c"
new file mode 100644
index 00000000..31d6b843
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/reorg_layer.c"
@@ -0,0 +1,173 @@
+#include "reorg_layer.h"
+#include "cuda.h"
+#include "blas.h"
+
+#include
+
+
+layer make_reorg_layer(int batch, int w, int h, int c, int stride, int reverse, int flatten, int extra)
+{
+ layer l = {0};
+ l.type = REORG;
+ l.batch = batch;
+ l.stride = stride;
+ l.extra = extra;
+ l.h = h;
+ l.w = w;
+ l.c = c;
+ l.flatten = flatten;
+ if(reverse){
+ l.out_w = w*stride;
+ l.out_h = h*stride;
+ l.out_c = c/(stride*stride);
+ }else{
+ l.out_w = w/stride;
+ l.out_h = h/stride;
+ l.out_c = c*(stride*stride);
+ }
+ l.reverse = reverse;
+
+ l.outputs = l.out_h * l.out_w * l.out_c;
+ l.inputs = h*w*c;
+ if(l.extra){
+ l.out_w = l.out_h = l.out_c = 0;
+ l.outputs = l.inputs + l.extra;
+ }
+
+ if(extra){
+ fprintf(stderr, "reorg %4d -> %4d\n", l.inputs, l.outputs);
+ } else {
+ fprintf(stderr, "reorg /%2d %4d x%4d x%4d -> %4d x%4d x%4d\n", stride, w, h, c, l.out_w, l.out_h, l.out_c);
+ }
+ int output_size = l.outputs * batch;
+ l.output = calloc(output_size, sizeof(float));
+ l.delta = calloc(output_size, sizeof(float));
+
+ l.forward = forward_reorg_layer;
+ l.backward = backward_reorg_layer;
+#ifdef GPU
+ l.forward_gpu = forward_reorg_layer_gpu;
+ l.backward_gpu = backward_reorg_layer_gpu;
+
+ l.output_gpu = cuda_make_array(l.output, output_size);
+ l.delta_gpu = cuda_make_array(l.delta, output_size);
+#endif
+ return l;
+}
+
+void resize_reorg_layer(layer *l, int w, int h)
+{
+ int stride = l->stride;
+ int c = l->c;
+
+ l->h = h;
+ l->w = w;
+
+ if(l->reverse){
+ l->out_w = w*stride;
+ l->out_h = h*stride;
+ l->out_c = c/(stride*stride);
+ }else{
+ l->out_w = w/stride;
+ l->out_h = h/stride;
+ l->out_c = c*(stride*stride);
+ }
+
+ l->outputs = l->out_h * l->out_w * l->out_c;
+ l->inputs = l->outputs;
+ int output_size = l->outputs * l->batch;
+
+ l->output = realloc(l->output, output_size * sizeof(float));
+ l->delta = realloc(l->delta, output_size * sizeof(float));
+
+#ifdef GPU
+ cuda_free(l->output_gpu);
+ cuda_free(l->delta_gpu);
+ l->output_gpu = cuda_make_array(l->output, output_size);
+ l->delta_gpu = cuda_make_array(l->delta, output_size);
+#endif
+}
+
+void forward_reorg_layer(const layer l, network net)
+{
+ int i;
+ if(l.flatten){
+ memcpy(l.output, net.input, l.outputs*l.batch*sizeof(float));
+ if(l.reverse){
+ flatten(l.output, l.w*l.h, l.c, l.batch, 0);
+ }else{
+ flatten(l.output, l.w*l.h, l.c, l.batch, 1);
+ }
+ } else if (l.extra) {
+ for(i = 0; i < l.batch; ++i){
+ copy_cpu(l.inputs, net.input + i*l.inputs, 1, l.output + i*l.outputs, 1);
+ }
+ } else if (l.reverse){
+ reorg_cpu(net.input, l.w, l.h, l.c, l.batch, l.stride, 1, l.output);
+ } else {
+ reorg_cpu(net.input, l.w, l.h, l.c, l.batch, l.stride, 0, l.output);
+ }
+}
+
+void backward_reorg_layer(const layer l, network net)
+{
+ int i;
+ if(l.flatten){
+ memcpy(net.delta, l.delta, l.outputs*l.batch*sizeof(float));
+ if(l.reverse){
+ flatten(net.delta, l.w*l.h, l.c, l.batch, 1);
+ }else{
+ flatten(net.delta, l.w*l.h, l.c, l.batch, 0);
+ }
+ } else if(l.reverse){
+ reorg_cpu(l.delta, l.w, l.h, l.c, l.batch, l.stride, 0, net.delta);
+ } else if (l.extra) {
+ for(i = 0; i < l.batch; ++i){
+ copy_cpu(l.inputs, l.delta + i*l.outputs, 1, net.delta + i*l.inputs, 1);
+ }
+ }else{
+ reorg_cpu(l.delta, l.w, l.h, l.c, l.batch, l.stride, 1, net.delta);
+ }
+}
+
+#ifdef GPU
+void forward_reorg_layer_gpu(layer l, network net)
+{
+ int i;
+ if(l.flatten){
+ if(l.reverse){
+ flatten_gpu(net.input_gpu, l.w*l.h, l.c, l.batch, 0, l.output_gpu);
+ }else{
+ flatten_gpu(net.input_gpu, l.w*l.h, l.c, l.batch, 1, l.output_gpu);
+ }
+ } else if (l.extra) {
+ for(i = 0; i < l.batch; ++i){
+ copy_gpu(l.inputs, net.input_gpu + i*l.inputs, 1, l.output_gpu + i*l.outputs, 1);
+ }
+ } else if (l.reverse) {
+ reorg_gpu(net.input_gpu, l.w, l.h, l.c, l.batch, l.stride, 1, l.output_gpu);
+ }else {
+ reorg_gpu(net.input_gpu, l.w, l.h, l.c, l.batch, l.stride, 0, l.output_gpu);
+ }
+}
+
+void backward_reorg_layer_gpu(layer l, network net)
+{
+ if(l.flatten){
+ if(l.reverse){
+ flatten_gpu(l.delta_gpu, l.w*l.h, l.c, l.batch, 1, net.delta_gpu);
+ }else{
+ flatten_gpu(l.delta_gpu, l.w*l.h, l.c, l.batch, 0, net.delta_gpu);
+ }
+ } else if (l.extra) {
+ int i;
+ for(i = 0; i < l.batch; ++i){
+ copy_gpu(l.inputs, l.delta_gpu + i*l.outputs, 1, net.delta_gpu + i*l.inputs, 1);
+ }
+ } else if(l.reverse){
+ reorg_gpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 0, net.delta_gpu);
+ } else {
+ reorg_gpu(l.delta_gpu, l.w, l.h, l.c, l.batch, l.stride, 1, net.delta_gpu);
+ }
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/reorg_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/reorg_layer.h"
new file mode 100644
index 00000000..e6513a5f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/reorg_layer.h"
@@ -0,0 +1,20 @@
+#ifndef REORG_LAYER_H
+#define REORG_LAYER_H
+
+#include "image.h"
+#include "cuda.h"
+#include "layer.h"
+#include "network.h"
+
+layer make_reorg_layer(int batch, int w, int h, int c, int stride, int reverse, int flatten, int extra);
+void resize_reorg_layer(layer *l, int w, int h);
+void forward_reorg_layer(const layer l, network net);
+void backward_reorg_layer(const layer l, network net);
+
+#ifdef GPU
+void forward_reorg_layer_gpu(layer l, network net);
+void backward_reorg_layer_gpu(layer l, network net);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/rnn_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/rnn_layer.c"
new file mode 100644
index 00000000..8c9b457e
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/rnn_layer.c"
@@ -0,0 +1,292 @@
+#include "rnn_layer.h"
+#include "connected_layer.h"
+#include "utils.h"
+#include "cuda.h"
+#include "blas.h"
+#include "gemm.h"
+
+#include
+#include
+#include
+#include
+
+static void increment_layer(layer *l, int steps)
+{
+ int num = l->outputs*l->batch*steps;
+ l->output += num;
+ l->delta += num;
+ l->x += num;
+ l->x_norm += num;
+
+#ifdef GPU
+ l->output_gpu += num;
+ l->delta_gpu += num;
+ l->x_gpu += num;
+ l->x_norm_gpu += num;
+#endif
+}
+
+layer make_rnn_layer(int batch, int inputs, int outputs, int steps, ACTIVATION activation, int batch_normalize, int adam)
+{
+ fprintf(stderr, "RNN Layer: %d inputs, %d outputs\n", inputs, outputs);
+ batch = batch / steps;
+ layer l = {0};
+ l.batch = batch;
+ l.type = RNN;
+ l.steps = steps;
+ l.inputs = inputs;
+
+ l.state = calloc(batch*outputs, sizeof(float));
+ l.prev_state = calloc(batch*outputs, sizeof(float));
+
+ l.input_layer = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.input_layer) = make_connected_layer(batch*steps, inputs, outputs, activation, batch_normalize, adam);
+ l.input_layer->batch = batch;
+
+ l.self_layer = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.self_layer) = make_connected_layer(batch*steps, outputs, outputs, activation, batch_normalize, adam);
+ l.self_layer->batch = batch;
+
+ l.output_layer = malloc(sizeof(layer));
+ fprintf(stderr, "\t\t");
+ *(l.output_layer) = make_connected_layer(batch*steps, outputs, outputs, activation, batch_normalize, adam);
+ l.output_layer->batch = batch;
+
+ l.outputs = outputs;
+ l.output = l.output_layer->output;
+ l.delta = l.output_layer->delta;
+
+ l.forward = forward_rnn_layer;
+ l.backward = backward_rnn_layer;
+ l.update = update_rnn_layer;
+#ifdef GPU
+ l.forward_gpu = forward_rnn_layer_gpu;
+ l.backward_gpu = backward_rnn_layer_gpu;
+ l.update_gpu = update_rnn_layer_gpu;
+ l.state_gpu = cuda_make_array(0, batch*outputs);
+ l.prev_state_gpu = cuda_make_array(0, batch*outputs);
+ l.output_gpu = l.output_layer->output_gpu;
+ l.delta_gpu = l.output_layer->delta_gpu;
+#ifdef CUDNN
+ cudnnSetTensor4dDescriptor(l.input_layer->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.input_layer->out_c, l.input_layer->out_h, l.input_layer->out_w);
+ cudnnSetTensor4dDescriptor(l.self_layer->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.self_layer->out_c, l.self_layer->out_h, l.self_layer->out_w);
+ cudnnSetTensor4dDescriptor(l.output_layer->dstTensorDesc, CUDNN_TENSOR_NCHW, CUDNN_DATA_FLOAT, batch, l.output_layer->out_c, l.output_layer->out_h, l.output_layer->out_w);
+#endif
+#endif
+
+ return l;
+}
+
+void update_rnn_layer(layer l, update_args a)
+{
+ update_connected_layer(*(l.input_layer), a);
+ update_connected_layer(*(l.self_layer), a);
+ update_connected_layer(*(l.output_layer), a);
+}
+
+void forward_rnn_layer(layer l, network net)
+{
+ network s = net;
+ s.train = net.train;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+
+ fill_cpu(l.outputs * l.batch * l.steps, 0, output_layer.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, self_layer.delta, 1);
+ fill_cpu(l.outputs * l.batch * l.steps, 0, input_layer.delta, 1);
+ if(net.train) fill_cpu(l.outputs * l.batch, 0, l.state, 1);
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input = net.input;
+ forward_connected_layer(input_layer, s);
+
+ s.input = l.state;
+ forward_connected_layer(self_layer, s);
+
+ float *old_state = l.state;
+ if(net.train) l.state += l.outputs*l.batch;
+ if(l.shortcut){
+ copy_cpu(l.outputs * l.batch, old_state, 1, l.state, 1);
+ }else{
+ fill_cpu(l.outputs * l.batch, 0, l.state, 1);
+ }
+ axpy_cpu(l.outputs * l.batch, 1, input_layer.output, 1, l.state, 1);
+ axpy_cpu(l.outputs * l.batch, 1, self_layer.output, 1, l.state, 1);
+
+ s.input = l.state;
+ forward_connected_layer(output_layer, s);
+
+ net.input += l.inputs*l.batch;
+ increment_layer(&input_layer, 1);
+ increment_layer(&self_layer, 1);
+ increment_layer(&output_layer, 1);
+ }
+}
+
+void backward_rnn_layer(layer l, network net)
+{
+ network s = net;
+ s.train = net.train;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+
+ increment_layer(&input_layer, l.steps-1);
+ increment_layer(&self_layer, l.steps-1);
+ increment_layer(&output_layer, l.steps-1);
+
+ l.state += l.outputs*l.batch*l.steps;
+ for (i = l.steps-1; i >= 0; --i) {
+ copy_cpu(l.outputs * l.batch, input_layer.output, 1, l.state, 1);
+ axpy_cpu(l.outputs * l.batch, 1, self_layer.output, 1, l.state, 1);
+
+ s.input = l.state;
+ s.delta = self_layer.delta;
+ backward_connected_layer(output_layer, s);
+
+ l.state -= l.outputs*l.batch;
+ /*
+ if(i > 0){
+ copy_cpu(l.outputs * l.batch, input_layer.output - l.outputs*l.batch, 1, l.state, 1);
+ axpy_cpu(l.outputs * l.batch, 1, self_layer.output - l.outputs*l.batch, 1, l.state, 1);
+ }else{
+ fill_cpu(l.outputs * l.batch, 0, l.state, 1);
+ }
+ */
+
+ s.input = l.state;
+ s.delta = self_layer.delta - l.outputs*l.batch;
+ if (i == 0) s.delta = 0;
+ backward_connected_layer(self_layer, s);
+
+ copy_cpu(l.outputs*l.batch, self_layer.delta, 1, input_layer.delta, 1);
+ if (i > 0 && l.shortcut) axpy_cpu(l.outputs*l.batch, 1, self_layer.delta, 1, self_layer.delta - l.outputs*l.batch, 1);
+ s.input = net.input + i*l.inputs*l.batch;
+ if(net.delta) s.delta = net.delta + i*l.inputs*l.batch;
+ else s.delta = 0;
+ backward_connected_layer(input_layer, s);
+
+ increment_layer(&input_layer, -1);
+ increment_layer(&self_layer, -1);
+ increment_layer(&output_layer, -1);
+ }
+}
+
+#ifdef GPU
+
+void pull_rnn_layer(layer l)
+{
+ pull_connected_layer(*(l.input_layer));
+ pull_connected_layer(*(l.self_layer));
+ pull_connected_layer(*(l.output_layer));
+}
+
+void push_rnn_layer(layer l)
+{
+ push_connected_layer(*(l.input_layer));
+ push_connected_layer(*(l.self_layer));
+ push_connected_layer(*(l.output_layer));
+}
+
+void update_rnn_layer_gpu(layer l, update_args a)
+{
+ update_connected_layer_gpu(*(l.input_layer), a);
+ update_connected_layer_gpu(*(l.self_layer), a);
+ update_connected_layer_gpu(*(l.output_layer), a);
+}
+
+void forward_rnn_layer_gpu(layer l, network net)
+{
+ network s = {0};
+ s.train = net.train;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+
+ fill_gpu(l.outputs * l.batch * l.steps, 0, output_layer.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, self_layer.delta_gpu, 1);
+ fill_gpu(l.outputs * l.batch * l.steps, 0, input_layer.delta_gpu, 1);
+
+ if(net.train) {
+ fill_gpu(l.outputs * l.batch * l.steps, 0, l.delta_gpu, 1);
+ copy_gpu(l.outputs*l.batch, l.state_gpu, 1, l.prev_state_gpu, 1);
+ }
+
+ for (i = 0; i < l.steps; ++i) {
+ s.input_gpu = net.input_gpu;
+ forward_connected_layer_gpu(input_layer, s);
+
+ s.input_gpu = l.state_gpu;
+ forward_connected_layer_gpu(self_layer, s);
+
+ fill_gpu(l.outputs * l.batch, 0, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, input_layer.output_gpu, 1, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, self_layer.output_gpu, 1, l.state_gpu, 1);
+
+ s.input_gpu = l.state_gpu;
+ forward_connected_layer_gpu(output_layer, s);
+
+ net.input_gpu += l.inputs*l.batch;
+ increment_layer(&input_layer, 1);
+ increment_layer(&self_layer, 1);
+ increment_layer(&output_layer, 1);
+ }
+}
+
+void backward_rnn_layer_gpu(layer l, network net)
+{
+ network s = {0};
+ s.train = net.train;
+ int i;
+ layer input_layer = *(l.input_layer);
+ layer self_layer = *(l.self_layer);
+ layer output_layer = *(l.output_layer);
+ increment_layer(&input_layer, l.steps - 1);
+ increment_layer(&self_layer, l.steps - 1);
+ increment_layer(&output_layer, l.steps - 1);
+ float *last_input = input_layer.output_gpu;
+ float *last_self = self_layer.output_gpu;
+ for (i = l.steps-1; i >= 0; --i) {
+ fill_gpu(l.outputs * l.batch, 0, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, input_layer.output_gpu, 1, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, self_layer.output_gpu, 1, l.state_gpu, 1);
+
+ s.input_gpu = l.state_gpu;
+ s.delta_gpu = self_layer.delta_gpu;
+ backward_connected_layer_gpu(output_layer, s);
+
+ if(i != 0) {
+ fill_gpu(l.outputs * l.batch, 0, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, input_layer.output_gpu - l.outputs*l.batch, 1, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, self_layer.output_gpu - l.outputs*l.batch, 1, l.state_gpu, 1);
+ }else {
+ copy_gpu(l.outputs*l.batch, l.prev_state_gpu, 1, l.state_gpu, 1);
+ }
+
+ copy_gpu(l.outputs*l.batch, self_layer.delta_gpu, 1, input_layer.delta_gpu, 1);
+
+ s.input_gpu = l.state_gpu;
+ s.delta_gpu = (i > 0) ? self_layer.delta_gpu - l.outputs*l.batch : 0;
+ if (i == 0) s.delta_gpu = 0;
+ backward_connected_layer_gpu(self_layer, s);
+
+ s.input_gpu = net.input_gpu + i*l.inputs*l.batch;
+ if(net.delta_gpu) s.delta_gpu = net.delta_gpu + i*l.inputs*l.batch;
+ else s.delta_gpu = 0;
+ backward_connected_layer_gpu(input_layer, s);
+
+ increment_layer(&input_layer, -1);
+ increment_layer(&self_layer, -1);
+ increment_layer(&output_layer, -1);
+ }
+ fill_gpu(l.outputs * l.batch, 0, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, last_input, 1, l.state_gpu, 1);
+ axpy_gpu(l.outputs * l.batch, 1, last_self, 1, l.state_gpu, 1);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/rnn_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/rnn_layer.h"
new file mode 100644
index 00000000..270a63ff
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/rnn_layer.h"
@@ -0,0 +1,25 @@
+
+#ifndef RNN_LAYER_H
+#define RNN_LAYER_H
+
+#include "activations.h"
+#include "layer.h"
+#include "network.h"
+#define USET
+
+layer make_rnn_layer(int batch, int inputs, int outputs, int steps, ACTIVATION activation, int batch_normalize, int adam);
+
+void forward_rnn_layer(layer l, network net);
+void backward_rnn_layer(layer l, network net);
+void update_rnn_layer(layer l, update_args a);
+
+#ifdef GPU
+void forward_rnn_layer_gpu(layer l, network net);
+void backward_rnn_layer_gpu(layer l, network net);
+void update_rnn_layer_gpu(layer l, update_args a);
+void push_rnn_layer(layer l);
+void pull_rnn_layer(layer l);
+#endif
+
+#endif
+
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/route_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/route_layer.c"
new file mode 100644
index 00000000..a8970a46
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/route_layer.c"
@@ -0,0 +1,134 @@
+#include "route_layer.h"
+#include "cuda.h"
+#include "blas.h"
+
+#include
+
+route_layer make_route_layer(int batch, int n, int *input_layers, int *input_sizes)
+{
+ fprintf(stderr,"route ");
+ route_layer l = {0};
+ l.type = ROUTE;
+ l.batch = batch;
+ l.n = n;
+ l.input_layers = input_layers;
+ l.input_sizes = input_sizes;
+ int i;
+ int outputs = 0;
+ for(i = 0; i < n; ++i){
+ fprintf(stderr," %d", input_layers[i]);
+ outputs += input_sizes[i];
+ }
+ fprintf(stderr, "\n");
+ l.outputs = outputs;
+ l.inputs = outputs;
+ l.delta = calloc(outputs*batch, sizeof(float));
+ l.output = calloc(outputs*batch, sizeof(float));;
+
+ l.forward = forward_route_layer;
+ l.backward = backward_route_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_route_layer_gpu;
+ l.backward_gpu = backward_route_layer_gpu;
+
+ l.delta_gpu = cuda_make_array(l.delta, outputs*batch);
+ l.output_gpu = cuda_make_array(l.output, outputs*batch);
+ #endif
+ return l;
+}
+
+void resize_route_layer(route_layer *l, network *net)
+{
+ int i;
+ layer first = net->layers[l->input_layers[0]];
+ l->out_w = first.out_w;
+ l->out_h = first.out_h;
+ l->out_c = first.out_c;
+ l->outputs = first.outputs;
+ l->input_sizes[0] = first.outputs;
+ for(i = 1; i < l->n; ++i){
+ int index = l->input_layers[i];
+ layer next = net->layers[index];
+ l->outputs += next.outputs;
+ l->input_sizes[i] = next.outputs;
+ if(next.out_w == first.out_w && next.out_h == first.out_h){
+ l->out_c += next.out_c;
+ }else{
+ printf("%d %d, %d %d\n", next.out_w, next.out_h, first.out_w, first.out_h);
+ l->out_h = l->out_w = l->out_c = 0;
+ }
+ }
+ l->inputs = l->outputs;
+ l->delta = realloc(l->delta, l->outputs*l->batch*sizeof(float));
+ l->output = realloc(l->output, l->outputs*l->batch*sizeof(float));
+
+#ifdef GPU
+ cuda_free(l->output_gpu);
+ cuda_free(l->delta_gpu);
+ l->output_gpu = cuda_make_array(l->output, l->outputs*l->batch);
+ l->delta_gpu = cuda_make_array(l->delta, l->outputs*l->batch);
+#endif
+
+}
+
+void forward_route_layer(const route_layer l, network net)
+{
+ int i, j;
+ int offset = 0;
+ for(i = 0; i < l.n; ++i){
+ int index = l.input_layers[i];
+ float *input = net.layers[index].output;
+ int input_size = l.input_sizes[i];
+ for(j = 0; j < l.batch; ++j){
+ copy_cpu(input_size, input + j*input_size, 1, l.output + offset + j*l.outputs, 1);
+ }
+ offset += input_size;
+ }
+}
+
+void backward_route_layer(const route_layer l, network net)
+{
+ int i, j;
+ int offset = 0;
+ for(i = 0; i < l.n; ++i){
+ int index = l.input_layers[i];
+ float *delta = net.layers[index].delta;
+ int input_size = l.input_sizes[i];
+ for(j = 0; j < l.batch; ++j){
+ axpy_cpu(input_size, 1, l.delta + offset + j*l.outputs, 1, delta + j*input_size, 1);
+ }
+ offset += input_size;
+ }
+}
+
+#ifdef GPU
+void forward_route_layer_gpu(const route_layer l, network net)
+{
+ int i, j;
+ int offset = 0;
+ for(i = 0; i < l.n; ++i){
+ int index = l.input_layers[i];
+ float *input = net.layers[index].output_gpu;
+ int input_size = l.input_sizes[i];
+ for(j = 0; j < l.batch; ++j){
+ copy_gpu(input_size, input + j*input_size, 1, l.output_gpu + offset + j*l.outputs, 1);
+ }
+ offset += input_size;
+ }
+}
+
+void backward_route_layer_gpu(const route_layer l, network net)
+{
+ int i, j;
+ int offset = 0;
+ for(i = 0; i < l.n; ++i){
+ int index = l.input_layers[i];
+ float *delta = net.layers[index].delta_gpu;
+ int input_size = l.input_sizes[i];
+ for(j = 0; j < l.batch; ++j){
+ axpy_gpu(input_size, 1, l.delta_gpu + offset + j*l.outputs, 1, delta + j*input_size, 1);
+ }
+ offset += input_size;
+ }
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/route_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/route_layer.h"
new file mode 100644
index 00000000..1d40330f
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/route_layer.h"
@@ -0,0 +1,18 @@
+#ifndef ROUTE_LAYER_H
+#define ROUTE_LAYER_H
+#include "network.h"
+#include "layer.h"
+
+typedef layer route_layer;
+
+route_layer make_route_layer(int batch, int n, int *input_layers, int *input_size);
+void forward_route_layer(const route_layer l, network net);
+void backward_route_layer(const route_layer l, network net);
+void resize_route_layer(route_layer *l, network *net);
+
+#ifdef GPU
+void forward_route_layer_gpu(const route_layer l, network net);
+void backward_route_layer_gpu(const route_layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/shortcut_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/shortcut_layer.c"
new file mode 100644
index 00000000..49d17f56
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/shortcut_layer.c"
@@ -0,0 +1,90 @@
+#include "shortcut_layer.h"
+#include "cuda.h"
+#include "blas.h"
+#include "activations.h"
+
+#include
+#include
+
+layer make_shortcut_layer(int batch, int index, int w, int h, int c, int w2, int h2, int c2)
+{
+ fprintf(stderr, "res %3d %4d x%4d x%4d -> %4d x%4d x%4d\n",index, w2,h2,c2, w,h,c);
+ layer l = {0};
+ l.type = SHORTCUT;
+ l.batch = batch;
+ l.w = w2;
+ l.h = h2;
+ l.c = c2;
+ l.out_w = w;
+ l.out_h = h;
+ l.out_c = c;
+ l.outputs = w*h*c;
+ l.inputs = l.outputs;
+
+ l.index = index;
+
+ l.delta = calloc(l.outputs*batch, sizeof(float));
+ l.output = calloc(l.outputs*batch, sizeof(float));;
+
+ l.forward = forward_shortcut_layer;
+ l.backward = backward_shortcut_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_shortcut_layer_gpu;
+ l.backward_gpu = backward_shortcut_layer_gpu;
+
+ l.delta_gpu = cuda_make_array(l.delta, l.outputs*batch);
+ l.output_gpu = cuda_make_array(l.output, l.outputs*batch);
+ #endif
+ return l;
+}
+
+void resize_shortcut_layer(layer *l, int w, int h)
+{
+ assert(l->w == l->out_w);
+ assert(l->h == l->out_h);
+ l->w = l->out_w = w;
+ l->h = l->out_h = h;
+ l->outputs = w*h*l->out_c;
+ l->inputs = l->outputs;
+ l->delta = realloc(l->delta, l->outputs*l->batch*sizeof(float));
+ l->output = realloc(l->output, l->outputs*l->batch*sizeof(float));
+
+#ifdef GPU
+ cuda_free(l->output_gpu);
+ cuda_free(l->delta_gpu);
+ l->output_gpu = cuda_make_array(l->output, l->outputs*l->batch);
+ l->delta_gpu = cuda_make_array(l->delta, l->outputs*l->batch);
+#endif
+
+}
+
+
+void forward_shortcut_layer(const layer l, network net)
+{
+ copy_cpu(l.outputs*l.batch, net.input, 1, l.output, 1);
+ shortcut_cpu(l.batch, l.w, l.h, l.c, net.layers[l.index].output, l.out_w, l.out_h, l.out_c, l.alpha, l.beta, l.output);
+ activate_array(l.output, l.outputs*l.batch, l.activation);
+}
+
+void backward_shortcut_layer(const layer l, network net)
+{
+ gradient_array(l.output, l.outputs*l.batch, l.activation, l.delta);
+ axpy_cpu(l.outputs*l.batch, l.alpha, l.delta, 1, net.delta, 1);
+ shortcut_cpu(l.batch, l.out_w, l.out_h, l.out_c, l.delta, l.w, l.h, l.c, 1, l.beta, net.layers[l.index].delta);
+}
+
+#ifdef GPU
+void forward_shortcut_layer_gpu(const layer l, network net)
+{
+ copy_gpu(l.outputs*l.batch, net.input_gpu, 1, l.output_gpu, 1);
+ shortcut_gpu(l.batch, l.w, l.h, l.c, net.layers[l.index].output_gpu, l.out_w, l.out_h, l.out_c, l.alpha, l.beta, l.output_gpu);
+ activate_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation);
+}
+
+void backward_shortcut_layer_gpu(const layer l, network net)
+{
+ gradient_array_gpu(l.output_gpu, l.outputs*l.batch, l.activation, l.delta_gpu);
+ axpy_gpu(l.outputs*l.batch, l.alpha, l.delta_gpu, 1, net.delta_gpu, 1);
+ shortcut_gpu(l.batch, l.out_w, l.out_h, l.out_c, l.delta_gpu, l.w, l.h, l.c, 1, l.beta, net.layers[l.index].delta_gpu);
+}
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/shortcut_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/shortcut_layer.h"
new file mode 100644
index 00000000..5f684fc1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/shortcut_layer.h"
@@ -0,0 +1,17 @@
+#ifndef SHORTCUT_LAYER_H
+#define SHORTCUT_LAYER_H
+
+#include "layer.h"
+#include "network.h"
+
+layer make_shortcut_layer(int batch, int index, int w, int h, int c, int w2, int h2, int c2);
+void forward_shortcut_layer(const layer l, network net);
+void backward_shortcut_layer(const layer l, network net);
+void resize_shortcut_layer(layer *l, int w, int h);
+
+#ifdef GPU
+void forward_shortcut_layer_gpu(const layer l, network net);
+void backward_shortcut_layer_gpu(const layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/softmax_layer.c" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/softmax_layer.c"
new file mode 100644
index 00000000..9cbc6be1
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/softmax_layer.c"
@@ -0,0 +1,107 @@
+#include "softmax_layer.h"
+#include "blas.h"
+#include "cuda.h"
+
+#include
+#include
+#include
+#include
+#include
+
+softmax_layer make_softmax_layer(int batch, int inputs, int groups)
+{
+ assert(inputs%groups == 0);
+ fprintf(stderr, "softmax %4d\n", inputs);
+ softmax_layer l = {0};
+ l.type = SOFTMAX;
+ l.batch = batch;
+ l.groups = groups;
+ l.inputs = inputs;
+ l.outputs = inputs;
+ l.loss = calloc(inputs*batch, sizeof(float));
+ l.output = calloc(inputs*batch, sizeof(float));
+ l.delta = calloc(inputs*batch, sizeof(float));
+ l.cost = calloc(1, sizeof(float));
+
+ l.forward = forward_softmax_layer;
+ l.backward = backward_softmax_layer;
+ #ifdef GPU
+ l.forward_gpu = forward_softmax_layer_gpu;
+ l.backward_gpu = backward_softmax_layer_gpu;
+
+ l.output_gpu = cuda_make_array(l.output, inputs*batch);
+ l.loss_gpu = cuda_make_array(l.loss, inputs*batch);
+ l.delta_gpu = cuda_make_array(l.delta, inputs*batch);
+ #endif
+ return l;
+}
+
+void forward_softmax_layer(const softmax_layer l, network net)
+{
+ if(l.softmax_tree){
+ int i;
+ int count = 0;
+ for (i = 0; i < l.softmax_tree->groups; ++i) {
+ int group_size = l.softmax_tree->group_size[i];
+ softmax_cpu(net.input + count, group_size, l.batch, l.inputs, 1, 0, 1, l.temperature, l.output + count);
+ count += group_size;
+ }
+ } else {
+ softmax_cpu(net.input, l.inputs/l.groups, l.batch, l.inputs, l.groups, l.inputs/l.groups, 1, l.temperature, l.output);
+ }
+
+ if(net.truth && !l.noloss){
+ softmax_x_ent_cpu(l.batch*l.inputs, l.output, net.truth, l.delta, l.loss);
+ l.cost[0] = sum_array(l.loss, l.batch*l.inputs);
+ }
+}
+
+void backward_softmax_layer(const softmax_layer l, network net)
+{
+ axpy_cpu(l.inputs*l.batch, 1, l.delta, 1, net.delta, 1);
+}
+
+#ifdef GPU
+
+void pull_softmax_layer_output(const softmax_layer layer)
+{
+ cuda_pull_array(layer.output_gpu, layer.output, layer.inputs*layer.batch);
+}
+
+void forward_softmax_layer_gpu(const softmax_layer l, network net)
+{
+ if(l.softmax_tree){
+ softmax_tree(net.input_gpu, 1, l.batch, l.inputs, l.temperature, l.output_gpu, *l.softmax_tree);
+ /*
+ int i;
+ int count = 0;
+ for (i = 0; i < l.softmax_tree->groups; ++i) {
+ int group_size = l.softmax_tree->group_size[i];
+ softmax_gpu(net.input_gpu + count, group_size, l.batch, l.inputs, 1, 0, 1, l.temperature, l.output_gpu + count);
+ count += group_size;
+ }
+ */
+ } else {
+ if(l.spatial){
+ softmax_gpu(net.input_gpu, l.c, l.batch*l.c, l.inputs/l.c, l.w*l.h, 1, l.w*l.h, 1, l.output_gpu);
+ }else{
+ softmax_gpu(net.input_gpu, l.inputs/l.groups, l.batch, l.inputs, l.groups, l.inputs/l.groups, 1, l.temperature, l.output_gpu);
+ }
+ }
+ if(net.truth && !l.noloss){
+ softmax_x_ent_gpu(l.batch*l.inputs, l.output_gpu, net.truth_gpu, l.delta_gpu, l.loss_gpu);
+ if(l.softmax_tree){
+ mask_gpu(l.batch*l.inputs, l.delta_gpu, SECRET_NUM, net.truth_gpu, 0);
+ mask_gpu(l.batch*l.inputs, l.loss_gpu, SECRET_NUM, net.truth_gpu, 0);
+ }
+ cuda_pull_array(l.loss_gpu, l.loss, l.batch*l.inputs);
+ l.cost[0] = sum_array(l.loss, l.batch*l.inputs);
+ }
+}
+
+void backward_softmax_layer_gpu(const softmax_layer layer, network net)
+{
+ axpy_gpu(layer.batch*layer.inputs, 1, layer.delta_gpu, 1, net.delta_gpu, 1);
+}
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/softmax_layer.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/softmax_layer.h"
new file mode 100644
index 00000000..2e3ffe01
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/softmax_layer.h"
@@ -0,0 +1,19 @@
+#ifndef SOFTMAX_LAYER_H
+#define SOFTMAX_LAYER_H
+#include "layer.h"
+#include "network.h"
+
+typedef layer softmax_layer;
+
+void softmax_array(float *input, int n, float temp, float *output);
+softmax_layer make_softmax_layer(int batch, int inputs, int groups);
+void forward_softmax_layer(const softmax_layer l, network net);
+void backward_softmax_layer(const softmax_layer l, network net);
+
+#ifdef GPU
+void pull_softmax_layer_output(const softmax_layer l);
+void forward_softmax_layer_gpu(const softmax_layer l, network net);
+void backward_softmax_layer_gpu(const softmax_layer l, network net);
+#endif
+
+#endif
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/stb_image.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/stb_image.h"
new file mode 100644
index 00000000..d9c21bc8
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/stb_image.h"
@@ -0,0 +1,7462 @@
+/* stb_image - v2.19 - public domain image loader - http://nothings.org/stb
+ no warranty implied; use at your own risk
+
+ Do this:
+ #define STB_IMAGE_IMPLEMENTATION
+ before you include this file in *one* C or C++ file to create the implementation.
+
+ // i.e. it should look like this:
+ #include ...
+ #include ...
+ #include ...
+ #define STB_IMAGE_IMPLEMENTATION
+ #include "stb_image.h"
+
+ You can #define STBI_ASSERT(x) before the #include to avoid using assert.h.
+ And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free
+
+
+ QUICK NOTES:
+ Primarily of interest to game developers and other people who can
+ avoid problematic images and only need the trivial interface
+
+ JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib)
+ PNG 1/2/4/8/16-bit-per-channel
+
+ TGA (not sure what subset, if a subset)
+ BMP non-1bpp, non-RLE
+ PSD (composited view only, no extra channels, 8/16 bit-per-channel)
+
+ GIF (*comp always reports as 4-channel)
+ HDR (radiance rgbE format)
+ PIC (Softimage PIC)
+ PNM (PPM and PGM binary only)
+
+ Animated GIF still needs a proper API, but here's one way to do it:
+ http://gist.github.com/urraka/685d9a6340b26b830d49
+
+ - decode from memory or through FILE (define STBI_NO_STDIO to remove code)
+ - decode from arbitrary I/O callbacks
+ - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON)
+
+ Full documentation under "DOCUMENTATION" below.
+
+
+LICENSE
+
+ See end of file for license information.
+
+RECENT REVISION HISTORY:
+
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes
+ 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64
+ RGB-format JPEG; remove white matting in PSD;
+ allocate large structures on the stack;
+ correct channel count for PNG & BMP
+ 2.10 (2016-01-22) avoid warning introduced in 2.09
+ 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED
+
+ See end of file for full revision history.
+
+
+ ============================ Contributors =========================
+
+ Image formats Extensions, features
+ Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info)
+ Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info)
+ Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG)
+ Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks)
+ Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG)
+ Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip)
+ Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD)
+ github:urraka (animated gif) Junggon Kim (PNM comments)
+ Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA)
+ socks-the-fox (16-bit PNG)
+ Jeremy Sawicki (handle all ImageNet JPGs)
+ Optimizations & bugfixes Mikhail Morozov (1-bit BMP)
+ Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query)
+ Arseny Kapoulkine
+ John-Mark Allen
+
+ Bug & warning fixes
+ Marc LeBlanc David Woo Guillaume George Martins Mozeiko
+ Christpher Lloyd Jerry Jansson Joseph Thomson Phil Jordan
+ Dave Moore Roy Eltham Hayaki Saito Nathan Reed
+ Won Chun Luke Graham Johan Duparc Nick Verigakis
+ the Horde3D community Thomas Ruf Ronny Chevalier github:rlyeh
+ Janez Zemva John Bartholomew Michal Cichon github:romigrou
+ Jonathan Blow Ken Hamada Tero Hanninen github:svdijk
+ Laurent Gomila Cort Stratton Sergio Gonzalez github:snagar
+ Aruelien Pocheville Thibault Reuille Cass Everitt github:Zelex
+ Ryamond Barbiero Paul Du Bois Engin Manap github:grim210
+ Aldo Culquicondor Philipp Wiesemann Dale Weiler github:sammyhw
+ Oriol Ferrer Mesia Josh Tobin Matthew Gregan github:phprus
+ Julian Raschke Gregory Mullen Baldur Karlsson github:poppolopoppo
+ Christian Floisand Kevin Schmidt github:darealshinji
+ Blazej Dariusz Roszkowski github:Michaelangel007
+*/
+
+#ifndef STBI_INCLUDE_STB_IMAGE_H
+#define STBI_INCLUDE_STB_IMAGE_H
+
+// DOCUMENTATION
+//
+// Limitations:
+// - no 12-bit-per-channel JPEG
+// - no JPEGs with arithmetic coding
+// - GIF always returns *comp=4
+//
+// Basic usage (see HDR discussion below for HDR usage):
+// int x,y,n;
+// unsigned char *data = stbi_load(filename, &x, &y, &n, 0);
+// // ... process data if not NULL ...
+// // ... x = width, y = height, n = # 8-bit components per pixel ...
+// // ... replace '0' with '1'..'4' to force that many components per pixel
+// // ... but 'n' will always be the number that it would have been if you said 0
+// stbi_image_free(data)
+//
+// Standard parameters:
+// int *x -- outputs image width in pixels
+// int *y -- outputs image height in pixels
+// int *channels_in_file -- outputs # of image components in image file
+// int desired_channels -- if non-zero, # of image components requested in result
+//
+// The return value from an image loader is an 'unsigned char *' which points
+// to the pixel data, or NULL on an allocation failure or if the image is
+// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels,
+// with each pixel consisting of N interleaved 8-bit components; the first
+// pixel pointed to is top-left-most in the image. There is no padding between
+// image scanlines or between pixels, regardless of format. The number of
+// components N is 'desired_channels' if desired_channels is non-zero, or
+// *channels_in_file otherwise. If desired_channels is non-zero,
+// *channels_in_file has the number of components that _would_ have been
+// output otherwise. E.g. if you set desired_channels to 4, you will always
+// get RGBA output, but you can check *channels_in_file to see if it's trivially
+// opaque because e.g. there were only 3 channels in the source image.
+//
+// An output image with N components has the following components interleaved
+// in this order in each pixel:
+//
+// N=#comp components
+// 1 grey
+// 2 grey, alpha
+// 3 red, green, blue
+// 4 red, green, blue, alpha
+//
+// If image loading fails for any reason, the return value will be NULL,
+// and *x, *y, *channels_in_file will be unchanged. The function
+// stbi_failure_reason() can be queried for an extremely brief, end-user
+// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS
+// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly
+// more user-friendly ones.
+//
+// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized.
+//
+// ===========================================================================
+//
+// Philosophy
+//
+// stb libraries are designed with the following priorities:
+//
+// 1. easy to use
+// 2. easy to maintain
+// 3. good performance
+//
+// Sometimes I let "good performance" creep up in priority over "easy to maintain",
+// and for best performance I may provide less-easy-to-use APIs that give higher
+// performance, in addition to the easy to use ones. Nevertheless, it's important
+// to keep in mind that from the standpoint of you, a client of this library,
+// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all.
+//
+// Some secondary priorities arise directly from the first two, some of which
+// make more explicit reasons why performance can't be emphasized.
+//
+// - Portable ("ease of use")
+// - Small source code footprint ("easy to maintain")
+// - No dependencies ("ease of use")
+//
+// ===========================================================================
+//
+// I/O callbacks
+//
+// I/O callbacks allow you to read from arbitrary sources, like packaged
+// files or some other source. Data read from callbacks are processed
+// through a small internal buffer (currently 128 bytes) to try to reduce
+// overhead.
+//
+// The three functions you must define are "read" (reads some bytes of data),
+// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end).
+//
+// ===========================================================================
+//
+// SIMD support
+//
+// The JPEG decoder will try to automatically use SIMD kernels on x86 when
+// supported by the compiler. For ARM Neon support, you must explicitly
+// request it.
+//
+// (The old do-it-yourself SIMD API is no longer supported in the current
+// code.)
+//
+// On x86, SSE2 will automatically be used when available based on a run-time
+// test; if not, the generic C versions are used as a fall-back. On ARM targets,
+// the typical path is to have separate builds for NEON and non-NEON devices
+// (at least this is true for iOS and Android). Therefore, the NEON support is
+// toggled by a build flag: define STBI_NEON to get NEON loops.
+//
+// If for some reason you do not want to use any of SIMD code, or if
+// you have issues compiling it, you can disable it entirely by
+// defining STBI_NO_SIMD.
+//
+// ===========================================================================
+//
+// HDR image support (disable by defining STBI_NO_HDR)
+//
+// stb_image now supports loading HDR images in general, and currently
+// the Radiance .HDR file format, although the support is provided
+// generically. You can still load any file through the existing interface;
+// if you attempt to load an HDR file, it will be automatically remapped to
+// LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1;
+// both of these constants can be reconfigured through this interface:
+//
+// stbi_hdr_to_ldr_gamma(2.2f);
+// stbi_hdr_to_ldr_scale(1.0f);
+//
+// (note, do not use _inverse_ constants; stbi_image will invert them
+// appropriately).
+//
+// Additionally, there is a new, parallel interface for loading files as
+// (linear) floats to preserve the full dynamic range:
+//
+// float *data = stbi_loadf(filename, &x, &y, &n, 0);
+//
+// If you load LDR images through this interface, those images will
+// be promoted to floating point values, run through the inverse of
+// constants corresponding to the above:
+//
+// stbi_ldr_to_hdr_scale(1.0f);
+// stbi_ldr_to_hdr_gamma(2.2f);
+//
+// Finally, given a filename (or an open file or memory block--see header
+// file for details) containing image data, you can query for the "most
+// appropriate" interface to use (that is, whether the image is HDR or
+// not), using:
+//
+// stbi_is_hdr(char *filename);
+//
+// ===========================================================================
+//
+// iPhone PNG support:
+//
+// By default we convert iphone-formatted PNGs back to RGB, even though
+// they are internally encoded differently. You can disable this conversion
+// by by calling stbi_convert_iphone_png_to_rgb(0), in which case
+// you will always just get the native iphone "format" through (which
+// is BGR stored in RGB).
+//
+// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per
+// pixel to remove any premultiplied alpha *only* if the image file explicitly
+// says there's premultiplied data (currently only happens in iPhone images,
+// and only if iPhone convert-to-rgb processing is on).
+//
+// ===========================================================================
+//
+// ADDITIONAL CONFIGURATION
+//
+// - You can suppress implementation of any of the decoders to reduce
+// your code footprint by #defining one or more of the following
+// symbols before creating the implementation.
+//
+// STBI_NO_JPEG
+// STBI_NO_PNG
+// STBI_NO_BMP
+// STBI_NO_PSD
+// STBI_NO_TGA
+// STBI_NO_GIF
+// STBI_NO_HDR
+// STBI_NO_PIC
+// STBI_NO_PNM (.ppm and .pgm)
+//
+// - You can request *only* certain decoders and suppress all other ones
+// (this will be more forward-compatible, as addition of new decoders
+// doesn't require you to disable them explicitly):
+//
+// STBI_ONLY_JPEG
+// STBI_ONLY_PNG
+// STBI_ONLY_BMP
+// STBI_ONLY_PSD
+// STBI_ONLY_TGA
+// STBI_ONLY_GIF
+// STBI_ONLY_HDR
+// STBI_ONLY_PIC
+// STBI_ONLY_PNM (.ppm and .pgm)
+//
+// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still
+// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB
+//
+
+
+#ifndef STBI_NO_STDIO
+#include
+#endif // STBI_NO_STDIO
+
+#define STBI_VERSION 1
+
+enum
+{
+ STBI_default = 0, // only used for desired_channels
+
+ STBI_grey = 1,
+ STBI_grey_alpha = 2,
+ STBI_rgb = 3,
+ STBI_rgb_alpha = 4
+};
+
+typedef unsigned char stbi_uc;
+typedef unsigned short stbi_us;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef STB_IMAGE_STATIC
+#define STBIDEF static
+#else
+#define STBIDEF extern
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// PRIMARY API - works on images of any type
+//
+
+//
+// load image by filename, open file, or memory buffer
+//
+
+typedef struct
+{
+ int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read
+ void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative
+ int (*eof) (void *user); // returns nonzero if we are at end of file/data
+} stbi_io_callbacks;
+
+////////////////////////////////////
+//
+// 8-bits-per-channel interface
+//
+
+STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels);
+STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels);
+#ifndef STBI_NO_GIF
+STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp);
+#endif
+
+
+#ifndef STBI_NO_STDIO
+STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels);
+STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels);
+// for stbi_load_from_file, file pointer is left pointing immediately after image
+#endif
+
+////////////////////////////////////
+//
+// 16-bits-per-channel interface
+//
+
+STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels);
+STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels);
+
+#ifndef STBI_NO_STDIO
+STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels);
+STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels);
+#endif
+
+////////////////////////////////////
+//
+// float-per-channel interface
+//
+#ifndef STBI_NO_LINEAR
+ STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels);
+ STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels);
+
+ #ifndef STBI_NO_STDIO
+ STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels);
+ STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels);
+ #endif
+#endif
+
+#ifndef STBI_NO_HDR
+ STBIDEF void stbi_hdr_to_ldr_gamma(float gamma);
+ STBIDEF void stbi_hdr_to_ldr_scale(float scale);
+#endif // STBI_NO_HDR
+
+#ifndef STBI_NO_LINEAR
+ STBIDEF void stbi_ldr_to_hdr_gamma(float gamma);
+ STBIDEF void stbi_ldr_to_hdr_scale(float scale);
+#endif // STBI_NO_LINEAR
+
+// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR
+STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user);
+STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len);
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_is_hdr (char const *filename);
+STBIDEF int stbi_is_hdr_from_file(FILE *f);
+#endif // STBI_NO_STDIO
+
+
+// get a VERY brief reason for failure
+// NOT THREADSAFE
+STBIDEF const char *stbi_failure_reason (void);
+
+// free the loaded image -- this is just free()
+STBIDEF void stbi_image_free (void *retval_from_stbi_load);
+
+// get image dimensions & components without fully decoding
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp);
+STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len);
+STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user);
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp);
+STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp);
+STBIDEF int stbi_is_16_bit (char const *filename);
+STBIDEF int stbi_is_16_bit_from_file(FILE *f);
+#endif
+
+
+
+// for image formats that explicitly notate that they have premultiplied alpha,
+// we just return the colors as stored in the file. set this flag to force
+// unpremultiplication. results are undefined if the unpremultiply overflow.
+STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply);
+
+// indicate whether we should process iphone images back to canonical format,
+// or just pass them through "as-is"
+STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert);
+
+// flip the image vertically, so the first pixel in the output array is the bottom left
+STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip);
+
+// ZLIB client - used by PNG, available for other purposes
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen);
+STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header);
+STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen);
+STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);
+
+STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen);
+STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+//
+//
+//// end header file /////////////////////////////////////////////////////
+#endif // STBI_INCLUDE_STB_IMAGE_H
+
+#ifdef STB_IMAGE_IMPLEMENTATION
+
+#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \
+ || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \
+ || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \
+ || defined(STBI_ONLY_ZLIB)
+ #ifndef STBI_ONLY_JPEG
+ #define STBI_NO_JPEG
+ #endif
+ #ifndef STBI_ONLY_PNG
+ #define STBI_NO_PNG
+ #endif
+ #ifndef STBI_ONLY_BMP
+ #define STBI_NO_BMP
+ #endif
+ #ifndef STBI_ONLY_PSD
+ #define STBI_NO_PSD
+ #endif
+ #ifndef STBI_ONLY_TGA
+ #define STBI_NO_TGA
+ #endif
+ #ifndef STBI_ONLY_GIF
+ #define STBI_NO_GIF
+ #endif
+ #ifndef STBI_ONLY_HDR
+ #define STBI_NO_HDR
+ #endif
+ #ifndef STBI_ONLY_PIC
+ #define STBI_NO_PIC
+ #endif
+ #ifndef STBI_ONLY_PNM
+ #define STBI_NO_PNM
+ #endif
+#endif
+
+#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB)
+#define STBI_NO_ZLIB
+#endif
+
+
+#include
+#include // ptrdiff_t on osx
+#include
+#include
+#include
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)
+#include // ldexp, pow
+#endif
+
+#ifndef STBI_NO_STDIO
+#include
+#endif
+
+#ifndef STBI_ASSERT
+#include
+#define STBI_ASSERT(x) assert(x)
+#endif
+
+
+#ifndef _MSC_VER
+ #ifdef __cplusplus
+ #define stbi_inline inline
+ #else
+ #define stbi_inline
+ #endif
+#else
+ #define stbi_inline __forceinline
+#endif
+
+
+#ifdef _MSC_VER
+typedef unsigned short stbi__uint16;
+typedef signed short stbi__int16;
+typedef unsigned int stbi__uint32;
+typedef signed int stbi__int32;
+#else
+#include
+typedef uint16_t stbi__uint16;
+typedef int16_t stbi__int16;
+typedef uint32_t stbi__uint32;
+typedef int32_t stbi__int32;
+#endif
+
+// should produce compiler error if size is wrong
+typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1];
+
+#ifdef _MSC_VER
+#define STBI_NOTUSED(v) (void)(v)
+#else
+#define STBI_NOTUSED(v) (void)sizeof(v)
+#endif
+
+#ifdef _MSC_VER
+#define STBI_HAS_LROTL
+#endif
+
+#ifdef STBI_HAS_LROTL
+ #define stbi_lrot(x,y) _lrotl(x,y)
+#else
+ #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (32 - (y))))
+#endif
+
+#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED))
+// ok
+#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED)
+// ok
+#else
+#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)."
+#endif
+
+#ifndef STBI_MALLOC
+#define STBI_MALLOC(sz) malloc(sz)
+#define STBI_REALLOC(p,newsz) realloc(p,newsz)
+#define STBI_FREE(p) free(p)
+#endif
+
+#ifndef STBI_REALLOC_SIZED
+#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz)
+#endif
+
+// x86/x64 detection
+#if defined(__x86_64__) || defined(_M_X64)
+#define STBI__X64_TARGET
+#elif defined(__i386) || defined(_M_IX86)
+#define STBI__X86_TARGET
+#endif
+
+#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD)
+// gcc doesn't support sse2 intrinsics unless you compile with -msse2,
+// which in turn means it gets to use SSE2 everywhere. This is unfortunate,
+// but previous attempts to provide the SSE2 functions with runtime
+// detection caused numerous issues. The way architecture extensions are
+// exposed in GCC/Clang is, sadly, not really suited for one-file libs.
+// New behavior: if compiled with -msse2, we use SSE2 without any
+// detection; if not, we don't use it at all.
+#define STBI_NO_SIMD
+#endif
+
+#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD)
+// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET
+//
+// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the
+// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant.
+// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not
+// simultaneously enabling "-mstackrealign".
+//
+// See https://github.com/nothings/stb/issues/81 for more information.
+//
+// So default to no SSE2 on 32-bit MinGW. If you've read this far and added
+// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2.
+#define STBI_NO_SIMD
+#endif
+
+#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET))
+#define STBI_SSE2
+#include
+
+#ifdef _MSC_VER
+
+#if _MSC_VER >= 1400 // not VC6
+#include // __cpuid
+static int stbi__cpuid3(void)
+{
+ int info[4];
+ __cpuid(info,1);
+ return info[3];
+}
+#else
+static int stbi__cpuid3(void)
+{
+ int res;
+ __asm {
+ mov eax,1
+ cpuid
+ mov res,edx
+ }
+ return res;
+}
+#endif
+
+#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name
+
+static int stbi__sse2_available(void)
+{
+ int info3 = stbi__cpuid3();
+ return ((info3 >> 26) & 1) != 0;
+}
+#else // assume GCC-style if not VC++
+#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))
+
+static int stbi__sse2_available(void)
+{
+ // If we're even attempting to compile this on GCC/Clang, that means
+ // -msse2 is on, which means the compiler is allowed to use SSE2
+ // instructions at will, and so are we.
+ return 1;
+}
+#endif
+#endif
+
+// ARM NEON
+#if defined(STBI_NO_SIMD) && defined(STBI_NEON)
+#undef STBI_NEON
+#endif
+
+#ifdef STBI_NEON
+#include
+// assume GCC or Clang on ARM targets
+#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16)))
+#endif
+
+#ifndef STBI_SIMD_ALIGN
+#define STBI_SIMD_ALIGN(type, name) type name
+#endif
+
+///////////////////////////////////////////////
+//
+// stbi__context struct and start_xxx functions
+
+// stbi__context structure is our basic context used by all images, so it
+// contains all the IO context, plus some basic image information
+typedef struct
+{
+ stbi__uint32 img_x, img_y;
+ int img_n, img_out_n;
+
+ stbi_io_callbacks io;
+ void *io_user_data;
+
+ int read_from_callbacks;
+ int buflen;
+ stbi_uc buffer_start[128];
+
+ stbi_uc *img_buffer, *img_buffer_end;
+ stbi_uc *img_buffer_original, *img_buffer_original_end;
+} stbi__context;
+
+
+static void stbi__refill_buffer(stbi__context *s);
+
+// initialize a memory-decode context
+static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len)
+{
+ s->io.read = NULL;
+ s->read_from_callbacks = 0;
+ s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer;
+ s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len;
+}
+
+// initialize a callback-based context
+static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user)
+{
+ s->io = *c;
+ s->io_user_data = user;
+ s->buflen = sizeof(s->buffer_start);
+ s->read_from_callbacks = 1;
+ s->img_buffer_original = s->buffer_start;
+ stbi__refill_buffer(s);
+ s->img_buffer_original_end = s->img_buffer_end;
+}
+
+#ifndef STBI_NO_STDIO
+
+static int stbi__stdio_read(void *user, char *data, int size)
+{
+ return (int) fread(data,1,size,(FILE*) user);
+}
+
+static void stbi__stdio_skip(void *user, int n)
+{
+ fseek((FILE*) user, n, SEEK_CUR);
+}
+
+static int stbi__stdio_eof(void *user)
+{
+ return feof((FILE*) user);
+}
+
+static stbi_io_callbacks stbi__stdio_callbacks =
+{
+ stbi__stdio_read,
+ stbi__stdio_skip,
+ stbi__stdio_eof,
+};
+
+static void stbi__start_file(stbi__context *s, FILE *f)
+{
+ stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f);
+}
+
+//static void stop_file(stbi__context *s) { }
+
+#endif // !STBI_NO_STDIO
+
+static void stbi__rewind(stbi__context *s)
+{
+ // conceptually rewind SHOULD rewind to the beginning of the stream,
+ // but we just rewind to the beginning of the initial buffer, because
+ // we only use it after doing 'test', which only ever looks at at most 92 bytes
+ s->img_buffer = s->img_buffer_original;
+ s->img_buffer_end = s->img_buffer_original_end;
+}
+
+enum
+{
+ STBI_ORDER_RGB,
+ STBI_ORDER_BGR
+};
+
+typedef struct
+{
+ int bits_per_channel;
+ int num_channels;
+ int channel_order;
+} stbi__result_info;
+
+#ifndef STBI_NO_JPEG
+static int stbi__jpeg_test(stbi__context *s);
+static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PNG
+static int stbi__png_test(stbi__context *s);
+static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__png_is16(stbi__context *s);
+#endif
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_test(stbi__context *s);
+static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_TGA
+static int stbi__tga_test(stbi__context *s);
+static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_test(stbi__context *s);
+static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc);
+static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp);
+static int stbi__psd_is16(stbi__context *s);
+#endif
+
+#ifndef STBI_NO_HDR
+static int stbi__hdr_test(stbi__context *s);
+static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_test(stbi__context *s);
+static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_GIF
+static int stbi__gif_test(stbi__context *s);
+static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp);
+static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+#ifndef STBI_NO_PNM
+static int stbi__pnm_test(stbi__context *s);
+static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri);
+static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp);
+#endif
+
+// this is not threadsafe
+static const char *stbi__g_failure_reason;
+
+STBIDEF const char *stbi_failure_reason(void)
+{
+ return stbi__g_failure_reason;
+}
+
+static int stbi__err(const char *str)
+{
+ stbi__g_failure_reason = str;
+ return 0;
+}
+
+static void *stbi__malloc(size_t size)
+{
+ return STBI_MALLOC(size);
+}
+
+// stb_image uses ints pervasively, including for offset calculations.
+// therefore the largest decoded image size we can support with the
+// current code, even on 64-bit targets, is INT_MAX. this is not a
+// significant limitation for the intended use case.
+//
+// we do, however, need to make sure our size calculations don't
+// overflow. hence a few helper functions for size calculations that
+// multiply integers together, making sure that they're non-negative
+// and no overflow occurs.
+
+// return 1 if the sum is valid, 0 on overflow.
+// negative terms are considered invalid.
+static int stbi__addsizes_valid(int a, int b)
+{
+ if (b < 0) return 0;
+ // now 0 <= b <= INT_MAX, hence also
+ // 0 <= INT_MAX - b <= INTMAX.
+ // And "a + b <= INT_MAX" (which might overflow) is the
+ // same as a <= INT_MAX - b (no overflow)
+ return a <= INT_MAX - b;
+}
+
+// returns 1 if the product is valid, 0 on overflow.
+// negative factors are considered invalid.
+static int stbi__mul2sizes_valid(int a, int b)
+{
+ if (a < 0 || b < 0) return 0;
+ if (b == 0) return 1; // mul-by-0 is always safe
+ // portable way to check for no overflows in a*b
+ return a <= INT_MAX/b;
+}
+
+// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow
+static int stbi__mad2sizes_valid(int a, int b, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add);
+}
+
+// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow
+static int stbi__mad3sizes_valid(int a, int b, int c, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) &&
+ stbi__addsizes_valid(a*b*c, add);
+}
+
+// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)
+static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add)
+{
+ return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) &&
+ stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add);
+}
+#endif
+
+// mallocs with size overflow checking
+static void *stbi__malloc_mad2(int a, int b, int add)
+{
+ if (!stbi__mad2sizes_valid(a, b, add)) return NULL;
+ return stbi__malloc(a*b + add);
+}
+
+static void *stbi__malloc_mad3(int a, int b, int c, int add)
+{
+ if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL;
+ return stbi__malloc(a*b*c + add);
+}
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)
+static void *stbi__malloc_mad4(int a, int b, int c, int d, int add)
+{
+ if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL;
+ return stbi__malloc(a*b*c*d + add);
+}
+#endif
+
+// stbi__err - error
+// stbi__errpf - error returning pointer to float
+// stbi__errpuc - error returning pointer to unsigned char
+
+#ifdef STBI_NO_FAILURE_STRINGS
+ #define stbi__err(x,y) 0
+#elif defined(STBI_FAILURE_USERMSG)
+ #define stbi__err(x,y) stbi__err(y)
+#else
+ #define stbi__err(x,y) stbi__err(x)
+#endif
+
+#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL))
+#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL))
+
+STBIDEF void stbi_image_free(void *retval_from_stbi_load)
+{
+ STBI_FREE(retval_from_stbi_load);
+}
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp);
+#endif
+
+#ifndef STBI_NO_HDR
+static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp);
+#endif
+
+static int stbi__vertically_flip_on_load = 0;
+
+STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip)
+{
+ stbi__vertically_flip_on_load = flag_true_if_should_flip;
+}
+
+static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)
+{
+ memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields
+ ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed
+ ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order
+ ri->num_channels = 0;
+
+ #ifndef STBI_NO_JPEG
+ if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri);
+ #endif
+ #ifndef STBI_NO_PNG
+ if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri);
+ #endif
+ #ifndef STBI_NO_BMP
+ if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri);
+ #endif
+ #ifndef STBI_NO_GIF
+ if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri);
+ #endif
+ #ifndef STBI_NO_PSD
+ if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc);
+ #endif
+ #ifndef STBI_NO_PIC
+ if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri);
+ #endif
+ #ifndef STBI_NO_PNM
+ if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri);
+ #endif
+
+ #ifndef STBI_NO_HDR
+ if (stbi__hdr_test(s)) {
+ float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri);
+ return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp);
+ }
+ #endif
+
+ #ifndef STBI_NO_TGA
+ // test tga last because it's a crappy test!
+ if (stbi__tga_test(s))
+ return stbi__tga_load(s,x,y,comp,req_comp, ri);
+ #endif
+
+ return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt");
+}
+
+static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels)
+{
+ int i;
+ int img_len = w * h * channels;
+ stbi_uc *reduced;
+
+ reduced = (stbi_uc *) stbi__malloc(img_len);
+ if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory");
+
+ for (i = 0; i < img_len; ++i)
+ reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling
+
+ STBI_FREE(orig);
+ return reduced;
+}
+
+static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels)
+{
+ int i;
+ int img_len = w * h * channels;
+ stbi__uint16 *enlarged;
+
+ enlarged = (stbi__uint16 *) stbi__malloc(img_len*2);
+ if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory");
+
+ for (i = 0; i < img_len; ++i)
+ enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff
+
+ STBI_FREE(orig);
+ return enlarged;
+}
+
+static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel)
+{
+ int row;
+ size_t bytes_per_row = (size_t)w * bytes_per_pixel;
+ stbi_uc temp[2048];
+ stbi_uc *bytes = (stbi_uc *)image;
+
+ for (row = 0; row < (h>>1); row++) {
+ stbi_uc *row0 = bytes + row*bytes_per_row;
+ stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row;
+ // swap row0 with row1
+ size_t bytes_left = bytes_per_row;
+ while (bytes_left) {
+ size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp);
+ memcpy(temp, row0, bytes_copy);
+ memcpy(row0, row1, bytes_copy);
+ memcpy(row1, temp, bytes_copy);
+ row0 += bytes_copy;
+ row1 += bytes_copy;
+ bytes_left -= bytes_copy;
+ }
+ }
+}
+
+static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel)
+{
+ int slice;
+ int slice_size = w * h * bytes_per_pixel;
+
+ stbi_uc *bytes = (stbi_uc *)image;
+ for (slice = 0; slice < z; ++slice) {
+ stbi__vertical_flip(bytes, w, h, bytes_per_pixel);
+ bytes += slice_size;
+ }
+}
+
+static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__result_info ri;
+ void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8);
+
+ if (result == NULL)
+ return NULL;
+
+ if (ri.bits_per_channel != 8) {
+ STBI_ASSERT(ri.bits_per_channel == 16);
+ result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp);
+ ri.bits_per_channel = 8;
+ }
+
+ // @TODO: move stbi__convert_format to here
+
+ if (stbi__vertically_flip_on_load) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc));
+ }
+
+ return (unsigned char *) result;
+}
+
+static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__result_info ri;
+ void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16);
+
+ if (result == NULL)
+ return NULL;
+
+ if (ri.bits_per_channel != 16) {
+ STBI_ASSERT(ri.bits_per_channel == 8);
+ result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp);
+ ri.bits_per_channel = 16;
+ }
+
+ // @TODO: move stbi__convert_format16 to here
+ // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision
+
+ if (stbi__vertically_flip_on_load) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16));
+ }
+
+ return (stbi__uint16 *) result;
+}
+
+#if !defined(STBI_NO_HDR) || !defined(STBI_NO_LINEAR)
+static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp)
+{
+ if (stbi__vertically_flip_on_load && result != NULL) {
+ int channels = req_comp ? req_comp : *comp;
+ stbi__vertical_flip(result, *x, *y, channels * sizeof(float));
+ }
+}
+#endif
+
+#ifndef STBI_NO_STDIO
+
+static FILE *stbi__fopen(char const *filename, char const *mode)
+{
+ FILE *f;
+#if defined(_MSC_VER) && _MSC_VER >= 1400
+ if (0 != fopen_s(&f, filename, mode))
+ f=0;
+#else
+ f = fopen(filename, mode);
+#endif
+ return f;
+}
+
+
+STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ unsigned char *result;
+ if (!f) return stbi__errpuc("can't fopen", "Unable to open file");
+ result = stbi_load_from_file(f,x,y,comp,req_comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ unsigned char *result;
+ stbi__context s;
+ stbi__start_file(&s,f);
+ result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);
+ if (result) {
+ // need to 'unget' all the characters in the IO buffer
+ fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR);
+ }
+ return result;
+}
+
+STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__uint16 *result;
+ stbi__context s;
+ stbi__start_file(&s,f);
+ result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp);
+ if (result) {
+ // need to 'unget' all the characters in the IO buffer
+ fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR);
+ }
+ return result;
+}
+
+STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ stbi__uint16 *result;
+ if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file");
+ result = stbi_load_from_file_16(f,x,y,comp,req_comp);
+ fclose(f);
+ return result;
+}
+
+
+#endif //!STBI_NO_STDIO
+
+STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels)
+{
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+ return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels);
+}
+
+STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user);
+ return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels);
+}
+
+STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+ return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);
+}
+
+STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user);
+ return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp);
+}
+
+#ifndef STBI_NO_GIF
+STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp)
+{
+ unsigned char *result;
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+
+ result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp);
+ if (stbi__vertically_flip_on_load) {
+ stbi__vertical_flip_slices( result, *x, *y, *z, *comp );
+ }
+
+ return result;
+}
+#endif
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp)
+{
+ unsigned char *data;
+ #ifndef STBI_NO_HDR
+ if (stbi__hdr_test(s)) {
+ stbi__result_info ri;
+ float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri);
+ if (hdr_data)
+ stbi__float_postprocess(hdr_data,x,y,comp,req_comp);
+ return hdr_data;
+ }
+ #endif
+ data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp);
+ if (data)
+ return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp);
+ return stbi__errpf("unknown image type", "Image not of any known type, or corrupt");
+}
+
+STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+ return stbi__loadf_main(&s,x,y,comp,req_comp);
+}
+
+STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user);
+ return stbi__loadf_main(&s,x,y,comp,req_comp);
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp)
+{
+ float *result;
+ FILE *f = stbi__fopen(filename, "rb");
+ if (!f) return stbi__errpf("can't fopen", "Unable to open file");
+ result = stbi_loadf_from_file(f,x,y,comp,req_comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp)
+{
+ stbi__context s;
+ stbi__start_file(&s,f);
+ return stbi__loadf_main(&s,x,y,comp,req_comp);
+}
+#endif // !STBI_NO_STDIO
+
+#endif // !STBI_NO_LINEAR
+
+// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is
+// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always
+// reports false!
+
+STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len)
+{
+ #ifndef STBI_NO_HDR
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+ return stbi__hdr_test(&s);
+ #else
+ STBI_NOTUSED(buffer);
+ STBI_NOTUSED(len);
+ return 0;
+ #endif
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_is_hdr (char const *filename)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result=0;
+ if (f) {
+ result = stbi_is_hdr_from_file(f);
+ fclose(f);
+ }
+ return result;
+}
+
+STBIDEF int stbi_is_hdr_from_file(FILE *f)
+{
+ #ifndef STBI_NO_HDR
+ long pos = ftell(f);
+ int res;
+ stbi__context s;
+ stbi__start_file(&s,f);
+ res = stbi__hdr_test(&s);
+ fseek(f, pos, SEEK_SET);
+ return res;
+ #else
+ STBI_NOTUSED(f);
+ return 0;
+ #endif
+}
+#endif // !STBI_NO_STDIO
+
+STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user)
+{
+ #ifndef STBI_NO_HDR
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user);
+ return stbi__hdr_test(&s);
+ #else
+ STBI_NOTUSED(clbk);
+ STBI_NOTUSED(user);
+ return 0;
+ #endif
+}
+
+#ifndef STBI_NO_LINEAR
+static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f;
+
+STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; }
+STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; }
+#endif
+
+static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f;
+
+STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; }
+STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; }
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// Common code used by all image loaders
+//
+
+enum
+{
+ STBI__SCAN_load=0,
+ STBI__SCAN_type,
+ STBI__SCAN_header
+};
+
+static void stbi__refill_buffer(stbi__context *s)
+{
+ int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen);
+ if (n == 0) {
+ // at end of file, treat same as if from memory, but need to handle case
+ // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file
+ s->read_from_callbacks = 0;
+ s->img_buffer = s->buffer_start;
+ s->img_buffer_end = s->buffer_start+1;
+ *s->img_buffer = 0;
+ } else {
+ s->img_buffer = s->buffer_start;
+ s->img_buffer_end = s->buffer_start + n;
+ }
+}
+
+stbi_inline static stbi_uc stbi__get8(stbi__context *s)
+{
+ if (s->img_buffer < s->img_buffer_end)
+ return *s->img_buffer++;
+ if (s->read_from_callbacks) {
+ stbi__refill_buffer(s);
+ return *s->img_buffer++;
+ }
+ return 0;
+}
+
+stbi_inline static int stbi__at_eof(stbi__context *s)
+{
+ if (s->io.read) {
+ if (!(s->io.eof)(s->io_user_data)) return 0;
+ // if feof() is true, check if buffer = end
+ // special case: we've only got the special 0 character at the end
+ if (s->read_from_callbacks == 0) return 1;
+ }
+
+ return s->img_buffer >= s->img_buffer_end;
+}
+
+static void stbi__skip(stbi__context *s, int n)
+{
+ if (n < 0) {
+ s->img_buffer = s->img_buffer_end;
+ return;
+ }
+ if (s->io.read) {
+ int blen = (int) (s->img_buffer_end - s->img_buffer);
+ if (blen < n) {
+ s->img_buffer = s->img_buffer_end;
+ (s->io.skip)(s->io_user_data, n - blen);
+ return;
+ }
+ }
+ s->img_buffer += n;
+}
+
+static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n)
+{
+ if (s->io.read) {
+ int blen = (int) (s->img_buffer_end - s->img_buffer);
+ if (blen < n) {
+ int res, count;
+
+ memcpy(buffer, s->img_buffer, blen);
+
+ count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen);
+ res = (count == (n-blen));
+ s->img_buffer = s->img_buffer_end;
+ return res;
+ }
+ }
+
+ if (s->img_buffer+n <= s->img_buffer_end) {
+ memcpy(buffer, s->img_buffer, n);
+ s->img_buffer += n;
+ return 1;
+ } else
+ return 0;
+}
+
+static int stbi__get16be(stbi__context *s)
+{
+ int z = stbi__get8(s);
+ return (z << 8) + stbi__get8(s);
+}
+
+static stbi__uint32 stbi__get32be(stbi__context *s)
+{
+ stbi__uint32 z = stbi__get16be(s);
+ return (z << 16) + stbi__get16be(s);
+}
+
+#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF)
+// nothing
+#else
+static int stbi__get16le(stbi__context *s)
+{
+ int z = stbi__get8(s);
+ return z + (stbi__get8(s) << 8);
+}
+#endif
+
+#ifndef STBI_NO_BMP
+static stbi__uint32 stbi__get32le(stbi__context *s)
+{
+ stbi__uint32 z = stbi__get16le(s);
+ return z + (stbi__get16le(s) << 16);
+}
+#endif
+
+#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// generic converter from built-in img_n to req_comp
+// individual types do this automatically as much as possible (e.g. jpeg
+// does all cases internally since it needs to colorspace convert anyway,
+// and it never has alpha, so very few cases ). png can automatically
+// interleave an alpha=255 channel, but falls back to this for other cases
+//
+// assume data buffer is malloced, so malloc a new one and free that one
+// only failure mode is malloc failing
+
+static stbi_uc stbi__compute_y(int r, int g, int b)
+{
+ return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8);
+}
+
+static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y)
+{
+ int i,j;
+ unsigned char *good;
+
+ if (req_comp == img_n) return data;
+ STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
+
+ good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0);
+ if (good == NULL) {
+ STBI_FREE(data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ for (j=0; j < (int) y; ++j) {
+ unsigned char *src = data + j * x * img_n ;
+ unsigned char *dest = good + j * x * req_comp;
+
+ #define STBI__COMBO(a,b) ((a)*8+(b))
+ #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
+ // convert source image with img_n components to one with req_comp components;
+ // avoid switch per pixel, so use switch per scanline and massive macros
+ switch (STBI__COMBO(img_n, req_comp)) {
+ STBI__CASE(1,2) { dest[0]=src[0], dest[1]=255; } break;
+ STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break;
+ STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; } break;
+ STBI__CASE(2,1) { dest[0]=src[0]; } break;
+ STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break;
+ STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } break;
+ STBI__CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; } break;
+ STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break;
+ STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; } break;
+ STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break;
+ STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; } break;
+ STBI__CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } break;
+ default: STBI_ASSERT(0);
+ }
+ #undef STBI__CASE
+ }
+
+ STBI_FREE(data);
+ return good;
+}
+
+static stbi__uint16 stbi__compute_y_16(int r, int g, int b)
+{
+ return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8);
+}
+
+static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y)
+{
+ int i,j;
+ stbi__uint16 *good;
+
+ if (req_comp == img_n) return data;
+ STBI_ASSERT(req_comp >= 1 && req_comp <= 4);
+
+ good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2);
+ if (good == NULL) {
+ STBI_FREE(data);
+ return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory");
+ }
+
+ for (j=0; j < (int) y; ++j) {
+ stbi__uint16 *src = data + j * x * img_n ;
+ stbi__uint16 *dest = good + j * x * req_comp;
+
+ #define STBI__COMBO(a,b) ((a)*8+(b))
+ #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
+ // convert source image with img_n components to one with req_comp components;
+ // avoid switch per pixel, so use switch per scanline and massive macros
+ switch (STBI__COMBO(img_n, req_comp)) {
+ STBI__CASE(1,2) { dest[0]=src[0], dest[1]=0xffff; } break;
+ STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break;
+ STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=0xffff; } break;
+ STBI__CASE(2,1) { dest[0]=src[0]; } break;
+ STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break;
+ STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; } break;
+ STBI__CASE(3,4) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=0xffff; } break;
+ STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break;
+ STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]), dest[1] = 0xffff; } break;
+ STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break;
+ STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]), dest[1] = src[3]; } break;
+ STBI__CASE(4,3) { dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; } break;
+ default: STBI_ASSERT(0);
+ }
+ #undef STBI__CASE
+ }
+
+ STBI_FREE(data);
+ return good;
+}
+
+#ifndef STBI_NO_LINEAR
+static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp)
+{
+ int i,k,n;
+ float *output;
+ if (!data) return NULL;
+ output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0);
+ if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); }
+ // compute number of non-alpha components
+ if (comp & 1) n = comp; else n = comp-1;
+ for (i=0; i < x*y; ++i) {
+ for (k=0; k < n; ++k) {
+ output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale);
+ }
+ if (k < comp) output[i*comp + k] = data[i*comp+k]/255.0f;
+ }
+ STBI_FREE(data);
+ return output;
+}
+#endif
+
+#ifndef STBI_NO_HDR
+#define stbi__float2int(x) ((int) (x))
+static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp)
+{
+ int i,k,n;
+ stbi_uc *output;
+ if (!data) return NULL;
+ output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0);
+ if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); }
+ // compute number of non-alpha components
+ if (comp & 1) n = comp; else n = comp-1;
+ for (i=0; i < x*y; ++i) {
+ for (k=0; k < n; ++k) {
+ float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f;
+ if (z < 0) z = 0;
+ if (z > 255) z = 255;
+ output[i*comp + k] = (stbi_uc) stbi__float2int(z);
+ }
+ if (k < comp) {
+ float z = data[i*comp+k] * 255 + 0.5f;
+ if (z < 0) z = 0;
+ if (z > 255) z = 255;
+ output[i*comp + k] = (stbi_uc) stbi__float2int(z);
+ }
+ }
+ STBI_FREE(data);
+ return output;
+}
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// "baseline" JPEG/JFIF decoder
+//
+// simple implementation
+// - doesn't support delayed output of y-dimension
+// - simple interface (only one output format: 8-bit interleaved RGB)
+// - doesn't try to recover corrupt jpegs
+// - doesn't allow partial loading, loading multiple at once
+// - still fast on x86 (copying globals into locals doesn't help x86)
+// - allocates lots of intermediate memory (full size of all components)
+// - non-interleaved case requires this anyway
+// - allows good upsampling (see next)
+// high-quality
+// - upsampled channels are bilinearly interpolated, even across blocks
+// - quality integer IDCT derived from IJG's 'slow'
+// performance
+// - fast huffman; reasonable integer IDCT
+// - some SIMD kernels for common paths on targets with SSE2/NEON
+// - uses a lot of intermediate memory, could cache poorly
+
+#ifndef STBI_NO_JPEG
+
+// huffman decoding acceleration
+#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache
+
+typedef struct
+{
+ stbi_uc fast[1 << FAST_BITS];
+ // weirdly, repacking this into AoS is a 10% speed loss, instead of a win
+ stbi__uint16 code[256];
+ stbi_uc values[256];
+ stbi_uc size[257];
+ unsigned int maxcode[18];
+ int delta[17]; // old 'firstsymbol' - old 'firstcode'
+} stbi__huffman;
+
+typedef struct
+{
+ stbi__context *s;
+ stbi__huffman huff_dc[4];
+ stbi__huffman huff_ac[4];
+ stbi__uint16 dequant[4][64];
+ stbi__int16 fast_ac[4][1 << FAST_BITS];
+
+// sizes for components, interleaved MCUs
+ int img_h_max, img_v_max;
+ int img_mcu_x, img_mcu_y;
+ int img_mcu_w, img_mcu_h;
+
+// definition of jpeg image component
+ struct
+ {
+ int id;
+ int h,v;
+ int tq;
+ int hd,ha;
+ int dc_pred;
+
+ int x,y,w2,h2;
+ stbi_uc *data;
+ void *raw_data, *raw_coeff;
+ stbi_uc *linebuf;
+ short *coeff; // progressive only
+ int coeff_w, coeff_h; // number of 8x8 coefficient blocks
+ } img_comp[4];
+
+ stbi__uint32 code_buffer; // jpeg entropy-coded buffer
+ int code_bits; // number of valid bits
+ unsigned char marker; // marker seen while filling entropy buffer
+ int nomore; // flag if we saw a marker so must stop
+
+ int progressive;
+ int spec_start;
+ int spec_end;
+ int succ_high;
+ int succ_low;
+ int eob_run;
+ int jfif;
+ int app14_color_transform; // Adobe APP14 tag
+ int rgb;
+
+ int scan_n, order[4];
+ int restart_interval, todo;
+
+// kernels
+ void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]);
+ void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step);
+ stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs);
+} stbi__jpeg;
+
+static int stbi__build_huffman(stbi__huffman *h, int *count)
+{
+ int i,j,k=0;
+ unsigned int code;
+ // build size list for each symbol (from JPEG spec)
+ for (i=0; i < 16; ++i)
+ for (j=0; j < count[i]; ++j)
+ h->size[k++] = (stbi_uc) (i+1);
+ h->size[k] = 0;
+
+ // compute actual symbols (from jpeg spec)
+ code = 0;
+ k = 0;
+ for(j=1; j <= 16; ++j) {
+ // compute delta to add to code to compute symbol id
+ h->delta[j] = k - code;
+ if (h->size[k] == j) {
+ while (h->size[k] == j)
+ h->code[k++] = (stbi__uint16) (code++);
+ if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG");
+ }
+ // compute largest code + 1 for this size, preshifted as needed later
+ h->maxcode[j] = code << (16-j);
+ code <<= 1;
+ }
+ h->maxcode[j] = 0xffffffff;
+
+ // build non-spec acceleration table; 255 is flag for not-accelerated
+ memset(h->fast, 255, 1 << FAST_BITS);
+ for (i=0; i < k; ++i) {
+ int s = h->size[i];
+ if (s <= FAST_BITS) {
+ int c = h->code[i] << (FAST_BITS-s);
+ int m = 1 << (FAST_BITS-s);
+ for (j=0; j < m; ++j) {
+ h->fast[c+j] = (stbi_uc) i;
+ }
+ }
+ }
+ return 1;
+}
+
+// build a table that decodes both magnitude and value of small ACs in
+// one go.
+static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h)
+{
+ int i;
+ for (i=0; i < (1 << FAST_BITS); ++i) {
+ stbi_uc fast = h->fast[i];
+ fast_ac[i] = 0;
+ if (fast < 255) {
+ int rs = h->values[fast];
+ int run = (rs >> 4) & 15;
+ int magbits = rs & 15;
+ int len = h->size[fast];
+
+ if (magbits && len + magbits <= FAST_BITS) {
+ // magnitude code followed by receive_extend code
+ int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits);
+ int m = 1 << (magbits - 1);
+ if (k < m) k += (~0U << magbits) + 1;
+ // if the result is small enough, we can fit it in fast_ac table
+ if (k >= -128 && k <= 127)
+ fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits));
+ }
+ }
+ }
+}
+
+static void stbi__grow_buffer_unsafe(stbi__jpeg *j)
+{
+ do {
+ unsigned int b = j->nomore ? 0 : stbi__get8(j->s);
+ if (b == 0xff) {
+ int c = stbi__get8(j->s);
+ while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes
+ if (c != 0) {
+ j->marker = (unsigned char) c;
+ j->nomore = 1;
+ return;
+ }
+ }
+ j->code_buffer |= b << (24 - j->code_bits);
+ j->code_bits += 8;
+ } while (j->code_bits <= 24);
+}
+
+// (1 << n) - 1
+static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535};
+
+// decode a jpeg huffman value from the bitstream
+stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h)
+{
+ unsigned int temp;
+ int c,k;
+
+ if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);
+
+ // look at the top FAST_BITS and determine what symbol ID it is,
+ // if the code is <= FAST_BITS
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1);
+ k = h->fast[c];
+ if (k < 255) {
+ int s = h->size[k];
+ if (s > j->code_bits)
+ return -1;
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ return h->values[k];
+ }
+
+ // naive test is to shift the code_buffer down so k bits are
+ // valid, then test against maxcode. To speed this up, we've
+ // preshifted maxcode left so that it has (16-k) 0s at the
+ // end; in other words, regardless of the number of bits, it
+ // wants to be compared against something shifted to have 16;
+ // that way we don't need to shift inside the loop.
+ temp = j->code_buffer >> 16;
+ for (k=FAST_BITS+1 ; ; ++k)
+ if (temp < h->maxcode[k])
+ break;
+ if (k == 17) {
+ // error! code not found
+ j->code_bits -= 16;
+ return -1;
+ }
+
+ if (k > j->code_bits)
+ return -1;
+
+ // convert the huffman code to the symbol id
+ c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k];
+ STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]);
+
+ // convert the id to a symbol
+ j->code_bits -= k;
+ j->code_buffer <<= k;
+ return h->values[c];
+}
+
+// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j);
+
+ sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB
+ k = stbi_lrot(j->code_buffer, n);
+ STBI_ASSERT(n >= 0 && n < (int) (sizeof(stbi__bmask)/sizeof(*stbi__bmask)));
+ j->code_buffer = k & ~stbi__bmask[n];
+ k &= stbi__bmask[n];
+ j->code_bits -= n;
+ return k + (stbi__jbias[n] & ~sgn);
+}
+
+// get some unsigned bits
+stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n)
+{
+ unsigned int k;
+ if (j->code_bits < n) stbi__grow_buffer_unsafe(j);
+ k = stbi_lrot(j->code_buffer, n);
+ j->code_buffer = k & ~stbi__bmask[n];
+ k &= stbi__bmask[n];
+ j->code_bits -= n;
+ return k;
+}
+
+stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j)
+{
+ unsigned int k;
+ if (j->code_bits < 1) stbi__grow_buffer_unsafe(j);
+ k = j->code_buffer;
+ j->code_buffer <<= 1;
+ --j->code_bits;
+ return k & 0x80000000;
+}
+
+// given a value that's at position X in the zigzag stream,
+// where does it appear in the 8x8 matrix coded as row-major?
+static const stbi_uc stbi__jpeg_dezigzag[64+15] =
+{
+ 0, 1, 8, 16, 9, 2, 3, 10,
+ 17, 24, 32, 25, 18, 11, 4, 5,
+ 12, 19, 26, 33, 40, 48, 41, 34,
+ 27, 20, 13, 6, 7, 14, 21, 28,
+ 35, 42, 49, 56, 57, 50, 43, 36,
+ 29, 22, 15, 23, 30, 37, 44, 51,
+ 58, 59, 52, 45, 38, 31, 39, 46,
+ 53, 60, 61, 54, 47, 55, 62, 63,
+ // let corrupt input sample past end
+ 63, 63, 63, 63, 63, 63, 63, 63,
+ 63, 63, 63, 63, 63, 63, 63
+};
+
+// decode one 64-entry block--
+static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant)
+{
+ int diff,dc,k;
+ int t;
+
+ if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);
+ t = stbi__jpeg_huff_decode(j, hdc);
+ if (t < 0) return stbi__err("bad huffman code","Corrupt JPEG");
+
+ // 0 all the ac values now so we can do it 32-bits at a time
+ memset(data,0,64*sizeof(data[0]));
+
+ diff = t ? stbi__extend_receive(j, t) : 0;
+ dc = j->img_comp[b].dc_pred + diff;
+ j->img_comp[b].dc_pred = dc;
+ data[0] = (short) (dc * dequant[0]);
+
+ // decode AC components, see JPEG spec
+ k = 1;
+ do {
+ unsigned int zig;
+ int c,r,s;
+ if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1);
+ r = fac[c];
+ if (r) { // fast-AC path
+ k += (r >> 4) & 15; // run
+ s = r & 15; // combined length
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ // decode into unzigzag'd location
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short) ((r >> 8) * dequant[zig]);
+ } else {
+ int rs = stbi__jpeg_huff_decode(j, hac);
+ if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (rs != 0xf0) break; // end block
+ k += 16;
+ } else {
+ k += r;
+ // decode into unzigzag'd location
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]);
+ }
+ }
+ } while (k < 64);
+ return 1;
+}
+
+static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b)
+{
+ int diff,dc;
+ int t;
+ if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);
+
+ if (j->succ_high == 0) {
+ // first scan for DC coefficient, must be first
+ memset(data,0,64*sizeof(data[0])); // 0 all the ac values now
+ t = stbi__jpeg_huff_decode(j, hdc);
+ diff = t ? stbi__extend_receive(j, t) : 0;
+
+ dc = j->img_comp[b].dc_pred + diff;
+ j->img_comp[b].dc_pred = dc;
+ data[0] = (short) (dc << j->succ_low);
+ } else {
+ // refinement scan for DC coefficient
+ if (stbi__jpeg_get_bit(j))
+ data[0] += (short) (1 << j->succ_low);
+ }
+ return 1;
+}
+
+// @OPTIMIZE: store non-zigzagged during the decode passes,
+// and only de-zigzag when dequantizing
+static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac)
+{
+ int k;
+ if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG");
+
+ if (j->succ_high == 0) {
+ int shift = j->succ_low;
+
+ if (j->eob_run) {
+ --j->eob_run;
+ return 1;
+ }
+
+ k = j->spec_start;
+ do {
+ unsigned int zig;
+ int c,r,s;
+ if (j->code_bits < 16) stbi__grow_buffer_unsafe(j);
+ c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1);
+ r = fac[c];
+ if (r) { // fast-AC path
+ k += (r >> 4) & 15; // run
+ s = r & 15; // combined length
+ j->code_buffer <<= s;
+ j->code_bits -= s;
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short) ((r >> 8) << shift);
+ } else {
+ int rs = stbi__jpeg_huff_decode(j, hac);
+ if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (r < 15) {
+ j->eob_run = (1 << r);
+ if (r)
+ j->eob_run += stbi__jpeg_get_bits(j, r);
+ --j->eob_run;
+ break;
+ }
+ k += 16;
+ } else {
+ k += r;
+ zig = stbi__jpeg_dezigzag[k++];
+ data[zig] = (short) (stbi__extend_receive(j,s) << shift);
+ }
+ }
+ } while (k <= j->spec_end);
+ } else {
+ // refinement scan for these AC coefficients
+
+ short bit = (short) (1 << j->succ_low);
+
+ if (j->eob_run) {
+ --j->eob_run;
+ for (k = j->spec_start; k <= j->spec_end; ++k) {
+ short *p = &data[stbi__jpeg_dezigzag[k]];
+ if (*p != 0)
+ if (stbi__jpeg_get_bit(j))
+ if ((*p & bit)==0) {
+ if (*p > 0)
+ *p += bit;
+ else
+ *p -= bit;
+ }
+ }
+ } else {
+ k = j->spec_start;
+ do {
+ int r,s;
+ int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh
+ if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG");
+ s = rs & 15;
+ r = rs >> 4;
+ if (s == 0) {
+ if (r < 15) {
+ j->eob_run = (1 << r) - 1;
+ if (r)
+ j->eob_run += stbi__jpeg_get_bits(j, r);
+ r = 64; // force end of block
+ } else {
+ // r=15 s=0 should write 16 0s, so we just do
+ // a run of 15 0s and then write s (which is 0),
+ // so we don't have to do anything special here
+ }
+ } else {
+ if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG");
+ // sign bit
+ if (stbi__jpeg_get_bit(j))
+ s = bit;
+ else
+ s = -bit;
+ }
+
+ // advance by r
+ while (k <= j->spec_end) {
+ short *p = &data[stbi__jpeg_dezigzag[k++]];
+ if (*p != 0) {
+ if (stbi__jpeg_get_bit(j))
+ if ((*p & bit)==0) {
+ if (*p > 0)
+ *p += bit;
+ else
+ *p -= bit;
+ }
+ } else {
+ if (r == 0) {
+ *p = (short) s;
+ break;
+ }
+ --r;
+ }
+ }
+ } while (k <= j->spec_end);
+ }
+ }
+ return 1;
+}
+
+// take a -128..127 value and stbi__clamp it and convert to 0..255
+stbi_inline static stbi_uc stbi__clamp(int x)
+{
+ // trick to use a single test to catch both cases
+ if ((unsigned int) x > 255) {
+ if (x < 0) return 0;
+ if (x > 255) return 255;
+ }
+ return (stbi_uc) x;
+}
+
+#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5)))
+#define stbi__fsh(x) ((x) * 4096)
+
+// derived from jidctint -- DCT_ISLOW
+#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \
+ int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \
+ p2 = s2; \
+ p3 = s6; \
+ p1 = (p2+p3) * stbi__f2f(0.5411961f); \
+ t2 = p1 + p3*stbi__f2f(-1.847759065f); \
+ t3 = p1 + p2*stbi__f2f( 0.765366865f); \
+ p2 = s0; \
+ p3 = s4; \
+ t0 = stbi__fsh(p2+p3); \
+ t1 = stbi__fsh(p2-p3); \
+ x0 = t0+t3; \
+ x3 = t0-t3; \
+ x1 = t1+t2; \
+ x2 = t1-t2; \
+ t0 = s7; \
+ t1 = s5; \
+ t2 = s3; \
+ t3 = s1; \
+ p3 = t0+t2; \
+ p4 = t1+t3; \
+ p1 = t0+t3; \
+ p2 = t1+t2; \
+ p5 = (p3+p4)*stbi__f2f( 1.175875602f); \
+ t0 = t0*stbi__f2f( 0.298631336f); \
+ t1 = t1*stbi__f2f( 2.053119869f); \
+ t2 = t2*stbi__f2f( 3.072711026f); \
+ t3 = t3*stbi__f2f( 1.501321110f); \
+ p1 = p5 + p1*stbi__f2f(-0.899976223f); \
+ p2 = p5 + p2*stbi__f2f(-2.562915447f); \
+ p3 = p3*stbi__f2f(-1.961570560f); \
+ p4 = p4*stbi__f2f(-0.390180644f); \
+ t3 += p1+p4; \
+ t2 += p2+p3; \
+ t1 += p2+p4; \
+ t0 += p1+p3;
+
+static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64])
+{
+ int i,val[64],*v=val;
+ stbi_uc *o;
+ short *d = data;
+
+ // columns
+ for (i=0; i < 8; ++i,++d, ++v) {
+ // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing
+ if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0
+ && d[40]==0 && d[48]==0 && d[56]==0) {
+ // no shortcut 0 seconds
+ // (1|2|3|4|5|6|7)==0 0 seconds
+ // all separate -0.047 seconds
+ // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds
+ int dcterm = d[0]*4;
+ v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm;
+ } else {
+ STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56])
+ // constants scaled things up by 1<<12; let's bring them back
+ // down, but keep 2 extra bits of precision
+ x0 += 512; x1 += 512; x2 += 512; x3 += 512;
+ v[ 0] = (x0+t3) >> 10;
+ v[56] = (x0-t3) >> 10;
+ v[ 8] = (x1+t2) >> 10;
+ v[48] = (x1-t2) >> 10;
+ v[16] = (x2+t1) >> 10;
+ v[40] = (x2-t1) >> 10;
+ v[24] = (x3+t0) >> 10;
+ v[32] = (x3-t0) >> 10;
+ }
+ }
+
+ for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) {
+ // no fast case since the first 1D IDCT spread components out
+ STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7])
+ // constants scaled things up by 1<<12, plus we had 1<<2 from first
+ // loop, plus horizontal and vertical each scale by sqrt(8) so together
+ // we've got an extra 1<<3, so 1<<17 total we need to remove.
+ // so we want to round that, which means adding 0.5 * 1<<17,
+ // aka 65536. Also, we'll end up with -128 to 127 that we want
+ // to encode as 0..255 by adding 128, so we'll add that before the shift
+ x0 += 65536 + (128<<17);
+ x1 += 65536 + (128<<17);
+ x2 += 65536 + (128<<17);
+ x3 += 65536 + (128<<17);
+ // tried computing the shifts into temps, or'ing the temps to see
+ // if any were out of range, but that was slower
+ o[0] = stbi__clamp((x0+t3) >> 17);
+ o[7] = stbi__clamp((x0-t3) >> 17);
+ o[1] = stbi__clamp((x1+t2) >> 17);
+ o[6] = stbi__clamp((x1-t2) >> 17);
+ o[2] = stbi__clamp((x2+t1) >> 17);
+ o[5] = stbi__clamp((x2-t1) >> 17);
+ o[3] = stbi__clamp((x3+t0) >> 17);
+ o[4] = stbi__clamp((x3-t0) >> 17);
+ }
+}
+
+#ifdef STBI_SSE2
+// sse2 integer IDCT. not the fastest possible implementation but it
+// produces bit-identical results to the generic C version so it's
+// fully "transparent".
+static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
+{
+ // This is constructed to match our regular (generic) integer IDCT exactly.
+ __m128i row0, row1, row2, row3, row4, row5, row6, row7;
+ __m128i tmp;
+
+ // dot product constant: even elems=x, odd elems=y
+ #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y))
+
+ // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit)
+ // out(1) = c1[even]*x + c1[odd]*y
+ #define dct_rot(out0,out1, x,y,c0,c1) \
+ __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \
+ __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \
+ __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \
+ __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \
+ __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \
+ __m128i out1##_h = _mm_madd_epi16(c0##hi, c1)
+
+ // out = in << 12 (in 16-bit, out 32-bit)
+ #define dct_widen(out, in) \
+ __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \
+ __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4)
+
+ // wide add
+ #define dct_wadd(out, a, b) \
+ __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \
+ __m128i out##_h = _mm_add_epi32(a##_h, b##_h)
+
+ // wide sub
+ #define dct_wsub(out, a, b) \
+ __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \
+ __m128i out##_h = _mm_sub_epi32(a##_h, b##_h)
+
+ // butterfly a/b, add bias, then shift by "s" and pack
+ #define dct_bfly32o(out0, out1, a,b,bias,s) \
+ { \
+ __m128i abiased_l = _mm_add_epi32(a##_l, bias); \
+ __m128i abiased_h = _mm_add_epi32(a##_h, bias); \
+ dct_wadd(sum, abiased, b); \
+ dct_wsub(dif, abiased, b); \
+ out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \
+ out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \
+ }
+
+ // 8-bit interleave step (for transposes)
+ #define dct_interleave8(a, b) \
+ tmp = a; \
+ a = _mm_unpacklo_epi8(a, b); \
+ b = _mm_unpackhi_epi8(tmp, b)
+
+ // 16-bit interleave step (for transposes)
+ #define dct_interleave16(a, b) \
+ tmp = a; \
+ a = _mm_unpacklo_epi16(a, b); \
+ b = _mm_unpackhi_epi16(tmp, b)
+
+ #define dct_pass(bias,shift) \
+ { \
+ /* even part */ \
+ dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \
+ __m128i sum04 = _mm_add_epi16(row0, row4); \
+ __m128i dif04 = _mm_sub_epi16(row0, row4); \
+ dct_widen(t0e, sum04); \
+ dct_widen(t1e, dif04); \
+ dct_wadd(x0, t0e, t3e); \
+ dct_wsub(x3, t0e, t3e); \
+ dct_wadd(x1, t1e, t2e); \
+ dct_wsub(x2, t1e, t2e); \
+ /* odd part */ \
+ dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \
+ dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \
+ __m128i sum17 = _mm_add_epi16(row1, row7); \
+ __m128i sum35 = _mm_add_epi16(row3, row5); \
+ dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \
+ dct_wadd(x4, y0o, y4o); \
+ dct_wadd(x5, y1o, y5o); \
+ dct_wadd(x6, y2o, y5o); \
+ dct_wadd(x7, y3o, y4o); \
+ dct_bfly32o(row0,row7, x0,x7,bias,shift); \
+ dct_bfly32o(row1,row6, x1,x6,bias,shift); \
+ dct_bfly32o(row2,row5, x2,x5,bias,shift); \
+ dct_bfly32o(row3,row4, x3,x4,bias,shift); \
+ }
+
+ __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f));
+ __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f));
+ __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f));
+ __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f));
+ __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f));
+ __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f));
+ __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f));
+ __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f));
+
+ // rounding biases in column/row passes, see stbi__idct_block for explanation.
+ __m128i bias_0 = _mm_set1_epi32(512);
+ __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17));
+
+ // load
+ row0 = _mm_load_si128((const __m128i *) (data + 0*8));
+ row1 = _mm_load_si128((const __m128i *) (data + 1*8));
+ row2 = _mm_load_si128((const __m128i *) (data + 2*8));
+ row3 = _mm_load_si128((const __m128i *) (data + 3*8));
+ row4 = _mm_load_si128((const __m128i *) (data + 4*8));
+ row5 = _mm_load_si128((const __m128i *) (data + 5*8));
+ row6 = _mm_load_si128((const __m128i *) (data + 6*8));
+ row7 = _mm_load_si128((const __m128i *) (data + 7*8));
+
+ // column pass
+ dct_pass(bias_0, 10);
+
+ {
+ // 16bit 8x8 transpose pass 1
+ dct_interleave16(row0, row4);
+ dct_interleave16(row1, row5);
+ dct_interleave16(row2, row6);
+ dct_interleave16(row3, row7);
+
+ // transpose pass 2
+ dct_interleave16(row0, row2);
+ dct_interleave16(row1, row3);
+ dct_interleave16(row4, row6);
+ dct_interleave16(row5, row7);
+
+ // transpose pass 3
+ dct_interleave16(row0, row1);
+ dct_interleave16(row2, row3);
+ dct_interleave16(row4, row5);
+ dct_interleave16(row6, row7);
+ }
+
+ // row pass
+ dct_pass(bias_1, 17);
+
+ {
+ // pack
+ __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7
+ __m128i p1 = _mm_packus_epi16(row2, row3);
+ __m128i p2 = _mm_packus_epi16(row4, row5);
+ __m128i p3 = _mm_packus_epi16(row6, row7);
+
+ // 8bit 8x8 transpose pass 1
+ dct_interleave8(p0, p2); // a0e0a1e1...
+ dct_interleave8(p1, p3); // c0g0c1g1...
+
+ // transpose pass 2
+ dct_interleave8(p0, p1); // a0c0e0g0...
+ dct_interleave8(p2, p3); // b0d0f0h0...
+
+ // transpose pass 3
+ dct_interleave8(p0, p2); // a0b0c0d0...
+ dct_interleave8(p1, p3); // a4b4c4d4...
+
+ // store
+ _mm_storel_epi64((__m128i *) out, p0); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, p2); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, p1); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, p3); out += out_stride;
+ _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e));
+ }
+
+#undef dct_const
+#undef dct_rot
+#undef dct_widen
+#undef dct_wadd
+#undef dct_wsub
+#undef dct_bfly32o
+#undef dct_interleave8
+#undef dct_interleave16
+#undef dct_pass
+}
+
+#endif // STBI_SSE2
+
+#ifdef STBI_NEON
+
+// NEON integer IDCT. should produce bit-identical
+// results to the generic C version.
+static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64])
+{
+ int16x8_t row0, row1, row2, row3, row4, row5, row6, row7;
+
+ int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f));
+ int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f));
+ int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f));
+ int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f));
+ int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f));
+ int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f));
+ int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f));
+ int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f));
+ int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f));
+ int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f));
+ int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f));
+ int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f));
+
+#define dct_long_mul(out, inq, coeff) \
+ int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \
+ int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff)
+
+#define dct_long_mac(out, acc, inq, coeff) \
+ int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \
+ int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff)
+
+#define dct_widen(out, inq) \
+ int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \
+ int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12)
+
+// wide add
+#define dct_wadd(out, a, b) \
+ int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \
+ int32x4_t out##_h = vaddq_s32(a##_h, b##_h)
+
+// wide sub
+#define dct_wsub(out, a, b) \
+ int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \
+ int32x4_t out##_h = vsubq_s32(a##_h, b##_h)
+
+// butterfly a/b, then shift using "shiftop" by "s" and pack
+#define dct_bfly32o(out0,out1, a,b,shiftop,s) \
+ { \
+ dct_wadd(sum, a, b); \
+ dct_wsub(dif, a, b); \
+ out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \
+ out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \
+ }
+
+#define dct_pass(shiftop, shift) \
+ { \
+ /* even part */ \
+ int16x8_t sum26 = vaddq_s16(row2, row6); \
+ dct_long_mul(p1e, sum26, rot0_0); \
+ dct_long_mac(t2e, p1e, row6, rot0_1); \
+ dct_long_mac(t3e, p1e, row2, rot0_2); \
+ int16x8_t sum04 = vaddq_s16(row0, row4); \
+ int16x8_t dif04 = vsubq_s16(row0, row4); \
+ dct_widen(t0e, sum04); \
+ dct_widen(t1e, dif04); \
+ dct_wadd(x0, t0e, t3e); \
+ dct_wsub(x3, t0e, t3e); \
+ dct_wadd(x1, t1e, t2e); \
+ dct_wsub(x2, t1e, t2e); \
+ /* odd part */ \
+ int16x8_t sum15 = vaddq_s16(row1, row5); \
+ int16x8_t sum17 = vaddq_s16(row1, row7); \
+ int16x8_t sum35 = vaddq_s16(row3, row5); \
+ int16x8_t sum37 = vaddq_s16(row3, row7); \
+ int16x8_t sumodd = vaddq_s16(sum17, sum35); \
+ dct_long_mul(p5o, sumodd, rot1_0); \
+ dct_long_mac(p1o, p5o, sum17, rot1_1); \
+ dct_long_mac(p2o, p5o, sum35, rot1_2); \
+ dct_long_mul(p3o, sum37, rot2_0); \
+ dct_long_mul(p4o, sum15, rot2_1); \
+ dct_wadd(sump13o, p1o, p3o); \
+ dct_wadd(sump24o, p2o, p4o); \
+ dct_wadd(sump23o, p2o, p3o); \
+ dct_wadd(sump14o, p1o, p4o); \
+ dct_long_mac(x4, sump13o, row7, rot3_0); \
+ dct_long_mac(x5, sump24o, row5, rot3_1); \
+ dct_long_mac(x6, sump23o, row3, rot3_2); \
+ dct_long_mac(x7, sump14o, row1, rot3_3); \
+ dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \
+ dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \
+ dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \
+ dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \
+ }
+
+ // load
+ row0 = vld1q_s16(data + 0*8);
+ row1 = vld1q_s16(data + 1*8);
+ row2 = vld1q_s16(data + 2*8);
+ row3 = vld1q_s16(data + 3*8);
+ row4 = vld1q_s16(data + 4*8);
+ row5 = vld1q_s16(data + 5*8);
+ row6 = vld1q_s16(data + 6*8);
+ row7 = vld1q_s16(data + 7*8);
+
+ // add DC bias
+ row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0));
+
+ // column pass
+ dct_pass(vrshrn_n_s32, 10);
+
+ // 16bit 8x8 transpose
+ {
+// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively.
+// whether compilers actually get this is another story, sadly.
+#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; }
+#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); }
+#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); }
+
+ // pass 1
+ dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6
+ dct_trn16(row2, row3);
+ dct_trn16(row4, row5);
+ dct_trn16(row6, row7);
+
+ // pass 2
+ dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4
+ dct_trn32(row1, row3);
+ dct_trn32(row4, row6);
+ dct_trn32(row5, row7);
+
+ // pass 3
+ dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0
+ dct_trn64(row1, row5);
+ dct_trn64(row2, row6);
+ dct_trn64(row3, row7);
+
+#undef dct_trn16
+#undef dct_trn32
+#undef dct_trn64
+ }
+
+ // row pass
+ // vrshrn_n_s32 only supports shifts up to 16, we need
+ // 17. so do a non-rounding shift of 16 first then follow
+ // up with a rounding shift by 1.
+ dct_pass(vshrn_n_s32, 16);
+
+ {
+ // pack and round
+ uint8x8_t p0 = vqrshrun_n_s16(row0, 1);
+ uint8x8_t p1 = vqrshrun_n_s16(row1, 1);
+ uint8x8_t p2 = vqrshrun_n_s16(row2, 1);
+ uint8x8_t p3 = vqrshrun_n_s16(row3, 1);
+ uint8x8_t p4 = vqrshrun_n_s16(row4, 1);
+ uint8x8_t p5 = vqrshrun_n_s16(row5, 1);
+ uint8x8_t p6 = vqrshrun_n_s16(row6, 1);
+ uint8x8_t p7 = vqrshrun_n_s16(row7, 1);
+
+ // again, these can translate into one instruction, but often don't.
+#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; }
+#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); }
+#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); }
+
+ // sadly can't use interleaved stores here since we only write
+ // 8 bytes to each scan line!
+
+ // 8x8 8-bit transpose pass 1
+ dct_trn8_8(p0, p1);
+ dct_trn8_8(p2, p3);
+ dct_trn8_8(p4, p5);
+ dct_trn8_8(p6, p7);
+
+ // pass 2
+ dct_trn8_16(p0, p2);
+ dct_trn8_16(p1, p3);
+ dct_trn8_16(p4, p6);
+ dct_trn8_16(p5, p7);
+
+ // pass 3
+ dct_trn8_32(p0, p4);
+ dct_trn8_32(p1, p5);
+ dct_trn8_32(p2, p6);
+ dct_trn8_32(p3, p7);
+
+ // store
+ vst1_u8(out, p0); out += out_stride;
+ vst1_u8(out, p1); out += out_stride;
+ vst1_u8(out, p2); out += out_stride;
+ vst1_u8(out, p3); out += out_stride;
+ vst1_u8(out, p4); out += out_stride;
+ vst1_u8(out, p5); out += out_stride;
+ vst1_u8(out, p6); out += out_stride;
+ vst1_u8(out, p7);
+
+#undef dct_trn8_8
+#undef dct_trn8_16
+#undef dct_trn8_32
+ }
+
+#undef dct_long_mul
+#undef dct_long_mac
+#undef dct_widen
+#undef dct_wadd
+#undef dct_wsub
+#undef dct_bfly32o
+#undef dct_pass
+}
+
+#endif // STBI_NEON
+
+#define STBI__MARKER_none 0xff
+// if there's a pending marker from the entropy stream, return that
+// otherwise, fetch from the stream and get a marker. if there's no
+// marker, return 0xff, which is never a valid marker value
+static stbi_uc stbi__get_marker(stbi__jpeg *j)
+{
+ stbi_uc x;
+ if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; }
+ x = stbi__get8(j->s);
+ if (x != 0xff) return STBI__MARKER_none;
+ while (x == 0xff)
+ x = stbi__get8(j->s); // consume repeated 0xff fill bytes
+ return x;
+}
+
+// in each scan, we'll have scan_n components, and the order
+// of the components is specified by order[]
+#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7)
+
+// after a restart interval, stbi__jpeg_reset the entropy decoder and
+// the dc prediction
+static void stbi__jpeg_reset(stbi__jpeg *j)
+{
+ j->code_bits = 0;
+ j->code_buffer = 0;
+ j->nomore = 0;
+ j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0;
+ j->marker = STBI__MARKER_none;
+ j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff;
+ j->eob_run = 0;
+ // no more than 1<<31 MCUs if no restart_interal? that's plenty safe,
+ // since we don't even allow 1<<30 pixels
+}
+
+static int stbi__parse_entropy_coded_data(stbi__jpeg *z)
+{
+ stbi__jpeg_reset(z);
+ if (!z->progressive) {
+ if (z->scan_n == 1) {
+ int i,j;
+ STBI_SIMD_ALIGN(short, data[64]);
+ int n = z->order[0];
+ // non-interleaved data, we just need to process one block at a time,
+ // in trivial scanline order
+ // number of blocks to do just depends on how many actual "pixels" this
+ // component has, independent of interleaved MCU blocking and such
+ int w = (z->img_comp[n].x+7) >> 3;
+ int h = (z->img_comp[n].y+7) >> 3;
+ for (j=0; j < h; ++j) {
+ for (i=0; i < w; ++i) {
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0;
+ z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data);
+ // every data block is an MCU, so countdown the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);
+ // if it's NOT a restart, then just bail, so we get corrupt data
+ // rather than no data
+ if (!STBI__RESTART(z->marker)) return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ } else { // interleaved
+ int i,j,k,x,y;
+ STBI_SIMD_ALIGN(short, data[64]);
+ for (j=0; j < z->img_mcu_y; ++j) {
+ for (i=0; i < z->img_mcu_x; ++i) {
+ // scan an interleaved mcu... process scan_n components in order
+ for (k=0; k < z->scan_n; ++k) {
+ int n = z->order[k];
+ // scan out an mcu's worth of this component; that's just determined
+ // by the basic H and V specified for the component
+ for (y=0; y < z->img_comp[n].v; ++y) {
+ for (x=0; x < z->img_comp[n].h; ++x) {
+ int x2 = (i*z->img_comp[n].h + x)*8;
+ int y2 = (j*z->img_comp[n].v + y)*8;
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0;
+ z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data);
+ }
+ }
+ }
+ // after all interleaved components, that's an interleaved MCU,
+ // so now count down the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker)) return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ }
+ } else {
+ if (z->scan_n == 1) {
+ int i,j;
+ int n = z->order[0];
+ // non-interleaved data, we just need to process one block at a time,
+ // in trivial scanline order
+ // number of blocks to do just depends on how many actual "pixels" this
+ // component has, independent of interleaved MCU blocking and such
+ int w = (z->img_comp[n].x+7) >> 3;
+ int h = (z->img_comp[n].y+7) >> 3;
+ for (j=0; j < h; ++j) {
+ for (i=0; i < w; ++i) {
+ short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w);
+ if (z->spec_start == 0) {
+ if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n))
+ return 0;
+ } else {
+ int ha = z->img_comp[n].ha;
+ if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha]))
+ return 0;
+ }
+ // every data block is an MCU, so countdown the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker)) return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ } else { // interleaved
+ int i,j,k,x,y;
+ for (j=0; j < z->img_mcu_y; ++j) {
+ for (i=0; i < z->img_mcu_x; ++i) {
+ // scan an interleaved mcu... process scan_n components in order
+ for (k=0; k < z->scan_n; ++k) {
+ int n = z->order[k];
+ // scan out an mcu's worth of this component; that's just determined
+ // by the basic H and V specified for the component
+ for (y=0; y < z->img_comp[n].v; ++y) {
+ for (x=0; x < z->img_comp[n].h; ++x) {
+ int x2 = (i*z->img_comp[n].h + x);
+ int y2 = (j*z->img_comp[n].v + y);
+ short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w);
+ if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n))
+ return 0;
+ }
+ }
+ }
+ // after all interleaved components, that's an interleaved MCU,
+ // so now count down the restart interval
+ if (--z->todo <= 0) {
+ if (z->code_bits < 24) stbi__grow_buffer_unsafe(z);
+ if (!STBI__RESTART(z->marker)) return 1;
+ stbi__jpeg_reset(z);
+ }
+ }
+ }
+ return 1;
+ }
+ }
+}
+
+static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant)
+{
+ int i;
+ for (i=0; i < 64; ++i)
+ data[i] *= dequant[i];
+}
+
+static void stbi__jpeg_finish(stbi__jpeg *z)
+{
+ if (z->progressive) {
+ // dequantize and idct the data
+ int i,j,n;
+ for (n=0; n < z->s->img_n; ++n) {
+ int w = (z->img_comp[n].x+7) >> 3;
+ int h = (z->img_comp[n].y+7) >> 3;
+ for (j=0; j < h; ++j) {
+ for (i=0; i < w; ++i) {
+ short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w);
+ stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]);
+ z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data);
+ }
+ }
+ }
+ }
+}
+
+static int stbi__process_marker(stbi__jpeg *z, int m)
+{
+ int L;
+ switch (m) {
+ case STBI__MARKER_none: // no marker found
+ return stbi__err("expected marker","Corrupt JPEG");
+
+ case 0xDD: // DRI - specify restart interval
+ if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG");
+ z->restart_interval = stbi__get16be(z->s);
+ return 1;
+
+ case 0xDB: // DQT - define quantization table
+ L = stbi__get16be(z->s)-2;
+ while (L > 0) {
+ int q = stbi__get8(z->s);
+ int p = q >> 4, sixteen = (p != 0);
+ int t = q & 15,i;
+ if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG");
+ if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG");
+
+ for (i=0; i < 64; ++i)
+ z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s));
+ L -= (sixteen ? 129 : 65);
+ }
+ return L==0;
+
+ case 0xC4: // DHT - define huffman table
+ L = stbi__get16be(z->s)-2;
+ while (L > 0) {
+ stbi_uc *v;
+ int sizes[16],i,n=0;
+ int q = stbi__get8(z->s);
+ int tc = q >> 4;
+ int th = q & 15;
+ if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG");
+ for (i=0; i < 16; ++i) {
+ sizes[i] = stbi__get8(z->s);
+ n += sizes[i];
+ }
+ L -= 17;
+ if (tc == 0) {
+ if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0;
+ v = z->huff_dc[th].values;
+ } else {
+ if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0;
+ v = z->huff_ac[th].values;
+ }
+ for (i=0; i < n; ++i)
+ v[i] = stbi__get8(z->s);
+ if (tc != 0)
+ stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th);
+ L -= n;
+ }
+ return L==0;
+ }
+
+ // check for comment block or APP blocks
+ if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) {
+ L = stbi__get16be(z->s);
+ if (L < 2) {
+ if (m == 0xFE)
+ return stbi__err("bad COM len","Corrupt JPEG");
+ else
+ return stbi__err("bad APP len","Corrupt JPEG");
+ }
+ L -= 2;
+
+ if (m == 0xE0 && L >= 5) { // JFIF APP0 segment
+ static const unsigned char tag[5] = {'J','F','I','F','\0'};
+ int ok = 1;
+ int i;
+ for (i=0; i < 5; ++i)
+ if (stbi__get8(z->s) != tag[i])
+ ok = 0;
+ L -= 5;
+ if (ok)
+ z->jfif = 1;
+ } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment
+ static const unsigned char tag[6] = {'A','d','o','b','e','\0'};
+ int ok = 1;
+ int i;
+ for (i=0; i < 6; ++i)
+ if (stbi__get8(z->s) != tag[i])
+ ok = 0;
+ L -= 6;
+ if (ok) {
+ stbi__get8(z->s); // version
+ stbi__get16be(z->s); // flags0
+ stbi__get16be(z->s); // flags1
+ z->app14_color_transform = stbi__get8(z->s); // color transform
+ L -= 6;
+ }
+ }
+
+ stbi__skip(z->s, L);
+ return 1;
+ }
+
+ return stbi__err("unknown marker","Corrupt JPEG");
+}
+
+// after we see SOS
+static int stbi__process_scan_header(stbi__jpeg *z)
+{
+ int i;
+ int Ls = stbi__get16be(z->s);
+ z->scan_n = stbi__get8(z->s);
+ if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG");
+ if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG");
+ for (i=0; i < z->scan_n; ++i) {
+ int id = stbi__get8(z->s), which;
+ int q = stbi__get8(z->s);
+ for (which = 0; which < z->s->img_n; ++which)
+ if (z->img_comp[which].id == id)
+ break;
+ if (which == z->s->img_n) return 0; // no match
+ z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG");
+ z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG");
+ z->order[i] = which;
+ }
+
+ {
+ int aa;
+ z->spec_start = stbi__get8(z->s);
+ z->spec_end = stbi__get8(z->s); // should be 63, but might be 0
+ aa = stbi__get8(z->s);
+ z->succ_high = (aa >> 4);
+ z->succ_low = (aa & 15);
+ if (z->progressive) {
+ if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13)
+ return stbi__err("bad SOS", "Corrupt JPEG");
+ } else {
+ if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG");
+ if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG");
+ z->spec_end = 63;
+ }
+ }
+
+ return 1;
+}
+
+static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why)
+{
+ int i;
+ for (i=0; i < ncomp; ++i) {
+ if (z->img_comp[i].raw_data) {
+ STBI_FREE(z->img_comp[i].raw_data);
+ z->img_comp[i].raw_data = NULL;
+ z->img_comp[i].data = NULL;
+ }
+ if (z->img_comp[i].raw_coeff) {
+ STBI_FREE(z->img_comp[i].raw_coeff);
+ z->img_comp[i].raw_coeff = 0;
+ z->img_comp[i].coeff = 0;
+ }
+ if (z->img_comp[i].linebuf) {
+ STBI_FREE(z->img_comp[i].linebuf);
+ z->img_comp[i].linebuf = NULL;
+ }
+ }
+ return why;
+}
+
+static int stbi__process_frame_header(stbi__jpeg *z, int scan)
+{
+ stbi__context *s = z->s;
+ int Lf,p,i,q, h_max=1,v_max=1,c;
+ Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG
+ p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline
+ s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG
+ s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires
+ c = stbi__get8(s);
+ if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG");
+ s->img_n = c;
+ for (i=0; i < c; ++i) {
+ z->img_comp[i].data = NULL;
+ z->img_comp[i].linebuf = NULL;
+ }
+
+ if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG");
+
+ z->rgb = 0;
+ for (i=0; i < s->img_n; ++i) {
+ static const unsigned char rgb[3] = { 'R', 'G', 'B' };
+ z->img_comp[i].id = stbi__get8(s);
+ if (s->img_n == 3 && z->img_comp[i].id == rgb[i])
+ ++z->rgb;
+ q = stbi__get8(s);
+ z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG");
+ z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG");
+ z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG");
+ }
+
+ if (scan != STBI__SCAN_load) return 1;
+
+ if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode");
+
+ for (i=0; i < s->img_n; ++i) {
+ if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h;
+ if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v;
+ }
+
+ // compute interleaved mcu info
+ z->img_h_max = h_max;
+ z->img_v_max = v_max;
+ z->img_mcu_w = h_max * 8;
+ z->img_mcu_h = v_max * 8;
+ // these sizes can't be more than 17 bits
+ z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w;
+ z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h;
+
+ for (i=0; i < s->img_n; ++i) {
+ // number of effective pixels (e.g. for non-interleaved MCU)
+ z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max;
+ z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max;
+ // to simplify generation, we'll allocate enough memory to decode
+ // the bogus oversized data from using interleaved MCUs and their
+ // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't
+ // discard the extra data until colorspace conversion
+ //
+ // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier)
+ // so these muls can't overflow with 32-bit ints (which we require)
+ z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8;
+ z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8;
+ z->img_comp[i].coeff = 0;
+ z->img_comp[i].raw_coeff = 0;
+ z->img_comp[i].linebuf = NULL;
+ z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15);
+ if (z->img_comp[i].raw_data == NULL)
+ return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory"));
+ // align blocks for idct using mmx/sse
+ z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15);
+ if (z->progressive) {
+ // w2, h2 are multiples of 8 (see above)
+ z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8;
+ z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8;
+ z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15);
+ if (z->img_comp[i].raw_coeff == NULL)
+ return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory"));
+ z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15);
+ }
+ }
+
+ return 1;
+}
+
+// use comparisons since in some cases we handle more than one case (e.g. SOF)
+#define stbi__DNL(x) ((x) == 0xdc)
+#define stbi__SOI(x) ((x) == 0xd8)
+#define stbi__EOI(x) ((x) == 0xd9)
+#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2)
+#define stbi__SOS(x) ((x) == 0xda)
+
+#define stbi__SOF_progressive(x) ((x) == 0xc2)
+
+static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan)
+{
+ int m;
+ z->jfif = 0;
+ z->app14_color_transform = -1; // valid values are 0,1,2
+ z->marker = STBI__MARKER_none; // initialize cached marker to empty
+ m = stbi__get_marker(z);
+ if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG");
+ if (scan == STBI__SCAN_type) return 1;
+ m = stbi__get_marker(z);
+ while (!stbi__SOF(m)) {
+ if (!stbi__process_marker(z,m)) return 0;
+ m = stbi__get_marker(z);
+ while (m == STBI__MARKER_none) {
+ // some files have extra padding after their blocks, so ok, we'll scan
+ if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG");
+ m = stbi__get_marker(z);
+ }
+ }
+ z->progressive = stbi__SOF_progressive(m);
+ if (!stbi__process_frame_header(z, scan)) return 0;
+ return 1;
+}
+
+// decode image to YCbCr format
+static int stbi__decode_jpeg_image(stbi__jpeg *j)
+{
+ int m;
+ for (m = 0; m < 4; m++) {
+ j->img_comp[m].raw_data = NULL;
+ j->img_comp[m].raw_coeff = NULL;
+ }
+ j->restart_interval = 0;
+ if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0;
+ m = stbi__get_marker(j);
+ while (!stbi__EOI(m)) {
+ if (stbi__SOS(m)) {
+ if (!stbi__process_scan_header(j)) return 0;
+ if (!stbi__parse_entropy_coded_data(j)) return 0;
+ if (j->marker == STBI__MARKER_none ) {
+ // handle 0s at the end of image data from IP Kamera 9060
+ while (!stbi__at_eof(j->s)) {
+ int x = stbi__get8(j->s);
+ if (x == 255) {
+ j->marker = stbi__get8(j->s);
+ break;
+ }
+ }
+ // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0
+ }
+ } else if (stbi__DNL(m)) {
+ int Ld = stbi__get16be(j->s);
+ stbi__uint32 NL = stbi__get16be(j->s);
+ if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG");
+ if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG");
+ } else {
+ if (!stbi__process_marker(j, m)) return 0;
+ }
+ m = stbi__get_marker(j);
+ }
+ if (j->progressive)
+ stbi__jpeg_finish(j);
+ return 1;
+}
+
+// static jfif-centered resampling (across block boundaries)
+
+typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1,
+ int w, int hs);
+
+#define stbi__div4(x) ((stbi_uc) ((x) >> 2))
+
+static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ STBI_NOTUSED(out);
+ STBI_NOTUSED(in_far);
+ STBI_NOTUSED(w);
+ STBI_NOTUSED(hs);
+ return in_near;
+}
+
+static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ // need to generate two samples vertically for every one in input
+ int i;
+ STBI_NOTUSED(hs);
+ for (i=0; i < w; ++i)
+ out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2);
+ return out;
+}
+
+static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ // need to generate two samples horizontally for every one in input
+ int i;
+ stbi_uc *input = in_near;
+
+ if (w == 1) {
+ // if only one sample, can't do any interpolation
+ out[0] = out[1] = input[0];
+ return out;
+ }
+
+ out[0] = input[0];
+ out[1] = stbi__div4(input[0]*3 + input[1] + 2);
+ for (i=1; i < w-1; ++i) {
+ int n = 3*input[i]+2;
+ out[i*2+0] = stbi__div4(n+input[i-1]);
+ out[i*2+1] = stbi__div4(n+input[i+1]);
+ }
+ out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2);
+ out[i*2+1] = input[w-1];
+
+ STBI_NOTUSED(in_far);
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+
+#define stbi__div16(x) ((stbi_uc) ((x) >> 4))
+
+static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ // need to generate 2x2 samples for every one in input
+ int i,t0,t1;
+ if (w == 1) {
+ out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2);
+ return out;
+ }
+
+ t1 = 3*in_near[0] + in_far[0];
+ out[0] = stbi__div4(t1+2);
+ for (i=1; i < w; ++i) {
+ t0 = t1;
+ t1 = 3*in_near[i]+in_far[i];
+ out[i*2-1] = stbi__div16(3*t0 + t1 + 8);
+ out[i*2 ] = stbi__div16(3*t1 + t0 + 8);
+ }
+ out[w*2-1] = stbi__div4(t1+2);
+
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+
+#if defined(STBI_SSE2) || defined(STBI_NEON)
+static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ // need to generate 2x2 samples for every one in input
+ int i=0,t0,t1;
+
+ if (w == 1) {
+ out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2);
+ return out;
+ }
+
+ t1 = 3*in_near[0] + in_far[0];
+ // process groups of 8 pixels for as long as we can.
+ // note we can't handle the last pixel in a row in this loop
+ // because we need to handle the filter boundary conditions.
+ for (; i < ((w-1) & ~7); i += 8) {
+#if defined(STBI_SSE2)
+ // load and perform the vertical filtering pass
+ // this uses 3*x + y = 4*x + (y - x)
+ __m128i zero = _mm_setzero_si128();
+ __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i));
+ __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i));
+ __m128i farw = _mm_unpacklo_epi8(farb, zero);
+ __m128i nearw = _mm_unpacklo_epi8(nearb, zero);
+ __m128i diff = _mm_sub_epi16(farw, nearw);
+ __m128i nears = _mm_slli_epi16(nearw, 2);
+ __m128i curr = _mm_add_epi16(nears, diff); // current row
+
+ // horizontal filter works the same based on shifted vers of current
+ // row. "prev" is current row shifted right by 1 pixel; we need to
+ // insert the previous pixel value (from t1).
+ // "next" is current row shifted left by 1 pixel, with first pixel
+ // of next block of 8 pixels added in.
+ __m128i prv0 = _mm_slli_si128(curr, 2);
+ __m128i nxt0 = _mm_srli_si128(curr, 2);
+ __m128i prev = _mm_insert_epi16(prv0, t1, 0);
+ __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7);
+
+ // horizontal filter, polyphase implementation since it's convenient:
+ // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+ // odd pixels = 3*cur + next = cur*4 + (next - cur)
+ // note the shared term.
+ __m128i bias = _mm_set1_epi16(8);
+ __m128i curs = _mm_slli_epi16(curr, 2);
+ __m128i prvd = _mm_sub_epi16(prev, curr);
+ __m128i nxtd = _mm_sub_epi16(next, curr);
+ __m128i curb = _mm_add_epi16(curs, bias);
+ __m128i even = _mm_add_epi16(prvd, curb);
+ __m128i odd = _mm_add_epi16(nxtd, curb);
+
+ // interleave even and odd pixels, then undo scaling.
+ __m128i int0 = _mm_unpacklo_epi16(even, odd);
+ __m128i int1 = _mm_unpackhi_epi16(even, odd);
+ __m128i de0 = _mm_srli_epi16(int0, 4);
+ __m128i de1 = _mm_srli_epi16(int1, 4);
+
+ // pack and write output
+ __m128i outv = _mm_packus_epi16(de0, de1);
+ _mm_storeu_si128((__m128i *) (out + i*2), outv);
+#elif defined(STBI_NEON)
+ // load and perform the vertical filtering pass
+ // this uses 3*x + y = 4*x + (y - x)
+ uint8x8_t farb = vld1_u8(in_far + i);
+ uint8x8_t nearb = vld1_u8(in_near + i);
+ int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb));
+ int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2));
+ int16x8_t curr = vaddq_s16(nears, diff); // current row
+
+ // horizontal filter works the same based on shifted vers of current
+ // row. "prev" is current row shifted right by 1 pixel; we need to
+ // insert the previous pixel value (from t1).
+ // "next" is current row shifted left by 1 pixel, with first pixel
+ // of next block of 8 pixels added in.
+ int16x8_t prv0 = vextq_s16(curr, curr, 7);
+ int16x8_t nxt0 = vextq_s16(curr, curr, 1);
+ int16x8_t prev = vsetq_lane_s16(t1, prv0, 0);
+ int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7);
+
+ // horizontal filter, polyphase implementation since it's convenient:
+ // even pixels = 3*cur + prev = cur*4 + (prev - cur)
+ // odd pixels = 3*cur + next = cur*4 + (next - cur)
+ // note the shared term.
+ int16x8_t curs = vshlq_n_s16(curr, 2);
+ int16x8_t prvd = vsubq_s16(prev, curr);
+ int16x8_t nxtd = vsubq_s16(next, curr);
+ int16x8_t even = vaddq_s16(curs, prvd);
+ int16x8_t odd = vaddq_s16(curs, nxtd);
+
+ // undo scaling and round, then store with even/odd phases interleaved
+ uint8x8x2_t o;
+ o.val[0] = vqrshrun_n_s16(even, 4);
+ o.val[1] = vqrshrun_n_s16(odd, 4);
+ vst2_u8(out + i*2, o);
+#endif
+
+ // "previous" value for next iter
+ t1 = 3*in_near[i+7] + in_far[i+7];
+ }
+
+ t0 = t1;
+ t1 = 3*in_near[i] + in_far[i];
+ out[i*2] = stbi__div16(3*t1 + t0 + 8);
+
+ for (++i; i < w; ++i) {
+ t0 = t1;
+ t1 = 3*in_near[i]+in_far[i];
+ out[i*2-1] = stbi__div16(3*t0 + t1 + 8);
+ out[i*2 ] = stbi__div16(3*t1 + t0 + 8);
+ }
+ out[w*2-1] = stbi__div4(t1+2);
+
+ STBI_NOTUSED(hs);
+
+ return out;
+}
+#endif
+
+static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs)
+{
+ // resample with nearest-neighbor
+ int i,j;
+ STBI_NOTUSED(in_far);
+ for (i=0; i < w; ++i)
+ for (j=0; j < hs; ++j)
+ out[i*hs+j] = in_near[i];
+ return out;
+}
+
+// this is a reduced-precision calculation of YCbCr-to-RGB introduced
+// to make sure the code produces the same results in both SIMD and scalar
+#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8)
+static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step)
+{
+ int i;
+ for (i=0; i < count; ++i) {
+ int y_fixed = (y[i] << 20) + (1<<19); // rounding
+ int r,g,b;
+ int cr = pcr[i] - 128;
+ int cb = pcb[i] - 128;
+ r = y_fixed + cr* stbi__float2fixed(1.40200f);
+ g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000);
+ b = y_fixed + cb* stbi__float2fixed(1.77200f);
+ r >>= 20;
+ g >>= 20;
+ b >>= 20;
+ if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; }
+ if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; }
+ if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; }
+ out[0] = (stbi_uc)r;
+ out[1] = (stbi_uc)g;
+ out[2] = (stbi_uc)b;
+ out[3] = 255;
+ out += step;
+ }
+}
+
+#if defined(STBI_SSE2) || defined(STBI_NEON)
+static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step)
+{
+ int i = 0;
+
+#ifdef STBI_SSE2
+ // step == 3 is pretty ugly on the final interleave, and i'm not convinced
+ // it's useful in practice (you wouldn't use it for textures, for example).
+ // so just accelerate step == 4 case.
+ if (step == 4) {
+ // this is a fairly straightforward implementation and not super-optimized.
+ __m128i signflip = _mm_set1_epi8(-0x80);
+ __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f));
+ __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f));
+ __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f));
+ __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f));
+ __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128);
+ __m128i xw = _mm_set1_epi16(255); // alpha channel
+
+ for (; i+7 < count; i += 8) {
+ // load
+ __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i));
+ __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i));
+ __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i));
+ __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128
+ __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128
+
+ // unpack to short (and left-shift cr, cb by 8)
+ __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes);
+ __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased);
+ __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased);
+
+ // color transform
+ __m128i yws = _mm_srli_epi16(yw, 4);
+ __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw);
+ __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw);
+ __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1);
+ __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1);
+ __m128i rws = _mm_add_epi16(cr0, yws);
+ __m128i gwt = _mm_add_epi16(cb0, yws);
+ __m128i bws = _mm_add_epi16(yws, cb1);
+ __m128i gws = _mm_add_epi16(gwt, cr1);
+
+ // descale
+ __m128i rw = _mm_srai_epi16(rws, 4);
+ __m128i bw = _mm_srai_epi16(bws, 4);
+ __m128i gw = _mm_srai_epi16(gws, 4);
+
+ // back to byte, set up for transpose
+ __m128i brb = _mm_packus_epi16(rw, bw);
+ __m128i gxb = _mm_packus_epi16(gw, xw);
+
+ // transpose to interleave channels
+ __m128i t0 = _mm_unpacklo_epi8(brb, gxb);
+ __m128i t1 = _mm_unpackhi_epi8(brb, gxb);
+ __m128i o0 = _mm_unpacklo_epi16(t0, t1);
+ __m128i o1 = _mm_unpackhi_epi16(t0, t1);
+
+ // store
+ _mm_storeu_si128((__m128i *) (out + 0), o0);
+ _mm_storeu_si128((__m128i *) (out + 16), o1);
+ out += 32;
+ }
+ }
+#endif
+
+#ifdef STBI_NEON
+ // in this version, step=3 support would be easy to add. but is there demand?
+ if (step == 4) {
+ // this is a fairly straightforward implementation and not super-optimized.
+ uint8x8_t signflip = vdup_n_u8(0x80);
+ int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f));
+ int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f));
+ int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f));
+ int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f));
+
+ for (; i+7 < count; i += 8) {
+ // load
+ uint8x8_t y_bytes = vld1_u8(y + i);
+ uint8x8_t cr_bytes = vld1_u8(pcr + i);
+ uint8x8_t cb_bytes = vld1_u8(pcb + i);
+ int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip));
+ int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip));
+
+ // expand to s16
+ int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4));
+ int16x8_t crw = vshll_n_s8(cr_biased, 7);
+ int16x8_t cbw = vshll_n_s8(cb_biased, 7);
+
+ // color transform
+ int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0);
+ int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0);
+ int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1);
+ int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1);
+ int16x8_t rws = vaddq_s16(yws, cr0);
+ int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1);
+ int16x8_t bws = vaddq_s16(yws, cb1);
+
+ // undo scaling, round, convert to byte
+ uint8x8x4_t o;
+ o.val[0] = vqrshrun_n_s16(rws, 4);
+ o.val[1] = vqrshrun_n_s16(gws, 4);
+ o.val[2] = vqrshrun_n_s16(bws, 4);
+ o.val[3] = vdup_n_u8(255);
+
+ // store, interleaving r/g/b/a
+ vst4_u8(out, o);
+ out += 8*4;
+ }
+ }
+#endif
+
+ for (; i < count; ++i) {
+ int y_fixed = (y[i] << 20) + (1<<19); // rounding
+ int r,g,b;
+ int cr = pcr[i] - 128;
+ int cb = pcb[i] - 128;
+ r = y_fixed + cr* stbi__float2fixed(1.40200f);
+ g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000);
+ b = y_fixed + cb* stbi__float2fixed(1.77200f);
+ r >>= 20;
+ g >>= 20;
+ b >>= 20;
+ if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; }
+ if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; }
+ if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; }
+ out[0] = (stbi_uc)r;
+ out[1] = (stbi_uc)g;
+ out[2] = (stbi_uc)b;
+ out[3] = 255;
+ out += step;
+ }
+}
+#endif
+
+// set up the kernels
+static void stbi__setup_jpeg(stbi__jpeg *j)
+{
+ j->idct_block_kernel = stbi__idct_block;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2;
+
+#ifdef STBI_SSE2
+ if (stbi__sse2_available()) {
+ j->idct_block_kernel = stbi__idct_simd;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+ }
+#endif
+
+#ifdef STBI_NEON
+ j->idct_block_kernel = stbi__idct_simd;
+ j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd;
+ j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd;
+#endif
+}
+
+// clean up the temporary component buffers
+static void stbi__cleanup_jpeg(stbi__jpeg *j)
+{
+ stbi__free_jpeg_components(j, j->s->img_n, 0);
+}
+
+typedef struct
+{
+ resample_row_func resample;
+ stbi_uc *line0,*line1;
+ int hs,vs; // expansion factor in each axis
+ int w_lores; // horizontal pixels pre-expansion
+ int ystep; // how far through vertical expansion we are
+ int ypos; // which pre-expansion row we're on
+} stbi__resample;
+
+// fast 0..255 * 0..255 => 0..255 rounded multiplication
+static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y)
+{
+ unsigned int t = x*y + 128;
+ return (stbi_uc) ((t + (t >>8)) >> 8);
+}
+
+static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp)
+{
+ int n, decode_n, is_rgb;
+ z->s->img_n = 0; // make stbi__cleanup_jpeg safe
+
+ // validate req_comp
+ if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error");
+
+ // load a jpeg image from whichever source, but leave in YCbCr format
+ if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; }
+
+ // determine actual number of components to generate
+ n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1;
+
+ is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif));
+
+ if (z->s->img_n == 3 && n < 3 && !is_rgb)
+ decode_n = 1;
+ else
+ decode_n = z->s->img_n;
+
+ // resample and color-convert
+ {
+ int k;
+ unsigned int i,j;
+ stbi_uc *output;
+ stbi_uc *coutput[4];
+
+ stbi__resample res_comp[4];
+
+ for (k=0; k < decode_n; ++k) {
+ stbi__resample *r = &res_comp[k];
+
+ // allocate line buffer big enough for upsampling off the edges
+ // with upsample factor of 4
+ z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3);
+ if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); }
+
+ r->hs = z->img_h_max / z->img_comp[k].h;
+ r->vs = z->img_v_max / z->img_comp[k].v;
+ r->ystep = r->vs >> 1;
+ r->w_lores = (z->s->img_x + r->hs-1) / r->hs;
+ r->ypos = 0;
+ r->line0 = r->line1 = z->img_comp[k].data;
+
+ if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1;
+ else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2;
+ else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2;
+ else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel;
+ else r->resample = stbi__resample_row_generic;
+ }
+
+ // can't error after this so, this is safe
+ output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1);
+ if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); }
+
+ // now go ahead and resample
+ for (j=0; j < z->s->img_y; ++j) {
+ stbi_uc *out = output + n * z->s->img_x * j;
+ for (k=0; k < decode_n; ++k) {
+ stbi__resample *r = &res_comp[k];
+ int y_bot = r->ystep >= (r->vs >> 1);
+ coutput[k] = r->resample(z->img_comp[k].linebuf,
+ y_bot ? r->line1 : r->line0,
+ y_bot ? r->line0 : r->line1,
+ r->w_lores, r->hs);
+ if (++r->ystep >= r->vs) {
+ r->ystep = 0;
+ r->line0 = r->line1;
+ if (++r->ypos < z->img_comp[k].y)
+ r->line1 += z->img_comp[k].w2;
+ }
+ }
+ if (n >= 3) {
+ stbi_uc *y = coutput[0];
+ if (z->s->img_n == 3) {
+ if (is_rgb) {
+ for (i=0; i < z->s->img_x; ++i) {
+ out[0] = y[i];
+ out[1] = coutput[1][i];
+ out[2] = coutput[2][i];
+ out[3] = 255;
+ out += n;
+ }
+ } else {
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n);
+ }
+ } else if (z->s->img_n == 4) {
+ if (z->app14_color_transform == 0) { // CMYK
+ for (i=0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ out[0] = stbi__blinn_8x8(coutput[0][i], m);
+ out[1] = stbi__blinn_8x8(coutput[1][i], m);
+ out[2] = stbi__blinn_8x8(coutput[2][i], m);
+ out[3] = 255;
+ out += n;
+ }
+ } else if (z->app14_color_transform == 2) { // YCCK
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n);
+ for (i=0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ out[0] = stbi__blinn_8x8(255 - out[0], m);
+ out[1] = stbi__blinn_8x8(255 - out[1], m);
+ out[2] = stbi__blinn_8x8(255 - out[2], m);
+ out += n;
+ }
+ } else { // YCbCr + alpha? Ignore the fourth channel for now
+ z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n);
+ }
+ } else
+ for (i=0; i < z->s->img_x; ++i) {
+ out[0] = out[1] = out[2] = y[i];
+ out[3] = 255; // not used if n==3
+ out += n;
+ }
+ } else {
+ if (is_rgb) {
+ if (n == 1)
+ for (i=0; i < z->s->img_x; ++i)
+ *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]);
+ else {
+ for (i=0; i < z->s->img_x; ++i, out += 2) {
+ out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]);
+ out[1] = 255;
+ }
+ }
+ } else if (z->s->img_n == 4 && z->app14_color_transform == 0) {
+ for (i=0; i < z->s->img_x; ++i) {
+ stbi_uc m = coutput[3][i];
+ stbi_uc r = stbi__blinn_8x8(coutput[0][i], m);
+ stbi_uc g = stbi__blinn_8x8(coutput[1][i], m);
+ stbi_uc b = stbi__blinn_8x8(coutput[2][i], m);
+ out[0] = stbi__compute_y(r, g, b);
+ out[1] = 255;
+ out += n;
+ }
+ } else if (z->s->img_n == 4 && z->app14_color_transform == 2) {
+ for (i=0; i < z->s->img_x; ++i) {
+ out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]);
+ out[1] = 255;
+ out += n;
+ }
+ } else {
+ stbi_uc *y = coutput[0];
+ if (n == 1)
+ for (i=0; i < z->s->img_x; ++i) out[i] = y[i];
+ else
+ for (i=0; i < z->s->img_x; ++i) *out++ = y[i], *out++ = 255;
+ }
+ }
+ }
+ stbi__cleanup_jpeg(z);
+ *out_x = z->s->img_x;
+ *out_y = z->s->img_y;
+ if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output
+ return output;
+ }
+}
+
+static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ unsigned char* result;
+ stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg));
+ STBI_NOTUSED(ri);
+ j->s = s;
+ stbi__setup_jpeg(j);
+ result = load_jpeg_image(j, x,y,comp,req_comp);
+ STBI_FREE(j);
+ return result;
+}
+
+static int stbi__jpeg_test(stbi__context *s)
+{
+ int r;
+ stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg));
+ j->s = s;
+ stbi__setup_jpeg(j);
+ r = stbi__decode_jpeg_header(j, STBI__SCAN_type);
+ stbi__rewind(s);
+ STBI_FREE(j);
+ return r;
+}
+
+static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp)
+{
+ if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) {
+ stbi__rewind( j->s );
+ return 0;
+ }
+ if (x) *x = j->s->img_x;
+ if (y) *y = j->s->img_y;
+ if (comp) *comp = j->s->img_n >= 3 ? 3 : 1;
+ return 1;
+}
+
+static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int result;
+ stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg)));
+ j->s = s;
+ result = stbi__jpeg_info_raw(j, x, y, comp);
+ STBI_FREE(j);
+ return result;
+}
+#endif
+
+// public domain zlib decode v0.2 Sean Barrett 2006-11-18
+// simple implementation
+// - all input must be provided in an upfront buffer
+// - all output is written to a single output buffer (can malloc/realloc)
+// performance
+// - fast huffman
+
+#ifndef STBI_NO_ZLIB
+
+// fast-way is faster to check than jpeg huffman, but slow way is slower
+#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables
+#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1)
+
+// zlib-style huffman encoding
+// (jpegs packs from left, zlib from right, so can't share code)
+typedef struct
+{
+ stbi__uint16 fast[1 << STBI__ZFAST_BITS];
+ stbi__uint16 firstcode[16];
+ int maxcode[17];
+ stbi__uint16 firstsymbol[16];
+ stbi_uc size[288];
+ stbi__uint16 value[288];
+} stbi__zhuffman;
+
+stbi_inline static int stbi__bitreverse16(int n)
+{
+ n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1);
+ n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2);
+ n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4);
+ n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8);
+ return n;
+}
+
+stbi_inline static int stbi__bit_reverse(int v, int bits)
+{
+ STBI_ASSERT(bits <= 16);
+ // to bit reverse n bits, reverse 16 and shift
+ // e.g. 11 bits, bit reverse and shift away 5
+ return stbi__bitreverse16(v) >> (16-bits);
+}
+
+static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num)
+{
+ int i,k=0;
+ int code, next_code[16], sizes[17];
+
+ // DEFLATE spec for generating codes
+ memset(sizes, 0, sizeof(sizes));
+ memset(z->fast, 0, sizeof(z->fast));
+ for (i=0; i < num; ++i)
+ ++sizes[sizelist[i]];
+ sizes[0] = 0;
+ for (i=1; i < 16; ++i)
+ if (sizes[i] > (1 << i))
+ return stbi__err("bad sizes", "Corrupt PNG");
+ code = 0;
+ for (i=1; i < 16; ++i) {
+ next_code[i] = code;
+ z->firstcode[i] = (stbi__uint16) code;
+ z->firstsymbol[i] = (stbi__uint16) k;
+ code = (code + sizes[i]);
+ if (sizes[i])
+ if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG");
+ z->maxcode[i] = code << (16-i); // preshift for inner loop
+ code <<= 1;
+ k += sizes[i];
+ }
+ z->maxcode[16] = 0x10000; // sentinel
+ for (i=0; i < num; ++i) {
+ int s = sizelist[i];
+ if (s) {
+ int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s];
+ stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i);
+ z->size [c] = (stbi_uc ) s;
+ z->value[c] = (stbi__uint16) i;
+ if (s <= STBI__ZFAST_BITS) {
+ int j = stbi__bit_reverse(next_code[s],s);
+ while (j < (1 << STBI__ZFAST_BITS)) {
+ z->fast[j] = fastv;
+ j += (1 << s);
+ }
+ }
+ ++next_code[s];
+ }
+ }
+ return 1;
+}
+
+// zlib-from-memory implementation for PNG reading
+// because PNG allows splitting the zlib stream arbitrarily,
+// and it's annoying structurally to have PNG call ZLIB call PNG,
+// we require PNG read all the IDATs and combine them into a single
+// memory buffer
+
+typedef struct
+{
+ stbi_uc *zbuffer, *zbuffer_end;
+ int num_bits;
+ stbi__uint32 code_buffer;
+
+ char *zout;
+ char *zout_start;
+ char *zout_end;
+ int z_expandable;
+
+ stbi__zhuffman z_length, z_distance;
+} stbi__zbuf;
+
+stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z)
+{
+ if (z->zbuffer >= z->zbuffer_end) return 0;
+ return *z->zbuffer++;
+}
+
+static void stbi__fill_bits(stbi__zbuf *z)
+{
+ do {
+ STBI_ASSERT(z->code_buffer < (1U << z->num_bits));
+ z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits;
+ z->num_bits += 8;
+ } while (z->num_bits <= 24);
+}
+
+stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n)
+{
+ unsigned int k;
+ if (z->num_bits < n) stbi__fill_bits(z);
+ k = z->code_buffer & ((1 << n) - 1);
+ z->code_buffer >>= n;
+ z->num_bits -= n;
+ return k;
+}
+
+static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z)
+{
+ int b,s,k;
+ // not resolved by fast table, so compute it the slow way
+ // use jpeg approach, which requires MSbits at top
+ k = stbi__bit_reverse(a->code_buffer, 16);
+ for (s=STBI__ZFAST_BITS+1; ; ++s)
+ if (k < z->maxcode[s])
+ break;
+ if (s == 16) return -1; // invalid code!
+ // code size is s, so:
+ b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s];
+ STBI_ASSERT(z->size[b] == s);
+ a->code_buffer >>= s;
+ a->num_bits -= s;
+ return z->value[b];
+}
+
+stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z)
+{
+ int b,s;
+ if (a->num_bits < 16) stbi__fill_bits(a);
+ b = z->fast[a->code_buffer & STBI__ZFAST_MASK];
+ if (b) {
+ s = b >> 9;
+ a->code_buffer >>= s;
+ a->num_bits -= s;
+ return b & 511;
+ }
+ return stbi__zhuffman_decode_slowpath(a, z);
+}
+
+static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes
+{
+ char *q;
+ int cur, limit, old_limit;
+ z->zout = zout;
+ if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG");
+ cur = (int) (z->zout - z->zout_start);
+ limit = old_limit = (int) (z->zout_end - z->zout_start);
+ while (cur + n > limit)
+ limit *= 2;
+ q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit);
+ STBI_NOTUSED(old_limit);
+ if (q == NULL) return stbi__err("outofmem", "Out of memory");
+ z->zout_start = q;
+ z->zout = q + cur;
+ z->zout_end = q + limit;
+ return 1;
+}
+
+static const int stbi__zlength_base[31] = {
+ 3,4,5,6,7,8,9,10,11,13,
+ 15,17,19,23,27,31,35,43,51,59,
+ 67,83,99,115,131,163,195,227,258,0,0 };
+
+static const int stbi__zlength_extra[31]=
+{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 };
+
+static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,
+257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0};
+
+static const int stbi__zdist_extra[32] =
+{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};
+
+static int stbi__parse_huffman_block(stbi__zbuf *a)
+{
+ char *zout = a->zout;
+ for(;;) {
+ int z = stbi__zhuffman_decode(a, &a->z_length);
+ if (z < 256) {
+ if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes
+ if (zout >= a->zout_end) {
+ if (!stbi__zexpand(a, zout, 1)) return 0;
+ zout = a->zout;
+ }
+ *zout++ = (char) z;
+ } else {
+ stbi_uc *p;
+ int len,dist;
+ if (z == 256) {
+ a->zout = zout;
+ return 1;
+ }
+ z -= 257;
+ len = stbi__zlength_base[z];
+ if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]);
+ z = stbi__zhuffman_decode(a, &a->z_distance);
+ if (z < 0) return stbi__err("bad huffman code","Corrupt PNG");
+ dist = stbi__zdist_base[z];
+ if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]);
+ if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG");
+ if (zout + len > a->zout_end) {
+ if (!stbi__zexpand(a, zout, len)) return 0;
+ zout = a->zout;
+ }
+ p = (stbi_uc *) (zout - dist);
+ if (dist == 1) { // run of one byte; common in images.
+ stbi_uc v = *p;
+ if (len) { do *zout++ = v; while (--len); }
+ } else {
+ if (len) { do *zout++ = *p++; while (--len); }
+ }
+ }
+ }
+}
+
+static int stbi__compute_huffman_codes(stbi__zbuf *a)
+{
+ static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 };
+ stbi__zhuffman z_codelength;
+ stbi_uc lencodes[286+32+137];//padding for maximum single op
+ stbi_uc codelength_sizes[19];
+ int i,n;
+
+ int hlit = stbi__zreceive(a,5) + 257;
+ int hdist = stbi__zreceive(a,5) + 1;
+ int hclen = stbi__zreceive(a,4) + 4;
+ int ntot = hlit + hdist;
+
+ memset(codelength_sizes, 0, sizeof(codelength_sizes));
+ for (i=0; i < hclen; ++i) {
+ int s = stbi__zreceive(a,3);
+ codelength_sizes[length_dezigzag[i]] = (stbi_uc) s;
+ }
+ if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0;
+
+ n = 0;
+ while (n < ntot) {
+ int c = stbi__zhuffman_decode(a, &z_codelength);
+ if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG");
+ if (c < 16)
+ lencodes[n++] = (stbi_uc) c;
+ else {
+ stbi_uc fill = 0;
+ if (c == 16) {
+ c = stbi__zreceive(a,2)+3;
+ if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG");
+ fill = lencodes[n-1];
+ } else if (c == 17)
+ c = stbi__zreceive(a,3)+3;
+ else {
+ STBI_ASSERT(c == 18);
+ c = stbi__zreceive(a,7)+11;
+ }
+ if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG");
+ memset(lencodes+n, fill, c);
+ n += c;
+ }
+ }
+ if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG");
+ if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0;
+ if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0;
+ return 1;
+}
+
+static int stbi__parse_uncompressed_block(stbi__zbuf *a)
+{
+ stbi_uc header[4];
+ int len,nlen,k;
+ if (a->num_bits & 7)
+ stbi__zreceive(a, a->num_bits & 7); // discard
+ // drain the bit-packed data into header
+ k = 0;
+ while (a->num_bits > 0) {
+ header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check
+ a->code_buffer >>= 8;
+ a->num_bits -= 8;
+ }
+ STBI_ASSERT(a->num_bits == 0);
+ // now fill header the normal way
+ while (k < 4)
+ header[k++] = stbi__zget8(a);
+ len = header[1] * 256 + header[0];
+ nlen = header[3] * 256 + header[2];
+ if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG");
+ if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG");
+ if (a->zout + len > a->zout_end)
+ if (!stbi__zexpand(a, a->zout, len)) return 0;
+ memcpy(a->zout, a->zbuffer, len);
+ a->zbuffer += len;
+ a->zout += len;
+ return 1;
+}
+
+static int stbi__parse_zlib_header(stbi__zbuf *a)
+{
+ int cmf = stbi__zget8(a);
+ int cm = cmf & 15;
+ /* int cinfo = cmf >> 4; */
+ int flg = stbi__zget8(a);
+ if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec
+ if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png
+ if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png
+ // window = 1 << (8 + cinfo)... but who cares, we fully buffer output
+ return 1;
+}
+
+static const stbi_uc stbi__zdefault_length[288] =
+{
+ 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,
+ 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
+ 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
+ 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
+ 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8
+};
+static const stbi_uc stbi__zdefault_distance[32] =
+{
+ 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5
+};
+/*
+Init algorithm:
+{
+ int i; // use <= to match clearly with spec
+ for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8;
+ for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9;
+ for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7;
+ for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8;
+
+ for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5;
+}
+*/
+
+static int stbi__parse_zlib(stbi__zbuf *a, int parse_header)
+{
+ int final, type;
+ if (parse_header)
+ if (!stbi__parse_zlib_header(a)) return 0;
+ a->num_bits = 0;
+ a->code_buffer = 0;
+ do {
+ final = stbi__zreceive(a,1);
+ type = stbi__zreceive(a,2);
+ if (type == 0) {
+ if (!stbi__parse_uncompressed_block(a)) return 0;
+ } else if (type == 3) {
+ return 0;
+ } else {
+ if (type == 1) {
+ // use fixed code lengths
+ if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , 288)) return 0;
+ if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0;
+ } else {
+ if (!stbi__compute_huffman_codes(a)) return 0;
+ }
+ if (!stbi__parse_huffman_block(a)) return 0;
+ }
+ } while (!final);
+ return 1;
+}
+
+static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header)
+{
+ a->zout_start = obuf;
+ a->zout = obuf;
+ a->zout_end = obuf + olen;
+ a->z_expandable = exp;
+
+ return stbi__parse_zlib(a, parse_header);
+}
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen)
+{
+ stbi__zbuf a;
+ char *p = (char *) stbi__malloc(initial_size);
+ if (p == NULL) return NULL;
+ a.zbuffer = (stbi_uc *) buffer;
+ a.zbuffer_end = (stbi_uc *) buffer + len;
+ if (stbi__do_zlib(&a, p, initial_size, 1, 1)) {
+ if (outlen) *outlen = (int) (a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen)
+{
+ return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen);
+}
+
+STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header)
+{
+ stbi__zbuf a;
+ char *p = (char *) stbi__malloc(initial_size);
+ if (p == NULL) return NULL;
+ a.zbuffer = (stbi_uc *) buffer;
+ a.zbuffer_end = (stbi_uc *) buffer + len;
+ if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) {
+ if (outlen) *outlen = (int) (a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen)
+{
+ stbi__zbuf a;
+ a.zbuffer = (stbi_uc *) ibuffer;
+ a.zbuffer_end = (stbi_uc *) ibuffer + ilen;
+ if (stbi__do_zlib(&a, obuffer, olen, 0, 1))
+ return (int) (a.zout - a.zout_start);
+ else
+ return -1;
+}
+
+STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen)
+{
+ stbi__zbuf a;
+ char *p = (char *) stbi__malloc(16384);
+ if (p == NULL) return NULL;
+ a.zbuffer = (stbi_uc *) buffer;
+ a.zbuffer_end = (stbi_uc *) buffer+len;
+ if (stbi__do_zlib(&a, p, 16384, 1, 0)) {
+ if (outlen) *outlen = (int) (a.zout - a.zout_start);
+ return a.zout_start;
+ } else {
+ STBI_FREE(a.zout_start);
+ return NULL;
+ }
+}
+
+STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen)
+{
+ stbi__zbuf a;
+ a.zbuffer = (stbi_uc *) ibuffer;
+ a.zbuffer_end = (stbi_uc *) ibuffer + ilen;
+ if (stbi__do_zlib(&a, obuffer, olen, 0, 0))
+ return (int) (a.zout - a.zout_start);
+ else
+ return -1;
+}
+#endif
+
+// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18
+// simple implementation
+// - only 8-bit samples
+// - no CRC checking
+// - allocates lots of intermediate memory
+// - avoids problem of streaming data between subsystems
+// - avoids explicit window management
+// performance
+// - uses stb_zlib, a PD zlib implementation with fast huffman decoding
+
+#ifndef STBI_NO_PNG
+typedef struct
+{
+ stbi__uint32 length;
+ stbi__uint32 type;
+} stbi__pngchunk;
+
+static stbi__pngchunk stbi__get_chunk_header(stbi__context *s)
+{
+ stbi__pngchunk c;
+ c.length = stbi__get32be(s);
+ c.type = stbi__get32be(s);
+ return c;
+}
+
+static int stbi__check_png_header(stbi__context *s)
+{
+ static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 };
+ int i;
+ for (i=0; i < 8; ++i)
+ if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG");
+ return 1;
+}
+
+typedef struct
+{
+ stbi__context *s;
+ stbi_uc *idata, *expanded, *out;
+ int depth;
+} stbi__png;
+
+
+enum {
+ STBI__F_none=0,
+ STBI__F_sub=1,
+ STBI__F_up=2,
+ STBI__F_avg=3,
+ STBI__F_paeth=4,
+ // synthetic filters used for first scanline to avoid needing a dummy row of 0s
+ STBI__F_avg_first,
+ STBI__F_paeth_first
+};
+
+static stbi_uc first_row_filter[5] =
+{
+ STBI__F_none,
+ STBI__F_sub,
+ STBI__F_none,
+ STBI__F_avg_first,
+ STBI__F_paeth_first
+};
+
+static int stbi__paeth(int a, int b, int c)
+{
+ int p = a + b - c;
+ int pa = abs(p-a);
+ int pb = abs(p-b);
+ int pc = abs(p-c);
+ if (pa <= pb && pa <= pc) return a;
+ if (pb <= pc) return b;
+ return c;
+}
+
+static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 };
+
+// create the png data from post-deflated data
+static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color)
+{
+ int bytes = (depth == 16? 2 : 1);
+ stbi__context *s = a->s;
+ stbi__uint32 i,j,stride = x*out_n*bytes;
+ stbi__uint32 img_len, img_width_bytes;
+ int k;
+ int img_n = s->img_n; // copy it into a local for later
+
+ int output_bytes = out_n*bytes;
+ int filter_bytes = img_n*bytes;
+ int width = x;
+
+ STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1);
+ a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into
+ if (!a->out) return stbi__err("outofmem", "Out of memory");
+
+ if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG");
+ img_width_bytes = (((img_n * x * depth) + 7) >> 3);
+ img_len = (img_width_bytes + 1) * y;
+
+ // we used to check for exact match between raw_len and img_len on non-interlaced PNGs,
+ // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros),
+ // so just check for raw_len < img_len always.
+ if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG");
+
+ for (j=0; j < y; ++j) {
+ stbi_uc *cur = a->out + stride*j;
+ stbi_uc *prior;
+ int filter = *raw++;
+
+ if (filter > 4)
+ return stbi__err("invalid filter","Corrupt PNG");
+
+ if (depth < 8) {
+ STBI_ASSERT(img_width_bytes <= x);
+ cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place
+ filter_bytes = 1;
+ width = img_width_bytes;
+ }
+ prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above
+
+ // if first row, use special filter that doesn't sample previous row
+ if (j == 0) filter = first_row_filter[filter];
+
+ // handle first byte explicitly
+ for (k=0; k < filter_bytes; ++k) {
+ switch (filter) {
+ case STBI__F_none : cur[k] = raw[k]; break;
+ case STBI__F_sub : cur[k] = raw[k]; break;
+ case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
+ case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break;
+ case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break;
+ case STBI__F_avg_first : cur[k] = raw[k]; break;
+ case STBI__F_paeth_first: cur[k] = raw[k]; break;
+ }
+ }
+
+ if (depth == 8) {
+ if (img_n != out_n)
+ cur[img_n] = 255; // first pixel
+ raw += img_n;
+ cur += out_n;
+ prior += out_n;
+ } else if (depth == 16) {
+ if (img_n != out_n) {
+ cur[filter_bytes] = 255; // first pixel top byte
+ cur[filter_bytes+1] = 255; // first pixel bottom byte
+ }
+ raw += filter_bytes;
+ cur += output_bytes;
+ prior += output_bytes;
+ } else {
+ raw += 1;
+ cur += 1;
+ prior += 1;
+ }
+
+ // this is a little gross, so that we don't switch per-pixel or per-component
+ if (depth < 8 || img_n == out_n) {
+ int nk = (width - 1)*filter_bytes;
+ #define STBI__CASE(f) \
+ case f: \
+ for (k=0; k < nk; ++k)
+ switch (filter) {
+ // "none" filter turns into a memcpy here; make that explicit.
+ case STBI__F_none: memcpy(cur, raw, nk); break;
+ STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break;
+ STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break;
+ STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break;
+ STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break;
+ STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break;
+ STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break;
+ }
+ #undef STBI__CASE
+ raw += nk;
+ } else {
+ STBI_ASSERT(img_n+1 == out_n);
+ #define STBI__CASE(f) \
+ case f: \
+ for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \
+ for (k=0; k < filter_bytes; ++k)
+ switch (filter) {
+ STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break;
+ STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break;
+ STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break;
+ STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break;
+ STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break;
+ STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break;
+ STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break;
+ }
+ #undef STBI__CASE
+
+ // the loop above sets the high byte of the pixels' alpha, but for
+ // 16 bit png files we also need the low byte set. we'll do that here.
+ if (depth == 16) {
+ cur = a->out + stride*j; // start at the beginning of the row again
+ for (i=0; i < x; ++i,cur+=output_bytes) {
+ cur[filter_bytes+1] = 255;
+ }
+ }
+ }
+ }
+
+ // we make a separate pass to expand bits to pixels; for performance,
+ // this could run two scanlines behind the above code, so it won't
+ // intefere with filtering but will still be in the cache.
+ if (depth < 8) {
+ for (j=0; j < y; ++j) {
+ stbi_uc *cur = a->out + stride*j;
+ stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes;
+ // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit
+ // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop
+ stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range
+
+ // note that the final byte might overshoot and write more data than desired.
+ // we can allocate enough data that this never writes out of memory, but it
+ // could also overwrite the next scanline. can it overwrite non-empty data
+ // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel.
+ // so we need to explicitly clamp the final ones
+
+ if (depth == 4) {
+ for (k=x*img_n; k >= 2; k-=2, ++in) {
+ *cur++ = scale * ((*in >> 4) );
+ *cur++ = scale * ((*in ) & 0x0f);
+ }
+ if (k > 0) *cur++ = scale * ((*in >> 4) );
+ } else if (depth == 2) {
+ for (k=x*img_n; k >= 4; k-=4, ++in) {
+ *cur++ = scale * ((*in >> 6) );
+ *cur++ = scale * ((*in >> 4) & 0x03);
+ *cur++ = scale * ((*in >> 2) & 0x03);
+ *cur++ = scale * ((*in ) & 0x03);
+ }
+ if (k > 0) *cur++ = scale * ((*in >> 6) );
+ if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03);
+ if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03);
+ } else if (depth == 1) {
+ for (k=x*img_n; k >= 8; k-=8, ++in) {
+ *cur++ = scale * ((*in >> 7) );
+ *cur++ = scale * ((*in >> 6) & 0x01);
+ *cur++ = scale * ((*in >> 5) & 0x01);
+ *cur++ = scale * ((*in >> 4) & 0x01);
+ *cur++ = scale * ((*in >> 3) & 0x01);
+ *cur++ = scale * ((*in >> 2) & 0x01);
+ *cur++ = scale * ((*in >> 1) & 0x01);
+ *cur++ = scale * ((*in ) & 0x01);
+ }
+ if (k > 0) *cur++ = scale * ((*in >> 7) );
+ if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01);
+ if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01);
+ if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01);
+ if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01);
+ if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01);
+ if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01);
+ }
+ if (img_n != out_n) {
+ int q;
+ // insert alpha = 255
+ cur = a->out + stride*j;
+ if (img_n == 1) {
+ for (q=x-1; q >= 0; --q) {
+ cur[q*2+1] = 255;
+ cur[q*2+0] = cur[q];
+ }
+ } else {
+ STBI_ASSERT(img_n == 3);
+ for (q=x-1; q >= 0; --q) {
+ cur[q*4+3] = 255;
+ cur[q*4+2] = cur[q*3+2];
+ cur[q*4+1] = cur[q*3+1];
+ cur[q*4+0] = cur[q*3+0];
+ }
+ }
+ }
+ }
+ } else if (depth == 16) {
+ // force the image data from big-endian to platform-native.
+ // this is done in a separate pass due to the decoding relying
+ // on the data being untouched, but could probably be done
+ // per-line during decode if care is taken.
+ stbi_uc *cur = a->out;
+ stbi__uint16 *cur16 = (stbi__uint16*)cur;
+
+ for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) {
+ *cur16 = (cur[0] << 8) | cur[1];
+ }
+ }
+
+ return 1;
+}
+
+static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced)
+{
+ int bytes = (depth == 16 ? 2 : 1);
+ int out_bytes = out_n * bytes;
+ stbi_uc *final;
+ int p;
+ if (!interlaced)
+ return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color);
+
+ // de-interlacing
+ final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0);
+ for (p=0; p < 7; ++p) {
+ int xorig[] = { 0,4,0,2,0,1,0 };
+ int yorig[] = { 0,0,4,0,2,0,1 };
+ int xspc[] = { 8,8,4,4,2,2,1 };
+ int yspc[] = { 8,8,8,4,4,2,2 };
+ int i,j,x,y;
+ // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1
+ x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p];
+ y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p];
+ if (x && y) {
+ stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y;
+ if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) {
+ STBI_FREE(final);
+ return 0;
+ }
+ for (j=0; j < y; ++j) {
+ for (i=0; i < x; ++i) {
+ int out_y = j*yspc[p]+yorig[p];
+ int out_x = i*xspc[p]+xorig[p];
+ memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes,
+ a->out + (j*x+i)*out_bytes, out_bytes);
+ }
+ }
+ STBI_FREE(a->out);
+ image_data += img_len;
+ image_data_len -= img_len;
+ }
+ }
+ a->out = final;
+
+ return 1;
+}
+
+static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi_uc *p = z->out;
+
+ // compute color-based transparency, assuming we've
+ // already got 255 as the alpha value in the output
+ STBI_ASSERT(out_n == 2 || out_n == 4);
+
+ if (out_n == 2) {
+ for (i=0; i < pixel_count; ++i) {
+ p[1] = (p[0] == tc[0] ? 0 : 255);
+ p += 2;
+ }
+ } else {
+ for (i=0; i < pixel_count; ++i) {
+ if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])
+ p[3] = 0;
+ p += 4;
+ }
+ }
+ return 1;
+}
+
+static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi__uint16 *p = (stbi__uint16*) z->out;
+
+ // compute color-based transparency, assuming we've
+ // already got 65535 as the alpha value in the output
+ STBI_ASSERT(out_n == 2 || out_n == 4);
+
+ if (out_n == 2) {
+ for (i = 0; i < pixel_count; ++i) {
+ p[1] = (p[0] == tc[0] ? 0 : 65535);
+ p += 2;
+ }
+ } else {
+ for (i = 0; i < pixel_count; ++i) {
+ if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2])
+ p[3] = 0;
+ p += 4;
+ }
+ }
+ return 1;
+}
+
+static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n)
+{
+ stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y;
+ stbi_uc *p, *temp_out, *orig = a->out;
+
+ p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0);
+ if (p == NULL) return stbi__err("outofmem", "Out of memory");
+
+ // between here and free(out) below, exitting would leak
+ temp_out = p;
+
+ if (pal_img_n == 3) {
+ for (i=0; i < pixel_count; ++i) {
+ int n = orig[i]*4;
+ p[0] = palette[n ];
+ p[1] = palette[n+1];
+ p[2] = palette[n+2];
+ p += 3;
+ }
+ } else {
+ for (i=0; i < pixel_count; ++i) {
+ int n = orig[i]*4;
+ p[0] = palette[n ];
+ p[1] = palette[n+1];
+ p[2] = palette[n+2];
+ p[3] = palette[n+3];
+ p += 4;
+ }
+ }
+ STBI_FREE(a->out);
+ a->out = temp_out;
+
+ STBI_NOTUSED(len);
+
+ return 1;
+}
+
+static int stbi__unpremultiply_on_load = 0;
+static int stbi__de_iphone_flag = 0;
+
+STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply)
+{
+ stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply;
+}
+
+STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert)
+{
+ stbi__de_iphone_flag = flag_true_if_should_convert;
+}
+
+static void stbi__de_iphone(stbi__png *z)
+{
+ stbi__context *s = z->s;
+ stbi__uint32 i, pixel_count = s->img_x * s->img_y;
+ stbi_uc *p = z->out;
+
+ if (s->img_out_n == 3) { // convert bgr to rgb
+ for (i=0; i < pixel_count; ++i) {
+ stbi_uc t = p[0];
+ p[0] = p[2];
+ p[2] = t;
+ p += 3;
+ }
+ } else {
+ STBI_ASSERT(s->img_out_n == 4);
+ if (stbi__unpremultiply_on_load) {
+ // convert bgr to rgb and unpremultiply
+ for (i=0; i < pixel_count; ++i) {
+ stbi_uc a = p[3];
+ stbi_uc t = p[0];
+ if (a) {
+ stbi_uc half = a / 2;
+ p[0] = (p[2] * 255 + half) / a;
+ p[1] = (p[1] * 255 + half) / a;
+ p[2] = ( t * 255 + half) / a;
+ } else {
+ p[0] = p[2];
+ p[2] = t;
+ }
+ p += 4;
+ }
+ } else {
+ // convert bgr to rgb
+ for (i=0; i < pixel_count; ++i) {
+ stbi_uc t = p[0];
+ p[0] = p[2];
+ p[2] = t;
+ p += 4;
+ }
+ }
+ }
+}
+
+#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d))
+
+static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
+{
+ stbi_uc palette[1024], pal_img_n=0;
+ stbi_uc has_trans=0, tc[3];
+ stbi__uint16 tc16[3];
+ stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0;
+ int first=1,k,interlace=0, color=0, is_iphone=0;
+ stbi__context *s = z->s;
+
+ z->expanded = NULL;
+ z->idata = NULL;
+ z->out = NULL;
+
+ if (!stbi__check_png_header(s)) return 0;
+
+ if (scan == STBI__SCAN_type) return 1;
+
+ for (;;) {
+ stbi__pngchunk c = stbi__get_chunk_header(s);
+ switch (c.type) {
+ case STBI__PNG_TYPE('C','g','B','I'):
+ is_iphone = 1;
+ stbi__skip(s, c.length);
+ break;
+ case STBI__PNG_TYPE('I','H','D','R'): {
+ int comp,filter;
+ if (!first) return stbi__err("multiple IHDR","Corrupt PNG");
+ first = 0;
+ if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG");
+ s->img_x = stbi__get32be(s); if (s->img_x > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)");
+ s->img_y = stbi__get32be(s); if (s->img_y > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)");
+ z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only");
+ color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG");
+ if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG");
+ if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG");
+ comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG");
+ filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG");
+ interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG");
+ if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG");
+ if (!pal_img_n) {
+ s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0);
+ if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode");
+ if (scan == STBI__SCAN_header) return 1;
+ } else {
+ // if paletted, then pal_n is our final components, and
+ // img_n is # components to decompress/filter.
+ s->img_n = 1;
+ if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG");
+ // if SCAN_header, have to scan to see if we have a tRNS
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('P','L','T','E'): {
+ if (first) return stbi__err("first not IHDR", "Corrupt PNG");
+ if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG");
+ pal_len = c.length / 3;
+ if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG");
+ for (i=0; i < pal_len; ++i) {
+ palette[i*4+0] = stbi__get8(s);
+ palette[i*4+1] = stbi__get8(s);
+ palette[i*4+2] = stbi__get8(s);
+ palette[i*4+3] = 255;
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('t','R','N','S'): {
+ if (first) return stbi__err("first not IHDR", "Corrupt PNG");
+ if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG");
+ if (pal_img_n) {
+ if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; }
+ if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG");
+ if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG");
+ pal_img_n = 4;
+ for (i=0; i < c.length; ++i)
+ palette[i*4+3] = stbi__get8(s);
+ } else {
+ if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG");
+ if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG");
+ has_trans = 1;
+ if (z->depth == 16) {
+ for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is
+ } else {
+ for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger
+ }
+ }
+ break;
+ }
+
+ case STBI__PNG_TYPE('I','D','A','T'): {
+ if (first) return stbi__err("first not IHDR", "Corrupt PNG");
+ if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG");
+ if (scan == STBI__SCAN_header) { s->img_n = pal_img_n; return 1; }
+ if ((int)(ioff + c.length) < (int)ioff) return 0;
+ if (ioff + c.length > idata_limit) {
+ stbi__uint32 idata_limit_old = idata_limit;
+ stbi_uc *p;
+ if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096;
+ while (ioff + c.length > idata_limit)
+ idata_limit *= 2;
+ STBI_NOTUSED(idata_limit_old);
+ p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory");
+ z->idata = p;
+ }
+ if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG");
+ ioff += c.length;
+ break;
+ }
+
+ case STBI__PNG_TYPE('I','E','N','D'): {
+ stbi__uint32 raw_len, bpl;
+ if (first) return stbi__err("first not IHDR", "Corrupt PNG");
+ if (scan != STBI__SCAN_load) return 1;
+ if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG");
+ // initial guess for decoded data size to avoid unnecessary reallocs
+ bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component
+ raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */;
+ z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone);
+ if (z->expanded == NULL) return 0; // zlib should set error
+ STBI_FREE(z->idata); z->idata = NULL;
+ if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans)
+ s->img_out_n = s->img_n+1;
+ else
+ s->img_out_n = s->img_n;
+ if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0;
+ if (has_trans) {
+ if (z->depth == 16) {
+ if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0;
+ } else {
+ if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0;
+ }
+ }
+ if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2)
+ stbi__de_iphone(z);
+ if (pal_img_n) {
+ // pal_img_n == 3 or 4
+ s->img_n = pal_img_n; // record the actual colors we had
+ s->img_out_n = pal_img_n;
+ if (req_comp >= 3) s->img_out_n = req_comp;
+ if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n))
+ return 0;
+ } else if (has_trans) {
+ // non-paletted image with tRNS -> source image has (constant) alpha
+ ++s->img_n;
+ }
+ STBI_FREE(z->expanded); z->expanded = NULL;
+ return 1;
+ }
+
+ default:
+ // if critical, fail
+ if (first) return stbi__err("first not IHDR", "Corrupt PNG");
+ if ((c.type & (1 << 29)) == 0) {
+ #ifndef STBI_NO_FAILURE_STRINGS
+ // not threadsafe
+ static char invalid_chunk[] = "XXXX PNG chunk not known";
+ invalid_chunk[0] = STBI__BYTECAST(c.type >> 24);
+ invalid_chunk[1] = STBI__BYTECAST(c.type >> 16);
+ invalid_chunk[2] = STBI__BYTECAST(c.type >> 8);
+ invalid_chunk[3] = STBI__BYTECAST(c.type >> 0);
+ #endif
+ return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type");
+ }
+ stbi__skip(s, c.length);
+ break;
+ }
+ // end of PNG chunk, read and skip CRC
+ stbi__get32be(s);
+ }
+}
+
+static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri)
+{
+ void *result=NULL;
+ if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error");
+ if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) {
+ if (p->depth < 8)
+ ri->bits_per_channel = 8;
+ else
+ ri->bits_per_channel = p->depth;
+ result = p->out;
+ p->out = NULL;
+ if (req_comp && req_comp != p->s->img_out_n) {
+ if (ri->bits_per_channel == 8)
+ result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y);
+ else
+ result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y);
+ p->s->img_out_n = req_comp;
+ if (result == NULL) return result;
+ }
+ *x = p->s->img_x;
+ *y = p->s->img_y;
+ if (n) *n = p->s->img_n;
+ }
+ STBI_FREE(p->out); p->out = NULL;
+ STBI_FREE(p->expanded); p->expanded = NULL;
+ STBI_FREE(p->idata); p->idata = NULL;
+
+ return result;
+}
+
+static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ stbi__png p;
+ p.s = s;
+ return stbi__do_png(&p, x,y,comp,req_comp, ri);
+}
+
+static int stbi__png_test(stbi__context *s)
+{
+ int r;
+ r = stbi__check_png_header(s);
+ stbi__rewind(s);
+ return r;
+}
+
+static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp)
+{
+ if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) {
+ stbi__rewind( p->s );
+ return 0;
+ }
+ if (x) *x = p->s->img_x;
+ if (y) *y = p->s->img_y;
+ if (comp) *comp = p->s->img_n;
+ return 1;
+}
+
+static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ stbi__png p;
+ p.s = s;
+ return stbi__png_info_raw(&p, x, y, comp);
+}
+
+static int stbi__png_is16(stbi__context *s)
+{
+ stbi__png p;
+ p.s = s;
+ if (!stbi__png_info_raw(&p, NULL, NULL, NULL))
+ return 0;
+ if (p.depth != 16) {
+ stbi__rewind(p.s);
+ return 0;
+ }
+ return 1;
+}
+#endif
+
+// Microsoft/Windows BMP image
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_test_raw(stbi__context *s)
+{
+ int r;
+ int sz;
+ if (stbi__get8(s) != 'B') return 0;
+ if (stbi__get8(s) != 'M') return 0;
+ stbi__get32le(s); // discard filesize
+ stbi__get16le(s); // discard reserved
+ stbi__get16le(s); // discard reserved
+ stbi__get32le(s); // discard data offset
+ sz = stbi__get32le(s);
+ r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124);
+ return r;
+}
+
+static int stbi__bmp_test(stbi__context *s)
+{
+ int r = stbi__bmp_test_raw(s);
+ stbi__rewind(s);
+ return r;
+}
+
+
+// returns 0..31 for the highest set bit
+static int stbi__high_bit(unsigned int z)
+{
+ int n=0;
+ if (z == 0) return -1;
+ if (z >= 0x10000) n += 16, z >>= 16;
+ if (z >= 0x00100) n += 8, z >>= 8;
+ if (z >= 0x00010) n += 4, z >>= 4;
+ if (z >= 0x00004) n += 2, z >>= 2;
+ if (z >= 0x00002) n += 1, z >>= 1;
+ return n;
+}
+
+static int stbi__bitcount(unsigned int a)
+{
+ a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2
+ a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4
+ a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits
+ a = (a + (a >> 8)); // max 16 per 8 bits
+ a = (a + (a >> 16)); // max 32 per 8 bits
+ return a & 0xff;
+}
+
+// extract an arbitrarily-aligned N-bit value (N=bits)
+// from v, and then make it 8-bits long and fractionally
+// extend it to full full range.
+static int stbi__shiftsigned(int v, int shift, int bits)
+{
+ static unsigned int mul_table[9] = {
+ 0,
+ 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/,
+ 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/,
+ };
+ static unsigned int shift_table[9] = {
+ 0, 0,0,1,0,2,4,6,0,
+ };
+ if (shift < 0)
+ v <<= -shift;
+ else
+ v >>= shift;
+ STBI_ASSERT(v >= 0 && v < 256);
+ v >>= (8-bits);
+ STBI_ASSERT(bits >= 0 && bits <= 8);
+ return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits];
+}
+
+typedef struct
+{
+ int bpp, offset, hsz;
+ unsigned int mr,mg,mb,ma, all_a;
+} stbi__bmp_data;
+
+static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info)
+{
+ int hsz;
+ if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP");
+ stbi__get32le(s); // discard filesize
+ stbi__get16le(s); // discard reserved
+ stbi__get16le(s); // discard reserved
+ info->offset = stbi__get32le(s);
+ info->hsz = hsz = stbi__get32le(s);
+ info->mr = info->mg = info->mb = info->ma = 0;
+
+ if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown");
+ if (hsz == 12) {
+ s->img_x = stbi__get16le(s);
+ s->img_y = stbi__get16le(s);
+ } else {
+ s->img_x = stbi__get32le(s);
+ s->img_y = stbi__get32le(s);
+ }
+ if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP");
+ info->bpp = stbi__get16le(s);
+ if (hsz != 12) {
+ int compress = stbi__get32le(s);
+ if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE");
+ stbi__get32le(s); // discard sizeof
+ stbi__get32le(s); // discard hres
+ stbi__get32le(s); // discard vres
+ stbi__get32le(s); // discard colorsused
+ stbi__get32le(s); // discard max important
+ if (hsz == 40 || hsz == 56) {
+ if (hsz == 56) {
+ stbi__get32le(s);
+ stbi__get32le(s);
+ stbi__get32le(s);
+ stbi__get32le(s);
+ }
+ if (info->bpp == 16 || info->bpp == 32) {
+ if (compress == 0) {
+ if (info->bpp == 32) {
+ info->mr = 0xffu << 16;
+ info->mg = 0xffu << 8;
+ info->mb = 0xffu << 0;
+ info->ma = 0xffu << 24;
+ info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0
+ } else {
+ info->mr = 31u << 10;
+ info->mg = 31u << 5;
+ info->mb = 31u << 0;
+ }
+ } else if (compress == 3) {
+ info->mr = stbi__get32le(s);
+ info->mg = stbi__get32le(s);
+ info->mb = stbi__get32le(s);
+ // not documented, but generated by photoshop and handled by mspaint
+ if (info->mr == info->mg && info->mg == info->mb) {
+ // ?!?!?
+ return stbi__errpuc("bad BMP", "bad BMP");
+ }
+ } else
+ return stbi__errpuc("bad BMP", "bad BMP");
+ }
+ } else {
+ int i;
+ if (hsz != 108 && hsz != 124)
+ return stbi__errpuc("bad BMP", "bad BMP");
+ info->mr = stbi__get32le(s);
+ info->mg = stbi__get32le(s);
+ info->mb = stbi__get32le(s);
+ info->ma = stbi__get32le(s);
+ stbi__get32le(s); // discard color space
+ for (i=0; i < 12; ++i)
+ stbi__get32le(s); // discard color space parameters
+ if (hsz == 124) {
+ stbi__get32le(s); // discard rendering intent
+ stbi__get32le(s); // discard offset of profile data
+ stbi__get32le(s); // discard size of profile data
+ stbi__get32le(s); // discard reserved
+ }
+ }
+ }
+ return (void *) 1;
+}
+
+
+static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ stbi_uc *out;
+ unsigned int mr=0,mg=0,mb=0,ma=0, all_a;
+ stbi_uc pal[256][4];
+ int psize=0,i,j,width;
+ int flip_vertically, pad, target;
+ stbi__bmp_data info;
+ STBI_NOTUSED(ri);
+
+ info.all_a = 255;
+ if (stbi__bmp_parse_header(s, &info) == NULL)
+ return NULL; // error code already set
+
+ flip_vertically = ((int) s->img_y) > 0;
+ s->img_y = abs((int) s->img_y);
+
+ mr = info.mr;
+ mg = info.mg;
+ mb = info.mb;
+ ma = info.ma;
+ all_a = info.all_a;
+
+ if (info.hsz == 12) {
+ if (info.bpp < 24)
+ psize = (info.offset - 14 - 24) / 3;
+ } else {
+ if (info.bpp < 16)
+ psize = (info.offset - 14 - info.hsz) >> 2;
+ }
+
+ s->img_n = ma ? 4 : 3;
+ if (req_comp && req_comp >= 3) // we can directly decode 3 or 4
+ target = req_comp;
+ else
+ target = s->img_n; // if they want monochrome, we'll post-convert
+
+ // sanity-check size
+ if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0))
+ return stbi__errpuc("too large", "Corrupt BMP");
+
+ out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0);
+ if (!out) return stbi__errpuc("outofmem", "Out of memory");
+ if (info.bpp < 16) {
+ int z=0;
+ if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); }
+ for (i=0; i < psize; ++i) {
+ pal[i][2] = stbi__get8(s);
+ pal[i][1] = stbi__get8(s);
+ pal[i][0] = stbi__get8(s);
+ if (info.hsz != 12) stbi__get8(s);
+ pal[i][3] = 255;
+ }
+ stbi__skip(s, info.offset - 14 - info.hsz - psize * (info.hsz == 12 ? 3 : 4));
+ if (info.bpp == 1) width = (s->img_x + 7) >> 3;
+ else if (info.bpp == 4) width = (s->img_x + 1) >> 1;
+ else if (info.bpp == 8) width = s->img_x;
+ else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); }
+ pad = (-width)&3;
+ if (info.bpp == 1) {
+ for (j=0; j < (int) s->img_y; ++j) {
+ int bit_offset = 7, v = stbi__get8(s);
+ for (i=0; i < (int) s->img_x; ++i) {
+ int color = (v>>bit_offset)&0x1;
+ out[z++] = pal[color][0];
+ out[z++] = pal[color][1];
+ out[z++] = pal[color][2];
+ if((--bit_offset) < 0) {
+ bit_offset = 7;
+ v = stbi__get8(s);
+ }
+ }
+ stbi__skip(s, pad);
+ }
+ } else {
+ for (j=0; j < (int) s->img_y; ++j) {
+ for (i=0; i < (int) s->img_x; i += 2) {
+ int v=stbi__get8(s),v2=0;
+ if (info.bpp == 4) {
+ v2 = v & 15;
+ v >>= 4;
+ }
+ out[z++] = pal[v][0];
+ out[z++] = pal[v][1];
+ out[z++] = pal[v][2];
+ if (target == 4) out[z++] = 255;
+ if (i+1 == (int) s->img_x) break;
+ v = (info.bpp == 8) ? stbi__get8(s) : v2;
+ out[z++] = pal[v][0];
+ out[z++] = pal[v][1];
+ out[z++] = pal[v][2];
+ if (target == 4) out[z++] = 255;
+ }
+ stbi__skip(s, pad);
+ }
+ }
+ } else {
+ int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0;
+ int z = 0;
+ int easy=0;
+ stbi__skip(s, info.offset - 14 - info.hsz);
+ if (info.bpp == 24) width = 3 * s->img_x;
+ else if (info.bpp == 16) width = 2*s->img_x;
+ else /* bpp = 32 and pad = 0 */ width=0;
+ pad = (-width) & 3;
+ if (info.bpp == 24) {
+ easy = 1;
+ } else if (info.bpp == 32) {
+ if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000)
+ easy = 2;
+ }
+ if (!easy) {
+ if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); }
+ // right shift amt to put high bit in position #7
+ rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr);
+ gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg);
+ bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb);
+ ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma);
+ }
+ for (j=0; j < (int) s->img_y; ++j) {
+ if (easy) {
+ for (i=0; i < (int) s->img_x; ++i) {
+ unsigned char a;
+ out[z+2] = stbi__get8(s);
+ out[z+1] = stbi__get8(s);
+ out[z+0] = stbi__get8(s);
+ z += 3;
+ a = (easy == 2 ? stbi__get8(s) : 255);
+ all_a |= a;
+ if (target == 4) out[z++] = a;
+ }
+ } else {
+ int bpp = info.bpp;
+ for (i=0; i < (int) s->img_x; ++i) {
+ stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s));
+ unsigned int a;
+ out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount));
+ out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount));
+ out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount));
+ a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255);
+ all_a |= a;
+ if (target == 4) out[z++] = STBI__BYTECAST(a);
+ }
+ }
+ stbi__skip(s, pad);
+ }
+ }
+
+ // if alpha channel is all 0s, replace with all 255s
+ if (target == 4 && all_a == 0)
+ for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4)
+ out[i] = 255;
+
+ if (flip_vertically) {
+ stbi_uc t;
+ for (j=0; j < (int) s->img_y>>1; ++j) {
+ stbi_uc *p1 = out + j *s->img_x*target;
+ stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target;
+ for (i=0; i < (int) s->img_x*target; ++i) {
+ t = p1[i], p1[i] = p2[i], p2[i] = t;
+ }
+ }
+ }
+
+ if (req_comp && req_comp != target) {
+ out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y);
+ if (out == NULL) return out; // stbi__convert_format frees input on failure
+ }
+
+ *x = s->img_x;
+ *y = s->img_y;
+ if (comp) *comp = s->img_n;
+ return out;
+}
+#endif
+
+// Targa Truevision - TGA
+// by Jonathan Dummer
+#ifndef STBI_NO_TGA
+// returns STBI_rgb or whatever, 0 on error
+static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16)
+{
+ // only RGB or RGBA (incl. 16bit) or grey allowed
+ if (is_rgb16) *is_rgb16 = 0;
+ switch(bits_per_pixel) {
+ case 8: return STBI_grey;
+ case 16: if(is_grey) return STBI_grey_alpha;
+ // fallthrough
+ case 15: if(is_rgb16) *is_rgb16 = 1;
+ return STBI_rgb;
+ case 24: // fallthrough
+ case 32: return bits_per_pixel/8;
+ default: return 0;
+ }
+}
+
+static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp;
+ int sz, tga_colormap_type;
+ stbi__get8(s); // discard Offset
+ tga_colormap_type = stbi__get8(s); // colormap type
+ if( tga_colormap_type > 1 ) {
+ stbi__rewind(s);
+ return 0; // only RGB or indexed allowed
+ }
+ tga_image_type = stbi__get8(s); // image type
+ if ( tga_colormap_type == 1 ) { // colormapped (paletted) image
+ if (tga_image_type != 1 && tga_image_type != 9) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s,4); // skip index of first colormap entry and number of entries
+ sz = stbi__get8(s); // check bits per palette color entry
+ if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) {
+ stbi__rewind(s);
+ return 0;
+ }
+ stbi__skip(s,4); // skip image x and y origin
+ tga_colormap_bpp = sz;
+ } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE
+ if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) {
+ stbi__rewind(s);
+ return 0; // only RGB or grey allowed, +/- RLE
+ }
+ stbi__skip(s,9); // skip colormap specification and image x/y origin
+ tga_colormap_bpp = 0;
+ }
+ tga_w = stbi__get16le(s);
+ if( tga_w < 1 ) {
+ stbi__rewind(s);
+ return 0; // test width
+ }
+ tga_h = stbi__get16le(s);
+ if( tga_h < 1 ) {
+ stbi__rewind(s);
+ return 0; // test height
+ }
+ tga_bits_per_pixel = stbi__get8(s); // bits per pixel
+ stbi__get8(s); // ignore alpha bits
+ if (tga_colormap_bpp != 0) {
+ if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) {
+ // when using a colormap, tga_bits_per_pixel is the size of the indexes
+ // I don't think anything but 8 or 16bit indexes makes sense
+ stbi__rewind(s);
+ return 0;
+ }
+ tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL);
+ } else {
+ tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL);
+ }
+ if(!tga_comp) {
+ stbi__rewind(s);
+ return 0;
+ }
+ if (x) *x = tga_w;
+ if (y) *y = tga_h;
+ if (comp) *comp = tga_comp;
+ return 1; // seems to have passed everything
+}
+
+static int stbi__tga_test(stbi__context *s)
+{
+ int res = 0;
+ int sz, tga_color_type;
+ stbi__get8(s); // discard Offset
+ tga_color_type = stbi__get8(s); // color type
+ if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed
+ sz = stbi__get8(s); // image type
+ if ( tga_color_type == 1 ) { // colormapped (paletted) image
+ if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9
+ stbi__skip(s,4); // skip index of first colormap entry and number of entries
+ sz = stbi__get8(s); // check bits per palette color entry
+ if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd;
+ stbi__skip(s,4); // skip image x and y origin
+ } else { // "normal" image w/o colormap
+ if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE
+ stbi__skip(s,9); // skip colormap specification and image x/y origin
+ }
+ if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width
+ if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height
+ sz = stbi__get8(s); // bits per pixel
+ if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index
+ if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd;
+
+ res = 1; // if we got this far, everything's good and we can return 1 instead of 0
+
+errorEnd:
+ stbi__rewind(s);
+ return res;
+}
+
+// read 16bit value and convert to 24bit RGB
+static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out)
+{
+ stbi__uint16 px = (stbi__uint16)stbi__get16le(s);
+ stbi__uint16 fiveBitMask = 31;
+ // we have 3 channels with 5bits each
+ int r = (px >> 10) & fiveBitMask;
+ int g = (px >> 5) & fiveBitMask;
+ int b = px & fiveBitMask;
+ // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later
+ out[0] = (stbi_uc)((r * 255)/31);
+ out[1] = (stbi_uc)((g * 255)/31);
+ out[2] = (stbi_uc)((b * 255)/31);
+
+ // some people claim that the most significant bit might be used for alpha
+ // (possibly if an alpha-bit is set in the "image descriptor byte")
+ // but that only made 16bit test images completely translucent..
+ // so let's treat all 15 and 16bit TGAs as RGB with no alpha.
+}
+
+static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ // read in the TGA header stuff
+ int tga_offset = stbi__get8(s);
+ int tga_indexed = stbi__get8(s);
+ int tga_image_type = stbi__get8(s);
+ int tga_is_RLE = 0;
+ int tga_palette_start = stbi__get16le(s);
+ int tga_palette_len = stbi__get16le(s);
+ int tga_palette_bits = stbi__get8(s);
+ int tga_x_origin = stbi__get16le(s);
+ int tga_y_origin = stbi__get16le(s);
+ int tga_width = stbi__get16le(s);
+ int tga_height = stbi__get16le(s);
+ int tga_bits_per_pixel = stbi__get8(s);
+ int tga_comp, tga_rgb16=0;
+ int tga_inverted = stbi__get8(s);
+ // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?)
+ // image data
+ unsigned char *tga_data;
+ unsigned char *tga_palette = NULL;
+ int i, j;
+ unsigned char raw_data[4] = {0};
+ int RLE_count = 0;
+ int RLE_repeating = 0;
+ int read_next_pixel = 1;
+ STBI_NOTUSED(ri);
+
+ // do a tiny bit of precessing
+ if ( tga_image_type >= 8 )
+ {
+ tga_image_type -= 8;
+ tga_is_RLE = 1;
+ }
+ tga_inverted = 1 - ((tga_inverted >> 5) & 1);
+
+ // If I'm paletted, then I'll use the number of bits from the palette
+ if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16);
+ else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16);
+
+ if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency
+ return stbi__errpuc("bad format", "Can't find out TGA pixelformat");
+
+ // tga info
+ *x = tga_width;
+ *y = tga_height;
+ if (comp) *comp = tga_comp;
+
+ if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0))
+ return stbi__errpuc("too large", "Corrupt TGA");
+
+ tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0);
+ if (!tga_data) return stbi__errpuc("outofmem", "Out of memory");
+
+ // skip to the data's starting position (offset usually = 0)
+ stbi__skip(s, tga_offset );
+
+ if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) {
+ for (i=0; i < tga_height; ++i) {
+ int row = tga_inverted ? tga_height -i - 1 : i;
+ stbi_uc *tga_row = tga_data + row*tga_width*tga_comp;
+ stbi__getn(s, tga_row, tga_width * tga_comp);
+ }
+ } else {
+ // do I need to load a palette?
+ if ( tga_indexed)
+ {
+ // any data to skip? (offset usually = 0)
+ stbi__skip(s, tga_palette_start );
+ // load the palette
+ tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0);
+ if (!tga_palette) {
+ STBI_FREE(tga_data);
+ return stbi__errpuc("outofmem", "Out of memory");
+ }
+ if (tga_rgb16) {
+ stbi_uc *pal_entry = tga_palette;
+ STBI_ASSERT(tga_comp == STBI_rgb);
+ for (i=0; i < tga_palette_len; ++i) {
+ stbi__tga_read_rgb16(s, pal_entry);
+ pal_entry += tga_comp;
+ }
+ } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) {
+ STBI_FREE(tga_data);
+ STBI_FREE(tga_palette);
+ return stbi__errpuc("bad palette", "Corrupt TGA");
+ }
+ }
+ // load the data
+ for (i=0; i < tga_width * tga_height; ++i)
+ {
+ // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk?
+ if ( tga_is_RLE )
+ {
+ if ( RLE_count == 0 )
+ {
+ // yep, get the next byte as a RLE command
+ int RLE_cmd = stbi__get8(s);
+ RLE_count = 1 + (RLE_cmd & 127);
+ RLE_repeating = RLE_cmd >> 7;
+ read_next_pixel = 1;
+ } else if ( !RLE_repeating )
+ {
+ read_next_pixel = 1;
+ }
+ } else
+ {
+ read_next_pixel = 1;
+ }
+ // OK, if I need to read a pixel, do it now
+ if ( read_next_pixel )
+ {
+ // load however much data we did have
+ if ( tga_indexed )
+ {
+ // read in index, then perform the lookup
+ int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s);
+ if ( pal_idx >= tga_palette_len ) {
+ // invalid index
+ pal_idx = 0;
+ }
+ pal_idx *= tga_comp;
+ for (j = 0; j < tga_comp; ++j) {
+ raw_data[j] = tga_palette[pal_idx+j];
+ }
+ } else if(tga_rgb16) {
+ STBI_ASSERT(tga_comp == STBI_rgb);
+ stbi__tga_read_rgb16(s, raw_data);
+ } else {
+ // read in the data raw
+ for (j = 0; j < tga_comp; ++j) {
+ raw_data[j] = stbi__get8(s);
+ }
+ }
+ // clear the reading flag for the next pixel
+ read_next_pixel = 0;
+ } // end of reading a pixel
+
+ // copy data
+ for (j = 0; j < tga_comp; ++j)
+ tga_data[i*tga_comp+j] = raw_data[j];
+
+ // in case we're in RLE mode, keep counting down
+ --RLE_count;
+ }
+ // do I need to invert the image?
+ if ( tga_inverted )
+ {
+ for (j = 0; j*2 < tga_height; ++j)
+ {
+ int index1 = j * tga_width * tga_comp;
+ int index2 = (tga_height - 1 - j) * tga_width * tga_comp;
+ for (i = tga_width * tga_comp; i > 0; --i)
+ {
+ unsigned char temp = tga_data[index1];
+ tga_data[index1] = tga_data[index2];
+ tga_data[index2] = temp;
+ ++index1;
+ ++index2;
+ }
+ }
+ }
+ // clear my palette, if I had one
+ if ( tga_palette != NULL )
+ {
+ STBI_FREE( tga_palette );
+ }
+ }
+
+ // swap RGB - if the source data was RGB16, it already is in the right order
+ if (tga_comp >= 3 && !tga_rgb16)
+ {
+ unsigned char* tga_pixel = tga_data;
+ for (i=0; i < tga_width * tga_height; ++i)
+ {
+ unsigned char temp = tga_pixel[0];
+ tga_pixel[0] = tga_pixel[2];
+ tga_pixel[2] = temp;
+ tga_pixel += tga_comp;
+ }
+ }
+
+ // convert to target component count
+ if (req_comp && req_comp != tga_comp)
+ tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height);
+
+ // the things I do to get rid of an error message, and yet keep
+ // Microsoft's C compilers happy... [8^(
+ tga_palette_start = tga_palette_len = tga_palette_bits =
+ tga_x_origin = tga_y_origin = 0;
+ // OK, done
+ return tga_data;
+}
+#endif
+
+// *************************************************************************************************
+// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_test(stbi__context *s)
+{
+ int r = (stbi__get32be(s) == 0x38425053);
+ stbi__rewind(s);
+ return r;
+}
+
+static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount)
+{
+ int count, nleft, len;
+
+ count = 0;
+ while ((nleft = pixelCount - count) > 0) {
+ len = stbi__get8(s);
+ if (len == 128) {
+ // No-op.
+ } else if (len < 128) {
+ // Copy next len+1 bytes literally.
+ len++;
+ if (len > nleft) return 0; // corrupt data
+ count += len;
+ while (len) {
+ *p = stbi__get8(s);
+ p += 4;
+ len--;
+ }
+ } else if (len > 128) {
+ stbi_uc val;
+ // Next -len+1 bytes in the dest are replicated from next source byte.
+ // (Interpret len as a negative 8-bit int.)
+ len = 257 - len;
+ if (len > nleft) return 0; // corrupt data
+ val = stbi__get8(s);
+ count += len;
+ while (len) {
+ *p = val;
+ p += 4;
+ len--;
+ }
+ }
+ }
+
+ return 1;
+}
+
+static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc)
+{
+ int pixelCount;
+ int channelCount, compression;
+ int channel, i;
+ int bitdepth;
+ int w,h;
+ stbi_uc *out;
+ STBI_NOTUSED(ri);
+
+ // Check identifier
+ if (stbi__get32be(s) != 0x38425053) // "8BPS"
+ return stbi__errpuc("not PSD", "Corrupt PSD image");
+
+ // Check file type version.
+ if (stbi__get16be(s) != 1)
+ return stbi__errpuc("wrong version", "Unsupported version of PSD image");
+
+ // Skip 6 reserved bytes.
+ stbi__skip(s, 6 );
+
+ // Read the number of channels (R, G, B, A, etc).
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16)
+ return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image");
+
+ // Read the rows and columns of the image.
+ h = stbi__get32be(s);
+ w = stbi__get32be(s);
+
+ // Make sure the depth is 8 bits.
+ bitdepth = stbi__get16be(s);
+ if (bitdepth != 8 && bitdepth != 16)
+ return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit");
+
+ // Make sure the color mode is RGB.
+ // Valid options are:
+ // 0: Bitmap
+ // 1: Grayscale
+ // 2: Indexed color
+ // 3: RGB color
+ // 4: CMYK color
+ // 7: Multichannel
+ // 8: Duotone
+ // 9: Lab color
+ if (stbi__get16be(s) != 3)
+ return stbi__errpuc("wrong color format", "PSD is not in RGB color format");
+
+ // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.)
+ stbi__skip(s,stbi__get32be(s) );
+
+ // Skip the image resources. (resolution, pen tool paths, etc)
+ stbi__skip(s, stbi__get32be(s) );
+
+ // Skip the reserved data.
+ stbi__skip(s, stbi__get32be(s) );
+
+ // Find out if the data is compressed.
+ // Known values:
+ // 0: no compression
+ // 1: RLE compressed
+ compression = stbi__get16be(s);
+ if (compression > 1)
+ return stbi__errpuc("bad compression", "PSD has an unknown compression format");
+
+ // Check size
+ if (!stbi__mad3sizes_valid(4, w, h, 0))
+ return stbi__errpuc("too large", "Corrupt PSD");
+
+ // Create the destination image.
+
+ if (!compression && bitdepth == 16 && bpc == 16) {
+ out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0);
+ ri->bits_per_channel = 16;
+ } else
+ out = (stbi_uc *) stbi__malloc(4 * w*h);
+
+ if (!out) return stbi__errpuc("outofmem", "Out of memory");
+ pixelCount = w*h;
+
+ // Initialize the data to zero.
+ //memset( out, 0, pixelCount * 4 );
+
+ // Finally, the image data.
+ if (compression) {
+ // RLE as used by .PSD and .TIFF
+ // Loop until you get the number of unpacked bytes you are expecting:
+ // Read the next source byte into n.
+ // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally.
+ // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times.
+ // Else if n is 128, noop.
+ // Endloop
+
+ // The RLE-compressed data is preceeded by a 2-byte data count for each row in the data,
+ // which we're going to just skip.
+ stbi__skip(s, h * channelCount * 2 );
+
+ // Read the RLE data by channel.
+ for (channel = 0; channel < 4; channel++) {
+ stbi_uc *p;
+
+ p = out+channel;
+ if (channel >= channelCount) {
+ // Fill this channel with default data.
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = (channel == 3 ? 255 : 0);
+ } else {
+ // Read the RLE data.
+ if (!stbi__psd_decode_rle(s, p, pixelCount)) {
+ STBI_FREE(out);
+ return stbi__errpuc("corrupt", "bad RLE data");
+ }
+ }
+ }
+
+ } else {
+ // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...)
+ // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image.
+
+ // Read the data by channel.
+ for (channel = 0; channel < 4; channel++) {
+ if (channel >= channelCount) {
+ // Fill this channel with default data.
+ if (bitdepth == 16 && bpc == 16) {
+ stbi__uint16 *q = ((stbi__uint16 *) out) + channel;
+ stbi__uint16 val = channel == 3 ? 65535 : 0;
+ for (i = 0; i < pixelCount; i++, q += 4)
+ *q = val;
+ } else {
+ stbi_uc *p = out+channel;
+ stbi_uc val = channel == 3 ? 255 : 0;
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = val;
+ }
+ } else {
+ if (ri->bits_per_channel == 16) { // output bpc
+ stbi__uint16 *q = ((stbi__uint16 *) out) + channel;
+ for (i = 0; i < pixelCount; i++, q += 4)
+ *q = (stbi__uint16) stbi__get16be(s);
+ } else {
+ stbi_uc *p = out+channel;
+ if (bitdepth == 16) { // input bpc
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = (stbi_uc) (stbi__get16be(s) >> 8);
+ } else {
+ for (i = 0; i < pixelCount; i++, p += 4)
+ *p = stbi__get8(s);
+ }
+ }
+ }
+ }
+ }
+
+ // remove weird white matte from PSD
+ if (channelCount >= 4) {
+ if (ri->bits_per_channel == 16) {
+ for (i=0; i < w*h; ++i) {
+ stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i;
+ if (pixel[3] != 0 && pixel[3] != 65535) {
+ float a = pixel[3] / 65535.0f;
+ float ra = 1.0f / a;
+ float inv_a = 65535.0f * (1 - ra);
+ pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a);
+ pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a);
+ pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a);
+ }
+ }
+ } else {
+ for (i=0; i < w*h; ++i) {
+ unsigned char *pixel = out + 4*i;
+ if (pixel[3] != 0 && pixel[3] != 255) {
+ float a = pixel[3] / 255.0f;
+ float ra = 1.0f / a;
+ float inv_a = 255.0f * (1 - ra);
+ pixel[0] = (unsigned char) (pixel[0]*ra + inv_a);
+ pixel[1] = (unsigned char) (pixel[1]*ra + inv_a);
+ pixel[2] = (unsigned char) (pixel[2]*ra + inv_a);
+ }
+ }
+ }
+ }
+
+ // convert to desired output format
+ if (req_comp && req_comp != 4) {
+ if (ri->bits_per_channel == 16)
+ out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h);
+ else
+ out = stbi__convert_format(out, 4, req_comp, w, h);
+ if (out == NULL) return out; // stbi__convert_format frees input on failure
+ }
+
+ if (comp) *comp = 4;
+ *y = h;
+ *x = w;
+
+ return out;
+}
+#endif
+
+// *************************************************************************************************
+// Softimage PIC loader
+// by Tom Seddon
+//
+// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format
+// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_is4(stbi__context *s,const char *str)
+{
+ int i;
+ for (i=0; i<4; ++i)
+ if (stbi__get8(s) != (stbi_uc)str[i])
+ return 0;
+
+ return 1;
+}
+
+static int stbi__pic_test_core(stbi__context *s)
+{
+ int i;
+
+ if (!stbi__pic_is4(s,"\x53\x80\xF6\x34"))
+ return 0;
+
+ for(i=0;i<84;++i)
+ stbi__get8(s);
+
+ if (!stbi__pic_is4(s,"PICT"))
+ return 0;
+
+ return 1;
+}
+
+typedef struct
+{
+ stbi_uc size,type,channel;
+} stbi__pic_packet;
+
+static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest)
+{
+ int mask=0x80, i;
+
+ for (i=0; i<4; ++i, mask>>=1) {
+ if (channel & mask) {
+ if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short");
+ dest[i]=stbi__get8(s);
+ }
+ }
+
+ return dest;
+}
+
+static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src)
+{
+ int mask=0x80,i;
+
+ for (i=0;i<4; ++i, mask>>=1)
+ if (channel&mask)
+ dest[i]=src[i];
+}
+
+static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result)
+{
+ int act_comp=0,num_packets=0,y,chained;
+ stbi__pic_packet packets[10];
+
+ // this will (should...) cater for even some bizarre stuff like having data
+ // for the same channel in multiple packets.
+ do {
+ stbi__pic_packet *packet;
+
+ if (num_packets==sizeof(packets)/sizeof(packets[0]))
+ return stbi__errpuc("bad format","too many packets");
+
+ packet = &packets[num_packets++];
+
+ chained = stbi__get8(s);
+ packet->size = stbi__get8(s);
+ packet->type = stbi__get8(s);
+ packet->channel = stbi__get8(s);
+
+ act_comp |= packet->channel;
+
+ if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)");
+ if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp");
+ } while (chained);
+
+ *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel?
+
+ for(y=0; ytype) {
+ default:
+ return stbi__errpuc("bad format","packet has bad compression type");
+
+ case 0: {//uncompressed
+ int x;
+
+ for(x=0;xchannel,dest))
+ return 0;
+ break;
+ }
+
+ case 1://Pure RLE
+ {
+ int left=width, i;
+
+ while (left>0) {
+ stbi_uc count,value[4];
+
+ count=stbi__get8(s);
+ if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)");
+
+ if (count > left)
+ count = (stbi_uc) left;
+
+ if (!stbi__readval(s,packet->channel,value)) return 0;
+
+ for(i=0; ichannel,dest,value);
+ left -= count;
+ }
+ }
+ break;
+
+ case 2: {//Mixed RLE
+ int left=width;
+ while (left>0) {
+ int count = stbi__get8(s), i;
+ if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)");
+
+ if (count >= 128) { // Repeated
+ stbi_uc value[4];
+
+ if (count==128)
+ count = stbi__get16be(s);
+ else
+ count -= 127;
+ if (count > left)
+ return stbi__errpuc("bad file","scanline overrun");
+
+ if (!stbi__readval(s,packet->channel,value))
+ return 0;
+
+ for(i=0;ichannel,dest,value);
+ } else { // Raw
+ ++count;
+ if (count>left) return stbi__errpuc("bad file","scanline overrun");
+
+ for(i=0;ichannel,dest))
+ return 0;
+ }
+ left-=count;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+ return result;
+}
+
+static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri)
+{
+ stbi_uc *result;
+ int i, x,y, internal_comp;
+ STBI_NOTUSED(ri);
+
+ if (!comp) comp = &internal_comp;
+
+ for (i=0; i<92; ++i)
+ stbi__get8(s);
+
+ x = stbi__get16be(s);
+ y = stbi__get16be(s);
+ if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)");
+ if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode");
+
+ stbi__get32be(s); //skip `ratio'
+ stbi__get16be(s); //skip `fields'
+ stbi__get16be(s); //skip `pad'
+
+ // intermediate buffer is RGBA
+ result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0);
+ memset(result, 0xff, x*y*4);
+
+ if (!stbi__pic_load_core(s,x,y,comp, result)) {
+ STBI_FREE(result);
+ result=0;
+ }
+ *px = x;
+ *py = y;
+ if (req_comp == 0) req_comp = *comp;
+ result=stbi__convert_format(result,4,req_comp,x,y);
+
+ return result;
+}
+
+static int stbi__pic_test(stbi__context *s)
+{
+ int r = stbi__pic_test_core(s);
+ stbi__rewind(s);
+ return r;
+}
+#endif
+
+// *************************************************************************************************
+// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb
+
+#ifndef STBI_NO_GIF
+typedef struct
+{
+ stbi__int16 prefix;
+ stbi_uc first;
+ stbi_uc suffix;
+} stbi__gif_lzw;
+
+typedef struct
+{
+ int w,h;
+ stbi_uc *out; // output buffer (always 4 components)
+ stbi_uc *background; // The current "background" as far as a gif is concerned
+ stbi_uc *history;
+ int flags, bgindex, ratio, transparent, eflags;
+ stbi_uc pal[256][4];
+ stbi_uc lpal[256][4];
+ stbi__gif_lzw codes[8192];
+ stbi_uc *color_table;
+ int parse, step;
+ int lflags;
+ int start_x, start_y;
+ int max_x, max_y;
+ int cur_x, cur_y;
+ int line_size;
+ int delay;
+} stbi__gif;
+
+static int stbi__gif_test_raw(stbi__context *s)
+{
+ int sz;
+ if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0;
+ sz = stbi__get8(s);
+ if (sz != '9' && sz != '7') return 0;
+ if (stbi__get8(s) != 'a') return 0;
+ return 1;
+}
+
+static int stbi__gif_test(stbi__context *s)
+{
+ int r = stbi__gif_test_raw(s);
+ stbi__rewind(s);
+ return r;
+}
+
+static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp)
+{
+ int i;
+ for (i=0; i < num_entries; ++i) {
+ pal[i][2] = stbi__get8(s);
+ pal[i][1] = stbi__get8(s);
+ pal[i][0] = stbi__get8(s);
+ pal[i][3] = transp == i ? 0 : 255;
+ }
+}
+
+static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info)
+{
+ stbi_uc version;
+ if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8')
+ return stbi__err("not GIF", "Corrupt GIF");
+
+ version = stbi__get8(s);
+ if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF");
+ if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF");
+
+ stbi__g_failure_reason = "";
+ g->w = stbi__get16le(s);
+ g->h = stbi__get16le(s);
+ g->flags = stbi__get8(s);
+ g->bgindex = stbi__get8(s);
+ g->ratio = stbi__get8(s);
+ g->transparent = -1;
+
+ if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments
+
+ if (is_info) return 1;
+
+ if (g->flags & 0x80)
+ stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1);
+
+ return 1;
+}
+
+static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp)
+{
+ stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif));
+ if (!stbi__gif_header(s, g, comp, 1)) {
+ STBI_FREE(g);
+ stbi__rewind( s );
+ return 0;
+ }
+ if (x) *x = g->w;
+ if (y) *y = g->h;
+ STBI_FREE(g);
+ return 1;
+}
+
+static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code)
+{
+ stbi_uc *p, *c;
+ int idx;
+
+ // recurse to decode the prefixes, since the linked-list is backwards,
+ // and working backwards through an interleaved image would be nasty
+ if (g->codes[code].prefix >= 0)
+ stbi__out_gif_code(g, g->codes[code].prefix);
+
+ if (g->cur_y >= g->max_y) return;
+
+ idx = g->cur_x + g->cur_y;
+ p = &g->out[idx];
+ g->history[idx / 4] = 1;
+
+ c = &g->color_table[g->codes[code].suffix * 4];
+ if (c[3] > 128) { // don't render transparent pixels;
+ p[0] = c[2];
+ p[1] = c[1];
+ p[2] = c[0];
+ p[3] = c[3];
+ }
+ g->cur_x += 4;
+
+ if (g->cur_x >= g->max_x) {
+ g->cur_x = g->start_x;
+ g->cur_y += g->step;
+
+ while (g->cur_y >= g->max_y && g->parse > 0) {
+ g->step = (1 << g->parse) * g->line_size;
+ g->cur_y = g->start_y + (g->step >> 1);
+ --g->parse;
+ }
+ }
+}
+
+static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g)
+{
+ stbi_uc lzw_cs;
+ stbi__int32 len, init_code;
+ stbi__uint32 first;
+ stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear;
+ stbi__gif_lzw *p;
+
+ lzw_cs = stbi__get8(s);
+ if (lzw_cs > 12) return NULL;
+ clear = 1 << lzw_cs;
+ first = 1;
+ codesize = lzw_cs + 1;
+ codemask = (1 << codesize) - 1;
+ bits = 0;
+ valid_bits = 0;
+ for (init_code = 0; init_code < clear; init_code++) {
+ g->codes[init_code].prefix = -1;
+ g->codes[init_code].first = (stbi_uc) init_code;
+ g->codes[init_code].suffix = (stbi_uc) init_code;
+ }
+
+ // support no starting clear code
+ avail = clear+2;
+ oldcode = -1;
+
+ len = 0;
+ for(;;) {
+ if (valid_bits < codesize) {
+ if (len == 0) {
+ len = stbi__get8(s); // start new block
+ if (len == 0)
+ return g->out;
+ }
+ --len;
+ bits |= (stbi__int32) stbi__get8(s) << valid_bits;
+ valid_bits += 8;
+ } else {
+ stbi__int32 code = bits & codemask;
+ bits >>= codesize;
+ valid_bits -= codesize;
+ // @OPTIMIZE: is there some way we can accelerate the non-clear path?
+ if (code == clear) { // clear code
+ codesize = lzw_cs + 1;
+ codemask = (1 << codesize) - 1;
+ avail = clear + 2;
+ oldcode = -1;
+ first = 0;
+ } else if (code == clear + 1) { // end of stream code
+ stbi__skip(s, len);
+ while ((len = stbi__get8(s)) > 0)
+ stbi__skip(s,len);
+ return g->out;
+ } else if (code <= avail) {
+ if (first) {
+ return stbi__errpuc("no clear code", "Corrupt GIF");
+ }
+
+ if (oldcode >= 0) {
+ p = &g->codes[avail++];
+ if (avail > 8192) {
+ return stbi__errpuc("too many codes", "Corrupt GIF");
+ }
+
+ p->prefix = (stbi__int16) oldcode;
+ p->first = g->codes[oldcode].first;
+ p->suffix = (code == avail) ? p->first : g->codes[code].first;
+ } else if (code == avail)
+ return stbi__errpuc("illegal code in raster", "Corrupt GIF");
+
+ stbi__out_gif_code(g, (stbi__uint16) code);
+
+ if ((avail & codemask) == 0 && avail <= 0x0FFF) {
+ codesize++;
+ codemask = (1 << codesize) - 1;
+ }
+
+ oldcode = code;
+ } else {
+ return stbi__errpuc("illegal code in raster", "Corrupt GIF");
+ }
+ }
+ }
+}
+
+// this function is designed to support animated gifs, although stb_image doesn't support it
+// two back is the image from two frames ago, used for a very specific disposal format
+static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back)
+{
+ int dispose;
+ int first_frame;
+ int pi;
+ int pcount;
+
+ // on first frame, any non-written pixels get the background colour (non-transparent)
+ first_frame = 0;
+ if (g->out == 0) {
+ if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header
+ g->out = (stbi_uc *) stbi__malloc(4 * g->w * g->h);
+ g->background = (stbi_uc *) stbi__malloc(4 * g->w * g->h);
+ g->history = (stbi_uc *) stbi__malloc(g->w * g->h);
+ if (g->out == 0) return stbi__errpuc("outofmem", "Out of memory");
+
+ // image is treated as "tranparent" at the start - ie, nothing overwrites the current background;
+ // background colour is only used for pixels that are not rendered first frame, after that "background"
+ // color refers to teh color that was there the previous frame.
+ memset( g->out, 0x00, 4 * g->w * g->h );
+ memset( g->background, 0x00, 4 * g->w * g->h ); // state of the background (starts transparent)
+ memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame
+ first_frame = 1;
+ } else {
+ // second frame - how do we dispoase of the previous one?
+ dispose = (g->eflags & 0x1C) >> 2;
+ pcount = g->w * g->h;
+
+ if ((dispose == 3) && (two_back == 0)) {
+ dispose = 2; // if I don't have an image to revert back to, default to the old background
+ }
+
+ if (dispose == 3) { // use previous graphic
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi]) {
+ memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 );
+ }
+ }
+ } else if (dispose == 2) {
+ // restore what was changed last frame to background before that frame;
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi]) {
+ memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 );
+ }
+ }
+ } else {
+ // This is a non-disposal case eithe way, so just
+ // leave the pixels as is, and they will become the new background
+ // 1: do not dispose
+ // 0: not specified.
+ }
+
+ // background is what out is after the undoing of the previou frame;
+ memcpy( g->background, g->out, 4 * g->w * g->h );
+ }
+
+ // clear my history;
+ memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame
+
+ for (;;) {
+ int tag = stbi__get8(s);
+ switch (tag) {
+ case 0x2C: /* Image Descriptor */
+ {
+ stbi__int32 x, y, w, h;
+ stbi_uc *o;
+
+ x = stbi__get16le(s);
+ y = stbi__get16le(s);
+ w = stbi__get16le(s);
+ h = stbi__get16le(s);
+ if (((x + w) > (g->w)) || ((y + h) > (g->h)))
+ return stbi__errpuc("bad Image Descriptor", "Corrupt GIF");
+
+ g->line_size = g->w * 4;
+ g->start_x = x * 4;
+ g->start_y = y * g->line_size;
+ g->max_x = g->start_x + w * 4;
+ g->max_y = g->start_y + h * g->line_size;
+ g->cur_x = g->start_x;
+ g->cur_y = g->start_y;
+
+ g->lflags = stbi__get8(s);
+
+ if (g->lflags & 0x40) {
+ g->step = 8 * g->line_size; // first interlaced spacing
+ g->parse = 3;
+ } else {
+ g->step = g->line_size;
+ g->parse = 0;
+ }
+
+ if (g->lflags & 0x80) {
+ stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1);
+ g->color_table = (stbi_uc *) g->lpal;
+ } else if (g->flags & 0x80) {
+ g->color_table = (stbi_uc *) g->pal;
+ } else
+ return stbi__errpuc("missing color table", "Corrupt GIF");
+
+ o = stbi__process_gif_raster(s, g);
+ if (o == NULL) return NULL;
+
+ // if this was the first frame,
+ pcount = g->w * g->h;
+ if (first_frame && (g->bgindex > 0)) {
+ // if first frame, any pixel not drawn to gets the background color
+ for (pi = 0; pi < pcount; ++pi) {
+ if (g->history[pi] == 0) {
+ g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be;
+ memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 );
+ }
+ }
+ }
+
+ return o;
+ }
+
+ case 0x21: // Comment Extension.
+ {
+ int len;
+ int ext = stbi__get8(s);
+ if (ext == 0xF9) { // Graphic Control Extension.
+ len = stbi__get8(s);
+ if (len == 4) {
+ g->eflags = stbi__get8(s);
+ g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths.
+
+ // unset old transparent
+ if (g->transparent >= 0) {
+ g->pal[g->transparent][3] = 255;
+ }
+ if (g->eflags & 0x01) {
+ g->transparent = stbi__get8(s);
+ if (g->transparent >= 0) {
+ g->pal[g->transparent][3] = 0;
+ }
+ } else {
+ // don't need transparent
+ stbi__skip(s, 1);
+ g->transparent = -1;
+ }
+ } else {
+ stbi__skip(s, len);
+ break;
+ }
+ }
+ while ((len = stbi__get8(s)) != 0) {
+ stbi__skip(s, len);
+ }
+ break;
+ }
+
+ case 0x3B: // gif stream termination code
+ return (stbi_uc *) s; // using '1' causes warning on some compilers
+
+ default:
+ return stbi__errpuc("unknown code", "Corrupt GIF");
+ }
+ }
+}
+
+static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp)
+{
+ if (stbi__gif_test(s)) {
+ int layers = 0;
+ stbi_uc *u = 0;
+ stbi_uc *out = 0;
+ stbi_uc *two_back = 0;
+ stbi__gif g;
+ int stride;
+ memset(&g, 0, sizeof(g));
+ if (delays) {
+ *delays = 0;
+ }
+
+ do {
+ u = stbi__gif_load_next(s, &g, comp, req_comp, two_back);
+ if (u == (stbi_uc *) s) u = 0; // end of animated gif marker
+
+ if (u) {
+ *x = g.w;
+ *y = g.h;
+ ++layers;
+ stride = g.w * g.h * 4;
+
+ if (out) {
+ out = (stbi_uc*) STBI_REALLOC( out, layers * stride );
+ if (delays) {
+ *delays = (int*) STBI_REALLOC( *delays, sizeof(int) * layers );
+ }
+ } else {
+ out = (stbi_uc*)stbi__malloc( layers * stride );
+ if (delays) {
+ *delays = (int*) stbi__malloc( layers * sizeof(int) );
+ }
+ }
+ memcpy( out + ((layers - 1) * stride), u, stride );
+ if (layers >= 2) {
+ two_back = out - 2 * stride;
+ }
+
+ if (delays) {
+ (*delays)[layers - 1U] = g.delay;
+ }
+ }
+ } while (u != 0);
+
+ // free temp buffer;
+ STBI_FREE(g.out);
+ STBI_FREE(g.history);
+ STBI_FREE(g.background);
+
+ // do the final conversion after loading everything;
+ if (req_comp && req_comp != 4)
+ out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h);
+
+ *z = layers;
+ return out;
+ } else {
+ return stbi__errpuc("not GIF", "Image was not as a gif type.");
+ }
+}
+
+static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ stbi_uc *u = 0;
+ stbi__gif g;
+ memset(&g, 0, sizeof(g));
+
+ u = stbi__gif_load_next(s, &g, comp, req_comp, 0);
+ if (u == (stbi_uc *) s) u = 0; // end of animated gif marker
+ if (u) {
+ *x = g.w;
+ *y = g.h;
+
+ // moved conversion to after successful load so that the same
+ // can be done for multiple frames.
+ if (req_comp && req_comp != 4)
+ u = stbi__convert_format(u, 4, req_comp, g.w, g.h);
+ }
+
+ // free buffers needed for multiple frame loading;
+ STBI_FREE(g.history);
+ STBI_FREE(g.background);
+
+ return u;
+}
+
+static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ return stbi__gif_info_raw(s,x,y,comp);
+}
+#endif
+
+// *************************************************************************************************
+// Radiance RGBE HDR loader
+// originally by Nicolas Schulz
+#ifndef STBI_NO_HDR
+static int stbi__hdr_test_core(stbi__context *s, const char *signature)
+{
+ int i;
+ for (i=0; signature[i]; ++i)
+ if (stbi__get8(s) != signature[i])
+ return 0;
+ stbi__rewind(s);
+ return 1;
+}
+
+static int stbi__hdr_test(stbi__context* s)
+{
+ int r = stbi__hdr_test_core(s, "#?RADIANCE\n");
+ stbi__rewind(s);
+ if(!r) {
+ r = stbi__hdr_test_core(s, "#?RGBE\n");
+ stbi__rewind(s);
+ }
+ return r;
+}
+
+#define STBI__HDR_BUFLEN 1024
+static char *stbi__hdr_gettoken(stbi__context *z, char *buffer)
+{
+ int len=0;
+ char c = '\0';
+
+ c = (char) stbi__get8(z);
+
+ while (!stbi__at_eof(z) && c != '\n') {
+ buffer[len++] = c;
+ if (len == STBI__HDR_BUFLEN-1) {
+ // flush to end of line
+ while (!stbi__at_eof(z) && stbi__get8(z) != '\n')
+ ;
+ break;
+ }
+ c = (char) stbi__get8(z);
+ }
+
+ buffer[len] = 0;
+ return buffer;
+}
+
+static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp)
+{
+ if ( input[3] != 0 ) {
+ float f1;
+ // Exponent
+ f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8));
+ if (req_comp <= 2)
+ output[0] = (input[0] + input[1] + input[2]) * f1 / 3;
+ else {
+ output[0] = input[0] * f1;
+ output[1] = input[1] * f1;
+ output[2] = input[2] * f1;
+ }
+ if (req_comp == 2) output[1] = 1;
+ if (req_comp == 4) output[3] = 1;
+ } else {
+ switch (req_comp) {
+ case 4: output[3] = 1; /* fallthrough */
+ case 3: output[0] = output[1] = output[2] = 0;
+ break;
+ case 2: output[1] = 1; /* fallthrough */
+ case 1: output[0] = 0;
+ break;
+ }
+ }
+}
+
+static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ char buffer[STBI__HDR_BUFLEN];
+ char *token;
+ int valid = 0;
+ int width, height;
+ stbi_uc *scanline;
+ float *hdr_data;
+ int len;
+ unsigned char count, value;
+ int i, j, k, c1,c2, z;
+ const char *headerToken;
+ STBI_NOTUSED(ri);
+
+ // Check identifier
+ headerToken = stbi__hdr_gettoken(s,buffer);
+ if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0)
+ return stbi__errpf("not HDR", "Corrupt HDR image");
+
+ // Parse header
+ for(;;) {
+ token = stbi__hdr_gettoken(s,buffer);
+ if (token[0] == 0) break;
+ if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1;
+ }
+
+ if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format");
+
+ // Parse width and height
+ // can't use sscanf() if we're not using stdio!
+ token = stbi__hdr_gettoken(s,buffer);
+ if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format");
+ token += 3;
+ height = (int) strtol(token, &token, 10);
+ while (*token == ' ') ++token;
+ if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format");
+ token += 3;
+ width = (int) strtol(token, NULL, 10);
+
+ *x = width;
+ *y = height;
+
+ if (comp) *comp = 3;
+ if (req_comp == 0) req_comp = 3;
+
+ if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0))
+ return stbi__errpf("too large", "HDR image is too large");
+
+ // Read data
+ hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0);
+ if (!hdr_data)
+ return stbi__errpf("outofmem", "Out of memory");
+
+ // Load image data
+ // image data is stored as some number of sca
+ if ( width < 8 || width >= 32768) {
+ // Read flat data
+ for (j=0; j < height; ++j) {
+ for (i=0; i < width; ++i) {
+ stbi_uc rgbe[4];
+ main_decode_loop:
+ stbi__getn(s, rgbe, 4);
+ stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp);
+ }
+ }
+ } else {
+ // Read RLE-encoded data
+ scanline = NULL;
+
+ for (j = 0; j < height; ++j) {
+ c1 = stbi__get8(s);
+ c2 = stbi__get8(s);
+ len = stbi__get8(s);
+ if (c1 != 2 || c2 != 2 || (len & 0x80)) {
+ // not run-length encoded, so we have to actually use THIS data as a decoded
+ // pixel (note this can't be a valid pixel--one of RGB must be >= 128)
+ stbi_uc rgbe[4];
+ rgbe[0] = (stbi_uc) c1;
+ rgbe[1] = (stbi_uc) c2;
+ rgbe[2] = (stbi_uc) len;
+ rgbe[3] = (stbi_uc) stbi__get8(s);
+ stbi__hdr_convert(hdr_data, rgbe, req_comp);
+ i = 1;
+ j = 0;
+ STBI_FREE(scanline);
+ goto main_decode_loop; // yes, this makes no sense
+ }
+ len <<= 8;
+ len |= stbi__get8(s);
+ if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); }
+ if (scanline == NULL) {
+ scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0);
+ if (!scanline) {
+ STBI_FREE(hdr_data);
+ return stbi__errpf("outofmem", "Out of memory");
+ }
+ }
+
+ for (k = 0; k < 4; ++k) {
+ int nleft;
+ i = 0;
+ while ((nleft = width - i) > 0) {
+ count = stbi__get8(s);
+ if (count > 128) {
+ // Run
+ value = stbi__get8(s);
+ count -= 128;
+ if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); }
+ for (z = 0; z < count; ++z)
+ scanline[i++ * 4 + k] = value;
+ } else {
+ // Dump
+ if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); }
+ for (z = 0; z < count; ++z)
+ scanline[i++ * 4 + k] = stbi__get8(s);
+ }
+ }
+ }
+ for (i=0; i < width; ++i)
+ stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp);
+ }
+ if (scanline)
+ STBI_FREE(scanline);
+ }
+
+ return hdr_data;
+}
+
+static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ char buffer[STBI__HDR_BUFLEN];
+ char *token;
+ int valid = 0;
+ int dummy;
+
+ if (!x) x = &dummy;
+ if (!y) y = &dummy;
+ if (!comp) comp = &dummy;
+
+ if (stbi__hdr_test(s) == 0) {
+ stbi__rewind( s );
+ return 0;
+ }
+
+ for(;;) {
+ token = stbi__hdr_gettoken(s,buffer);
+ if (token[0] == 0) break;
+ if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1;
+ }
+
+ if (!valid) {
+ stbi__rewind( s );
+ return 0;
+ }
+ token = stbi__hdr_gettoken(s,buffer);
+ if (strncmp(token, "-Y ", 3)) {
+ stbi__rewind( s );
+ return 0;
+ }
+ token += 3;
+ *y = (int) strtol(token, &token, 10);
+ while (*token == ' ') ++token;
+ if (strncmp(token, "+X ", 3)) {
+ stbi__rewind( s );
+ return 0;
+ }
+ token += 3;
+ *x = (int) strtol(token, NULL, 10);
+ *comp = 3;
+ return 1;
+}
+#endif // STBI_NO_HDR
+
+#ifndef STBI_NO_BMP
+static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ void *p;
+ stbi__bmp_data info;
+
+ info.all_a = 255;
+ p = stbi__bmp_parse_header(s, &info);
+ stbi__rewind( s );
+ if (p == NULL)
+ return 0;
+ if (x) *x = s->img_x;
+ if (y) *y = s->img_y;
+ if (comp) *comp = info.ma ? 4 : 3;
+ return 1;
+}
+#endif
+
+#ifndef STBI_NO_PSD
+static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int channelCount, dummy, depth;
+ if (!x) x = &dummy;
+ if (!y) y = &dummy;
+ if (!comp) comp = &dummy;
+ if (stbi__get32be(s) != 0x38425053) {
+ stbi__rewind( s );
+ return 0;
+ }
+ if (stbi__get16be(s) != 1) {
+ stbi__rewind( s );
+ return 0;
+ }
+ stbi__skip(s, 6);
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16) {
+ stbi__rewind( s );
+ return 0;
+ }
+ *y = stbi__get32be(s);
+ *x = stbi__get32be(s);
+ depth = stbi__get16be(s);
+ if (depth != 8 && depth != 16) {
+ stbi__rewind( s );
+ return 0;
+ }
+ if (stbi__get16be(s) != 3) {
+ stbi__rewind( s );
+ return 0;
+ }
+ *comp = 4;
+ return 1;
+}
+
+static int stbi__psd_is16(stbi__context *s)
+{
+ int channelCount, depth;
+ if (stbi__get32be(s) != 0x38425053) {
+ stbi__rewind( s );
+ return 0;
+ }
+ if (stbi__get16be(s) != 1) {
+ stbi__rewind( s );
+ return 0;
+ }
+ stbi__skip(s, 6);
+ channelCount = stbi__get16be(s);
+ if (channelCount < 0 || channelCount > 16) {
+ stbi__rewind( s );
+ return 0;
+ }
+ (void) stbi__get32be(s);
+ (void) stbi__get32be(s);
+ depth = stbi__get16be(s);
+ if (depth != 16) {
+ stbi__rewind( s );
+ return 0;
+ }
+ return 1;
+}
+#endif
+
+#ifndef STBI_NO_PIC
+static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int act_comp=0,num_packets=0,chained,dummy;
+ stbi__pic_packet packets[10];
+
+ if (!x) x = &dummy;
+ if (!y) y = &dummy;
+ if (!comp) comp = &dummy;
+
+ if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ stbi__skip(s, 88);
+
+ *x = stbi__get16be(s);
+ *y = stbi__get16be(s);
+ if (stbi__at_eof(s)) {
+ stbi__rewind( s);
+ return 0;
+ }
+ if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) {
+ stbi__rewind( s );
+ return 0;
+ }
+
+ stbi__skip(s, 8);
+
+ do {
+ stbi__pic_packet *packet;
+
+ if (num_packets==sizeof(packets)/sizeof(packets[0]))
+ return 0;
+
+ packet = &packets[num_packets++];
+ chained = stbi__get8(s);
+ packet->size = stbi__get8(s);
+ packet->type = stbi__get8(s);
+ packet->channel = stbi__get8(s);
+ act_comp |= packet->channel;
+
+ if (stbi__at_eof(s)) {
+ stbi__rewind( s );
+ return 0;
+ }
+ if (packet->size != 8) {
+ stbi__rewind( s );
+ return 0;
+ }
+ } while (chained);
+
+ *comp = (act_comp & 0x10 ? 4 : 3);
+
+ return 1;
+}
+#endif
+
+// *************************************************************************************************
+// Portable Gray Map and Portable Pixel Map loader
+// by Ken Miller
+//
+// PGM: http://netpbm.sourceforge.net/doc/pgm.html
+// PPM: http://netpbm.sourceforge.net/doc/ppm.html
+//
+// Known limitations:
+// Does not support comments in the header section
+// Does not support ASCII image data (formats P2 and P3)
+// Does not support 16-bit-per-channel
+
+#ifndef STBI_NO_PNM
+
+static int stbi__pnm_test(stbi__context *s)
+{
+ char p, t;
+ p = (char) stbi__get8(s);
+ t = (char) stbi__get8(s);
+ if (p != 'P' || (t != '5' && t != '6')) {
+ stbi__rewind( s );
+ return 0;
+ }
+ return 1;
+}
+
+static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri)
+{
+ stbi_uc *out;
+ STBI_NOTUSED(ri);
+
+ if (!stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n))
+ return 0;
+
+ *x = s->img_x;
+ *y = s->img_y;
+ if (comp) *comp = s->img_n;
+
+ if (!stbi__mad3sizes_valid(s->img_n, s->img_x, s->img_y, 0))
+ return stbi__errpuc("too large", "PNM too large");
+
+ out = (stbi_uc *) stbi__malloc_mad3(s->img_n, s->img_x, s->img_y, 0);
+ if (!out) return stbi__errpuc("outofmem", "Out of memory");
+ stbi__getn(s, out, s->img_n * s->img_x * s->img_y);
+
+ if (req_comp && req_comp != s->img_n) {
+ out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y);
+ if (out == NULL) return out; // stbi__convert_format frees input on failure
+ }
+ return out;
+}
+
+static int stbi__pnm_isspace(char c)
+{
+ return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r';
+}
+
+static void stbi__pnm_skip_whitespace(stbi__context *s, char *c)
+{
+ for (;;) {
+ while (!stbi__at_eof(s) && stbi__pnm_isspace(*c))
+ *c = (char) stbi__get8(s);
+
+ if (stbi__at_eof(s) || *c != '#')
+ break;
+
+ while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' )
+ *c = (char) stbi__get8(s);
+ }
+}
+
+static int stbi__pnm_isdigit(char c)
+{
+ return c >= '0' && c <= '9';
+}
+
+static int stbi__pnm_getinteger(stbi__context *s, char *c)
+{
+ int value = 0;
+
+ while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) {
+ value = value*10 + (*c - '0');
+ *c = (char) stbi__get8(s);
+ }
+
+ return value;
+}
+
+static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp)
+{
+ int maxv, dummy;
+ char c, p, t;
+
+ if (!x) x = &dummy;
+ if (!y) y = &dummy;
+ if (!comp) comp = &dummy;
+
+ stbi__rewind(s);
+
+ // Get identifier
+ p = (char) stbi__get8(s);
+ t = (char) stbi__get8(s);
+ if (p != 'P' || (t != '5' && t != '6')) {
+ stbi__rewind(s);
+ return 0;
+ }
+
+ *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm
+
+ c = (char) stbi__get8(s);
+ stbi__pnm_skip_whitespace(s, &c);
+
+ *x = stbi__pnm_getinteger(s, &c); // read width
+ stbi__pnm_skip_whitespace(s, &c);
+
+ *y = stbi__pnm_getinteger(s, &c); // read height
+ stbi__pnm_skip_whitespace(s, &c);
+
+ maxv = stbi__pnm_getinteger(s, &c); // read max value
+
+ if (maxv > 255)
+ return stbi__err("max value > 255", "PPM image not 8-bit");
+ else
+ return 1;
+}
+#endif
+
+static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp)
+{
+ #ifndef STBI_NO_JPEG
+ if (stbi__jpeg_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_PNG
+ if (stbi__png_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_GIF
+ if (stbi__gif_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_BMP
+ if (stbi__bmp_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_PSD
+ if (stbi__psd_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_PIC
+ if (stbi__pic_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_PNM
+ if (stbi__pnm_info(s, x, y, comp)) return 1;
+ #endif
+
+ #ifndef STBI_NO_HDR
+ if (stbi__hdr_info(s, x, y, comp)) return 1;
+ #endif
+
+ // test tga last because it's a crappy test!
+ #ifndef STBI_NO_TGA
+ if (stbi__tga_info(s, x, y, comp))
+ return 1;
+ #endif
+ return stbi__err("unknown image type", "Image not of any known type, or corrupt");
+}
+
+static int stbi__is_16_main(stbi__context *s)
+{
+ #ifndef STBI_NO_PNG
+ if (stbi__png_is16(s)) return 1;
+ #endif
+
+ #ifndef STBI_NO_PSD
+ if (stbi__psd_is16(s)) return 1;
+ #endif
+
+ return 0;
+}
+
+#ifndef STBI_NO_STDIO
+STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result;
+ if (!f) return stbi__err("can't fopen", "Unable to open file");
+ result = stbi_info_from_file(f, x, y, comp);
+ fclose(f);
+ return result;
+}
+
+STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp)
+{
+ int r;
+ stbi__context s;
+ long pos = ftell(f);
+ stbi__start_file(&s, f);
+ r = stbi__info_main(&s,x,y,comp);
+ fseek(f,pos,SEEK_SET);
+ return r;
+}
+
+STBIDEF int stbi_is_16_bit(char const *filename)
+{
+ FILE *f = stbi__fopen(filename, "rb");
+ int result;
+ if (!f) return stbi__err("can't fopen", "Unable to open file");
+ result = stbi_is_16_bit_from_file(f);
+ fclose(f);
+ return result;
+}
+
+STBIDEF int stbi_is_16_bit_from_file(FILE *f)
+{
+ int r;
+ stbi__context s;
+ long pos = ftell(f);
+ stbi__start_file(&s, f);
+ r = stbi__is_16_main(&s);
+ fseek(f,pos,SEEK_SET);
+ return r;
+}
+#endif // !STBI_NO_STDIO
+
+STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp)
+{
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+ return stbi__info_main(&s,x,y,comp);
+}
+
+STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user);
+ return stbi__info_main(&s,x,y,comp);
+}
+
+STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len)
+{
+ stbi__context s;
+ stbi__start_mem(&s,buffer,len);
+ return stbi__is_16_main(&s);
+}
+
+STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user)
+{
+ stbi__context s;
+ stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user);
+ return stbi__is_16_main(&s);
+}
+
+#endif // STB_IMAGE_IMPLEMENTATION
+
+/*
+ revision history:
+ 2.19 (2018-02-11) fix warning
+ 2.18 (2018-01-30) fix warnings
+ 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug
+ 1-bit BMP
+ *_is_16_bit api
+ avoid warnings
+ 2.16 (2017-07-23) all functions have 16-bit variants;
+ STBI_NO_STDIO works again;
+ compilation fixes;
+ fix rounding in unpremultiply;
+ optimize vertical flip;
+ disable raw_len validation;
+ documentation fixes
+ 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode;
+ warning fixes; disable run-time SSE detection on gcc;
+ uniform handling of optional "return" values;
+ thread-safe initialization of zlib tables
+ 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs
+ 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now
+ 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes
+ 2.11 (2016-04-02) allocate large structures on the stack
+ remove white matting for transparent PSD
+ fix reported channel count for PNG & BMP
+ re-enable SSE2 in non-gcc 64-bit
+ support RGB-formatted JPEG
+ read 16-bit PNGs (only as 8-bit)
+ 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED
+ 2.09 (2016-01-16) allow comments in PNM files
+ 16-bit-per-pixel TGA (not bit-per-component)
+ info() for TGA could break due to .hdr handling
+ info() for BMP to shares code instead of sloppy parse
+ can use STBI_REALLOC_SIZED if allocator doesn't support realloc
+ code cleanup
+ 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA
+ 2.07 (2015-09-13) fix compiler warnings
+ partial animated GIF support
+ limited 16-bpc PSD support
+ #ifdef unused functions
+ bug with < 92 byte PIC,PNM,HDR,TGA
+ 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value
+ 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning
+ 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit
+ 2.03 (2015-04-12) extra corruption checking (mmozeiko)
+ stbi_set_flip_vertically_on_load (nguillemot)
+ fix NEON support; fix mingw support
+ 2.02 (2015-01-19) fix incorrect assert, fix warning
+ 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2
+ 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG
+ 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg)
+ progressive JPEG (stb)
+ PGM/PPM support (Ken Miller)
+ STBI_MALLOC,STBI_REALLOC,STBI_FREE
+ GIF bugfix -- seemingly never worked
+ STBI_NO_*, STBI_ONLY_*
+ 1.48 (2014-12-14) fix incorrectly-named assert()
+ 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb)
+ optimize PNG (ryg)
+ fix bug in interlaced PNG with user-specified channel count (stb)
+ 1.46 (2014-08-26)
+ fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG
+ 1.45 (2014-08-16)
+ fix MSVC-ARM internal compiler error by wrapping malloc
+ 1.44 (2014-08-07)
+ various warning fixes from Ronny Chevalier
+ 1.43 (2014-07-15)
+ fix MSVC-only compiler problem in code changed in 1.42
+ 1.42 (2014-07-09)
+ don't define _CRT_SECURE_NO_WARNINGS (affects user code)
+ fixes to stbi__cleanup_jpeg path
+ added STBI_ASSERT to avoid requiring assert.h
+ 1.41 (2014-06-25)
+ fix search&replace from 1.36 that messed up comments/error messages
+ 1.40 (2014-06-22)
+ fix gcc struct-initialization warning
+ 1.39 (2014-06-15)
+ fix to TGA optimization when req_comp != number of components in TGA;
+ fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite)
+ add support for BMP version 5 (more ignored fields)
+ 1.38 (2014-06-06)
+ suppress MSVC warnings on integer casts truncating values
+ fix accidental rename of 'skip' field of I/O
+ 1.37 (2014-06-04)
+ remove duplicate typedef
+ 1.36 (2014-06-03)
+ convert to header file single-file library
+ if de-iphone isn't set, load iphone images color-swapped instead of returning NULL
+ 1.35 (2014-05-27)
+ various warnings
+ fix broken STBI_SIMD path
+ fix bug where stbi_load_from_file no longer left file pointer in correct place
+ fix broken non-easy path for 32-bit BMP (possibly never used)
+ TGA optimization by Arseny Kapoulkine
+ 1.34 (unknown)
+ use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case
+ 1.33 (2011-07-14)
+ make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements
+ 1.32 (2011-07-13)
+ support for "info" function for all supported filetypes (SpartanJ)
+ 1.31 (2011-06-20)
+ a few more leak fixes, bug in PNG handling (SpartanJ)
+ 1.30 (2011-06-11)
+ added ability to load files via callbacks to accomidate custom input streams (Ben Wenger)
+ removed deprecated format-specific test/load functions
+ removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway
+ error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha)
+ fix inefficiency in decoding 32-bit BMP (David Woo)
+ 1.29 (2010-08-16)
+ various warning fixes from Aurelien Pocheville
+ 1.28 (2010-08-01)
+ fix bug in GIF palette transparency (SpartanJ)
+ 1.27 (2010-08-01)
+ cast-to-stbi_uc to fix warnings
+ 1.26 (2010-07-24)
+ fix bug in file buffering for PNG reported by SpartanJ
+ 1.25 (2010-07-17)
+ refix trans_data warning (Won Chun)
+ 1.24 (2010-07-12)
+ perf improvements reading from files on platforms with lock-heavy fgetc()
+ minor perf improvements for jpeg
+ deprecated type-specific functions so we'll get feedback if they're needed
+ attempt to fix trans_data warning (Won Chun)
+ 1.23 fixed bug in iPhone support
+ 1.22 (2010-07-10)
+ removed image *writing* support
+ stbi_info support from Jetro Lauha
+ GIF support from Jean-Marc Lienher
+ iPhone PNG-extensions from James Brown
+ warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva)
+ 1.21 fix use of 'stbi_uc' in header (reported by jon blow)
+ 1.20 added support for Softimage PIC, by Tom Seddon
+ 1.19 bug in interlaced PNG corruption check (found by ryg)
+ 1.18 (2008-08-02)
+ fix a threading bug (local mutable static)
+ 1.17 support interlaced PNG
+ 1.16 major bugfix - stbi__convert_format converted one too many pixels
+ 1.15 initialize some fields for thread safety
+ 1.14 fix threadsafe conversion bug
+ header-file-only version (#define STBI_HEADER_FILE_ONLY before including)
+ 1.13 threadsafe
+ 1.12 const qualifiers in the API
+ 1.11 Support installable IDCT, colorspace conversion routines
+ 1.10 Fixes for 64-bit (don't use "unsigned long")
+ optimized upsampling by Fabian "ryg" Giesen
+ 1.09 Fix format-conversion for PSD code (bad global variables!)
+ 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz
+ 1.07 attempt to fix C++ warning/errors again
+ 1.06 attempt to fix C++ warning/errors again
+ 1.05 fix TGA loading to return correct *comp and use good luminance calc
+ 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free
+ 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR
+ 1.02 support for (subset of) HDR files, float interface for preferred access to them
+ 1.01 fix bug: possible bug in handling right-side up bmps... not sure
+ fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all
+ 1.00 interface to zlib that skips zlib header
+ 0.99 correct handling of alpha in palette
+ 0.98 TGA loader by lonesock; dynamically add loaders (untested)
+ 0.97 jpeg errors on too large a file; also catch another malloc failure
+ 0.96 fix detection of invalid v value - particleman@mollyrocket forum
+ 0.95 during header scan, seek to markers in case of padding
+ 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same
+ 0.93 handle jpegtran output; verbose errors
+ 0.92 read 4,8,16,24,32-bit BMP files of several formats
+ 0.91 output 24-bit Windows 3.0 BMP files
+ 0.90 fix a few more warnings; bump version number to approach 1.0
+ 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd
+ 0.60 fix compiling as c++
+ 0.59 fix warnings: merge Dave Moore's -Wall fixes
+ 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian
+ 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available
+ 0.56 fix bug: zlib uncompressed mode len vs. nlen
+ 0.55 fix bug: restart_interval not initialized to 0
+ 0.54 allow NULL for 'int *comp'
+ 0.53 fix bug in png 3->4; speedup png decoding
+ 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments
+ 0.51 obey req_comp requests, 1-component jpegs return as 1-component,
+ on 'test' only check type, not whether we support this variant
+ 0.50 (2006-11-19)
+ first released version
+*/
+
+
+/*
+------------------------------------------------------------------------------
+This software is available under 2 licenses -- choose whichever you prefer.
+------------------------------------------------------------------------------
+ALTERNATIVE A - MIT License
+Copyright (c) 2017 Sean Barrett
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+------------------------------------------------------------------------------
+ALTERNATIVE B - Public Domain (www.unlicense.org)
+This is free and unencumbered software released into the public domain.
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
+software, either in source code form or as a compiled binary, for any purpose,
+commercial or non-commercial, and by any means.
+In jurisdictions that recognize copyright laws, the author or authors of this
+software dedicate any and all copyright interest in the software to the public
+domain. We make this dedication for the benefit of the public at large and to
+the detriment of our heirs and successors. We intend this dedication to be an
+overt act of relinquishment in perpetuity of all present and future rights to
+this software under copyright law.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+------------------------------------------------------------------------------
+*/
diff --git "a/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/stb_image_write.h" "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/stb_image_write.h"
new file mode 100644
index 00000000..c05e9581
--- /dev/null
+++ "b/1 \351\201\227\345\244\261\345\256\240\347\211\251\347\232\204\346\231\272\350\203\275\345\257\273\346\211\276/\347\210\261\345\256\240\351\235\242\351\203\250\350\257\206\345\210\253--\345\205\203\347\273\204/pet_recognition/DARK/src/stb_image_write.h"
@@ -0,0 +1,1568 @@
+/* stb_image_write - v1.09 - public domain - http://nothings.org/stb/stb_image_write.h
+ writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015
+ no warranty implied; use at your own risk
+
+ Before #including,
+
+ #define STB_IMAGE_WRITE_IMPLEMENTATION
+
+ in the file that you want to have the implementation.
+
+ Will probably not work correctly with strict-aliasing optimizations.
+
+ If using a modern Microsoft Compiler, non-safe versions of CRT calls may cause
+ compilation warnings or even errors. To avoid this, also before #including,
+
+ #define STBI_MSC_SECURE_CRT
+
+ABOUT:
+
+ This header file is a library for writing images to C stdio. It could be
+ adapted to write to memory or a general streaming interface; let me know.
+
+ The PNG output is not optimal; it is 20-50% larger than the file
+ written by a decent optimizing implementation; though providing a custom
+ zlib compress function (see STBIW_ZLIB_COMPRESS) can mitigate that.
+ This library is designed for source code compactness and simplicity,
+ not optimal image file size or run-time performance.
+
+BUILDING:
+
+ You can #define STBIW_ASSERT(x) before the #include to avoid using assert.h.
+ You can #define STBIW_MALLOC(), STBIW_REALLOC(), and STBIW_FREE() to replace
+ malloc,realloc,free.
+ You can #define STBIW_MEMMOVE() to replace memmove()
+ You can #define STBIW_ZLIB_COMPRESS to use a custom zlib-style compress function
+ for PNG compression (instead of the builtin one), it must have the following signature:
+ unsigned char * my_compress(unsigned char *data, int data_len, int *out_len, int quality);
+ The returned data will be freed with STBIW_FREE() (free() by default),
+ so it must be heap allocated with STBIW_MALLOC() (malloc() by default),
+
+USAGE:
+
+ There are five functions, one for each image file format:
+
+ int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes);
+ int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data);
+ int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data);
+ int stbi_write_jpg(char const *filename, int w, int h, int comp, const void *data, int quality);
+ int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data);
+
+ void stbi_flip_vertically_on_write(int flag); // flag is non-zero to flip data vertically
+
+ There are also five equivalent functions that use an arbitrary write function. You are
+ expected to open/close your file-equivalent before and after calling these:
+
+ int stbi_write_png_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data, int stride_in_bytes);
+ int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data);
+ int stbi_write_tga_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data);
+ int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const float *data);
+ int stbi_write_jpg_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int quality);
+
+ where the callback is:
+ void stbi_write_func(void *context, void *data, int size);
+
+ You can configure it with these global variables:
+ int stbi_write_tga_with_rle; // defaults to true; set to 0 to disable RLE
+ int stbi_write_png_compression_level; // defaults to 8; set to higher for more compression
+ int stbi_write_force_png_filter; // defaults to -1; set to 0..5 to force a filter mode
+
+
+ You can define STBI_WRITE_NO_STDIO to disable the file variant of these
+ functions, so the library will not use stdio.h at all. However, this will
+ also disable HDR writing, because it requires stdio for formatted output.
+
+ Each function returns 0 on failure and non-0 on success.
+
+ The functions create an image file defined by the parameters. The image
+ is a rectangle of pixels stored from left-to-right, top-to-bottom.
+ Each pixel contains 'comp' channels of data stored interleaved with 8-bits
+ per channel, in the following order: 1=Y, 2=YA, 3=RGB, 4=RGBA. (Y is
+ monochrome color.) The rectangle is 'w' pixels wide and 'h' pixels tall.
+ The *data pointer points to the first byte of the top-left-most pixel.
+ For PNG, "stride_in_bytes" is the distance in bytes from the first byte of
+ a row of pixels to the first byte of the next row of pixels.
+
+ PNG creates output files with the same number of components as the input.
+ The BMP format expands Y to RGB in the file format and does not
+ output alpha.
+
+ PNG supports writing rectangles of data even when the bytes storing rows of
+ data are not consecutive in memory (e.g. sub-rectangles of a larger image),
+ by supplying the stride between the beginning of adjacent rows. The other
+ formats do not. (Thus you cannot write a native-format BMP through the BMP
+ writer, both because it is in BGR order and because it may have padding
+ at the end of the line.)
+
+ PNG allows you to set the deflate compression level by setting the global
+ variable 'stbi_write_png_compression_level' (it defaults to 8).
+
+ HDR expects linear float data. Since the format is always 32-bit rgb(e)
+ data, alpha (if provided) is discarded, and for monochrome data it is
+ replicated across all three channels.
+
+ TGA supports RLE or non-RLE compressed data. To use non-RLE-compressed
+ data, set the global variable 'stbi_write_tga_with_rle' to 0.
+
+ JPEG does ignore alpha channels in input data; quality is between 1 and 100.
+ Higher quality looks better but results in a bigger image.
+ JPEG baseline (no JPEG progressive).
+
+CREDITS:
+
+
+ Sean Barrett - PNG/BMP/TGA
+ Baldur Karlsson - HDR
+ Jean-Sebastien Guay - TGA monochrome
+ Tim Kelsey - misc enhancements
+ Alan Hickman - TGA RLE
+ Emmanuel Julien - initial file IO callback implementation
+ Jon Olick - original jo_jpeg.cpp code
+ Daniel Gibson - integrate JPEG, allow external zlib
+ Aarni Koskela - allow choosing PNG filter
+
+ bugfixes:
+ github:Chribba
+ Guillaume Chereau
+ github:jry2
+ github:romigrou
+ Sergio Gonzalez
+ Jonas Karlsson
+ Filip Wasil
+ Thatcher Ulrich
+ github:poppolopoppo
+ Patrick Boettcher
+ github:xeekworx
+ Cap Petschulat
+ Simon Rodriguez
+ Ivan Tikhonov
+ github:ignotion
+ Adam Schackart
+
+LICENSE
+
+ See end of file for license information.
+
+*/
+
+#ifndef INCLUDE_STB_IMAGE_WRITE_H
+#define INCLUDE_STB_IMAGE_WRITE_H
+
+// if STB_IMAGE_WRITE_STATIC causes problems, try defining STBIWDEF to 'inline' or 'static inline'
+#ifndef STBIWDEF
+#ifdef STB_IMAGE_WRITE_STATIC
+#define STBIWDEF static
+#else
+#ifdef __cplusplus
+#define STBIWDEF extern "C"
+#else
+#define STBIWDEF extern
+#endif
+#endif
+#endif
+
+#ifndef STB_IMAGE_WRITE_STATIC // C++ forbids static forward declarations
+extern int stbi_write_tga_with_rle;
+extern int stbi_write_png_compression_level;
+extern int stbi_write_force_png_filter;
+#endif
+
+#ifndef STBI_WRITE_NO_STDIO
+STBIWDEF int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes);
+STBIWDEF int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data);
+STBIWDEF int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data);
+STBIWDEF int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data);
+STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const void *data, int quality);
+#endif
+
+typedef void stbi_write_func(void *context, void *data, int size);
+
+STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data, int stride_in_bytes);
+STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data);
+STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data);
+STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const float *data);
+STBIWDEF int stbi_write_jpg_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int quality);
+
+STBIWDEF void stbi_flip_vertically_on_write(int flip_boolean);
+
+#endif//INCLUDE_STB_IMAGE_WRITE_H
+
+#ifdef STB_IMAGE_WRITE_IMPLEMENTATION
+
+#ifdef _WIN32
+ #ifndef _CRT_SECURE_NO_WARNINGS
+ #define _CRT_SECURE_NO_WARNINGS
+ #endif
+ #ifndef _CRT_NONSTDC_NO_DEPRECATE
+ #define _CRT_NONSTDC_NO_DEPRECATE
+ #endif
+#endif
+
+#ifndef STBI_WRITE_NO_STDIO
+#include
+#endif // STBI_WRITE_NO_STDIO
+
+#include
+#include
+#include
+#include
+
+#if defined(STBIW_MALLOC) && defined(STBIW_FREE) && (defined(STBIW_REALLOC) || defined(STBIW_REALLOC_SIZED))
+// ok
+#elif !defined(STBIW_MALLOC) && !defined(STBIW_FREE) && !defined(STBIW_REALLOC) && !defined(STBIW_REALLOC_SIZED)
+// ok
+#else
+#error "Must define all or none of STBIW_MALLOC, STBIW_FREE, and STBIW_REALLOC (or STBIW_REALLOC_SIZED)."
+#endif
+
+#ifndef STBIW_MALLOC
+#define STBIW_MALLOC(sz) malloc(sz)
+#define STBIW_REALLOC(p,newsz) realloc(p,newsz)
+#define STBIW_FREE(p) free(p)
+#endif
+
+#ifndef STBIW_REALLOC_SIZED
+#define STBIW_REALLOC_SIZED(p,oldsz,newsz) STBIW_REALLOC(p,newsz)
+#endif
+
+
+#ifndef STBIW_MEMMOVE
+#define STBIW_MEMMOVE(a,b,sz) memmove(a,b,sz)
+#endif
+
+
+#ifndef STBIW_ASSERT
+#include
+#define STBIW_ASSERT(x) assert(x)
+#endif
+
+#define STBIW_UCHAR(x) (unsigned char) ((x) & 0xff)
+
+#ifdef STB_IMAGE_WRITE_STATIC
+static int stbi__flip_vertically_on_write=0;
+static int stbi_write_png_compression_level = 8;
+static int stbi_write_tga_with_rle = 1;
+static int stbi_write_force_png_filter = -1;
+#else
+int stbi_write_png_compression_level = 8;
+int stbi__flip_vertically_on_write=0;
+int stbi_write_tga_with_rle = 1;
+int stbi_write_force_png_filter = -1;
+#endif
+
+STBIWDEF void stbi_flip_vertically_on_write(int flag)
+{
+ stbi__flip_vertically_on_write = flag;
+}
+
+typedef struct
+{
+ stbi_write_func *func;
+ void *context;
+} stbi__write_context;
+
+// initialize a callback-based context
+static void stbi__start_write_callbacks(stbi__write_context *s, stbi_write_func *c, void *context)
+{
+ s->func = c;
+ s->context = context;
+}
+
+#ifndef STBI_WRITE_NO_STDIO
+
+static void stbi__stdio_write(void *context, void *data, int size)
+{
+ fwrite(data,1,size,(FILE*) context);
+}
+
+static int stbi__start_write_file(stbi__write_context *s, const char *filename)
+{
+ FILE *f;
+#ifdef STBI_MSC_SECURE_CRT
+ if (fopen_s(&f, filename, "wb"))
+ f = NULL;
+#else
+ f = fopen(filename, "wb");
+#endif
+ stbi__start_write_callbacks(s, stbi__stdio_write, (void *) f);
+ return f != NULL;
+}
+
+static void stbi__end_write_file(stbi__write_context *s)
+{
+ fclose((FILE *)s->context);
+}
+
+#endif // !STBI_WRITE_NO_STDIO
+
+typedef unsigned int stbiw_uint32;
+typedef int stb_image_write_test[sizeof(stbiw_uint32)==4 ? 1 : -1];
+
+static void stbiw__writefv(stbi__write_context *s, const char *fmt, va_list v)
+{
+ while (*fmt) {
+ switch (*fmt++) {
+ case ' ': break;
+ case '1': { unsigned char x = STBIW_UCHAR(va_arg(v, int));
+ s->func(s->context,&x,1);
+ break; }
+ case '2': { int x = va_arg(v,int);
+ unsigned char b[2];
+ b[0] = STBIW_UCHAR(x);
+ b[1] = STBIW_UCHAR(x>>8);
+ s->func(s->context,b,2);
+ break; }
+ case '4': { stbiw_uint32 x = va_arg(v,int);
+ unsigned char b[4];
+ b[0]=STBIW_UCHAR(x);
+ b[1]=STBIW_UCHAR(x>>8);
+ b[2]=STBIW_UCHAR(x>>16);
+ b[3]=STBIW_UCHAR(x>>24);
+ s->func(s->context,b,4);
+ break; }
+ default:
+ STBIW_ASSERT(0);
+ return;
+ }
+ }
+}
+
+static void stbiw__writef(stbi__write_context *s, const char *fmt, ...)
+{
+ va_list v;
+ va_start(v, fmt);
+ stbiw__writefv(s, fmt, v);
+ va_end(v);
+}
+
+static void stbiw__putc(stbi__write_context *s, unsigned char c)
+{
+ s->func(s->context, &c, 1);
+}
+
+static void stbiw__write3(stbi__write_context *s, unsigned char a, unsigned char b, unsigned char c)
+{
+ unsigned char arr[3];
+ arr[0] = a, arr[1] = b, arr[2] = c;
+ s->func(s->context, arr, 3);
+}
+
+static void stbiw__write_pixel(stbi__write_context *s, int rgb_dir, int comp, int write_alpha, int expand_mono, unsigned char *d)
+{
+ unsigned char bg[3] = { 255, 0, 255}, px[3];
+ int k;
+
+ if (write_alpha < 0)
+ s->func(s->context, &d[comp - 1], 1);
+
+ switch (comp) {
+ case 2: // 2 pixels = mono + alpha, alpha is written separately, so same as 1-channel case
+ case 1:
+ if (expand_mono)
+ stbiw__write3(s, d[0], d[0], d[0]); // monochrome bmp
+ else
+ s->func(s->context, d, 1); // monochrome TGA
+ break;
+ case 4:
+ if (!write_alpha) {
+ // composite against pink background
+ for (k = 0; k < 3; ++k)
+ px[k] = bg[k] + ((d[k] - bg[k]) * d[3]) / 255;
+ stbiw__write3(s, px[1 - rgb_dir], px[1], px[1 + rgb_dir]);
+ break;
+ }
+ /* FALLTHROUGH */
+ case 3:
+ stbiw__write3(s, d[1 - rgb_dir], d[1], d[1 + rgb_dir]);
+ break;
+ }
+ if (write_alpha > 0)
+ s->func(s->context, &d[comp - 1], 1);
+}
+
+static void stbiw__write_pixels(stbi__write_context *s, int rgb_dir, int vdir, int x, int y, int comp, void *data, int write_alpha, int scanline_pad, int expand_mono)
+{
+ stbiw_uint32 zero = 0;
+ int i,j, j_end;
+
+ if (y <= 0)
+ return;
+
+ if (stbi__flip_vertically_on_write)
+ vdir *= -1;
+
+ if (vdir < 0)
+ j_end = -1, j = y-1;
+ else
+ j_end = y, j = 0;
+
+ for (; j != j_end; j += vdir) {
+ for (i=0; i < x; ++i) {
+ unsigned char *d = (unsigned char *) data + (j*x+i)*comp;
+ stbiw__write_pixel(s, rgb_dir, comp, write_alpha, expand_mono, d);
+ }
+ s->func(s->context, &zero, scanline_pad);
+ }
+}
+
+static int stbiw__outfile(stbi__write_context *s, int rgb_dir, int vdir, int x, int y, int comp, int expand_mono, void *data, int alpha, int pad, const char *fmt, ...)
+{
+ if (y < 0 || x < 0) {
+ return 0;
+ } else {
+ va_list v;
+ va_start(v, fmt);
+ stbiw__writefv(s, fmt, v);
+ va_end(v);
+ stbiw__write_pixels(s,rgb_dir,vdir,x,y,comp,data,alpha,pad, expand_mono);
+ return 1;
+ }
+}
+
+static int stbi_write_bmp_core(stbi__write_context *s, int x, int y, int comp, const void *data)
+{
+ int pad = (-x*3) & 3;
+ return stbiw__outfile(s,-1,-1,x,y,comp,1,(void *) data,0,pad,
+ "11 4 22 4" "4 44 22 444444",
+ 'B', 'M', 14+40+(x*3+pad)*y, 0,0, 14+40, // file header
+ 40, x,y, 1,24, 0,0,0,0,0,0); // bitmap header
+}
+
+STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data)
+{
+ stbi__write_context s;
+ stbi__start_write_callbacks(&s, func, context);
+ return stbi_write_bmp_core(&s, x, y, comp, data);
+}
+
+#ifndef STBI_WRITE_NO_STDIO
+STBIWDEF int stbi_write_bmp(char const *filename, int x, int y, int comp, const void *data)
+{
+ stbi__write_context s;
+ if (stbi__start_write_file(&s,filename)) {
+ int r = stbi_write_bmp_core(&s, x, y, comp, data);
+ stbi__end_write_file(&s);
+ return r;
+ } else
+ return 0;
+}
+#endif //!STBI_WRITE_NO_STDIO
+
+static int stbi_write_tga_core(stbi__write_context *s, int x, int y, int comp, void *data)
+{
+ int has_alpha = (comp == 2 || comp == 4);
+ int colorbytes = has_alpha ? comp-1 : comp;
+ int format = colorbytes < 2 ? 3 : 2; // 3 color channels (RGB/RGBA) = 2, 1 color channel (Y/YA) = 3
+
+ if (y < 0 || x < 0)
+ return 0;
+
+ if (!stbi_write_tga_with_rle) {
+ return stbiw__outfile(s, -1, -1, x, y, comp, 0, (void *) data, has_alpha, 0,
+ "111 221 2222 11", 0, 0, format, 0, 0, 0, 0, 0, x, y, (colorbytes + has_alpha) * 8, has_alpha * 8);
+ } else {
+ int i,j,k;
+ int jend, jdir;
+
+ stbiw__writef(s, "111 221 2222 11", 0,0,format+8, 0,0,0, 0,0,x,y, (colorbytes + has_alpha) * 8, has_alpha * 8);
+
+ if (stbi__flip_vertically_on_write) {
+ j = 0;
+ jend = y;
+ jdir = 1;
+ } else {
+ j = y-1;
+ jend = -1;
+ jdir = -1;
+ }
+ for (; j != jend; j += jdir) {
+ unsigned char *row = (unsigned char *) data + j * x * comp;
+ int len;
+
+ for (i = 0; i < x; i += len) {
+ unsigned char *begin = row + i * comp;
+ int diff = 1;
+ len = 1;
+
+ if (i < x - 1) {
+ ++len;
+ diff = memcmp(begin, row + (i + 1) * comp, comp);
+ if (diff) {
+ const unsigned char *prev = begin;
+ for (k = i + 2; k < x && len < 128; ++k) {
+ if (memcmp(prev, row + k * comp, comp)) {
+ prev += comp;
+ ++len;
+ } else {
+ --len;
+ break;
+ }
+ }
+ } else {
+ for (k = i + 2; k < x && len < 128; ++k) {
+ if (!memcmp(begin, row + k * comp, comp)) {
+ ++len;
+ } else {
+ break;
+ }
+ }
+ }
+ }
+
+ if (diff) {
+ unsigned char header = STBIW_UCHAR(len - 1);
+ s->func(s->context, &header, 1);
+ for (k = 0; k < len; ++k) {
+ stbiw__write_pixel(s, -1, comp, has_alpha, 0, begin + k * comp);
+ }
+ } else {
+ unsigned char header = STBIW_UCHAR(len - 129);
+ s->func(s->context, &header, 1);
+ stbiw__write_pixel(s, -1, comp, has_alpha, 0, begin);
+ }
+ }
+ }
+ }
+ return 1;
+}
+
+STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data)
+{
+ stbi__write_context s;
+ stbi__start_write_callbacks(&s, func, context);
+ return stbi_write_tga_core(&s, x, y, comp, (void *) data);
+}
+
+#ifndef STBI_WRITE_NO_STDIO
+STBIWDEF int stbi_write_tga(char const *filename, int x, int y, int comp, const void *data)
+{
+ stbi__write_context s;
+ if (stbi__start_write_file(&s,filename)) {
+ int r = stbi_write_tga_core(&s, x, y, comp, (void *) data);
+ stbi__end_write_file(&s);
+ return r;
+ } else
+ return 0;
+}
+#endif
+
+// *************************************************************************************************
+// Radiance RGBE HDR writer
+// by Baldur Karlsson
+
+#define stbiw__max(a, b) ((a) > (b) ? (a) : (b))
+
+void stbiw__linear_to_rgbe(unsigned char *rgbe, float *linear)
+{
+ int exponent;
+ float maxcomp = stbiw__max(linear[0], stbiw__max(linear[1], linear[2]));
+
+ if (maxcomp < 1e-32f) {
+ rgbe[0] = rgbe[1] = rgbe[2] = rgbe[3] = 0;
+ } else {
+ float normalize = (float) frexp(maxcomp, &exponent) * 256.0f/maxcomp;
+
+ rgbe[0] = (unsigned char)(linear[0] * normalize);
+ rgbe[1] = (unsigned char)(linear[1] * normalize);
+ rgbe[2] = (unsigned char)(linear[2] * normalize);
+ rgbe[3] = (unsigned char)(exponent + 128);
+ }
+}
+
+void stbiw__write_run_data(stbi__write_context *s, int length, unsigned char databyte)
+{
+ unsigned char lengthbyte = STBIW_UCHAR(length+128);
+ STBIW_ASSERT(length+128 <= 255);
+ s->func(s->context, &lengthbyte, 1);
+ s->func(s->context, &databyte, 1);
+}
+
+void stbiw__write_dump_data(stbi__write_context *s, int length, unsigned char *data)
+{
+ unsigned char lengthbyte = STBIW_UCHAR(length);
+ STBIW_ASSERT(length <= 128); // inconsistent with spec but consistent with official code
+ s->func(s->context, &lengthbyte, 1);
+ s->func(s->context, data, length);
+}
+
+void stbiw__write_hdr_scanline(stbi__write_context *s, int width, int ncomp, unsigned char *scratch, float *scanline)
+{
+ unsigned char scanlineheader[4] = { 2, 2, 0, 0 };
+ unsigned char rgbe[4];
+ float linear[3];
+ int x;
+
+ scanlineheader[2] = (width&0xff00)>>8;
+ scanlineheader[3] = (width&0x00ff);
+
+ /* skip RLE for images too small or large */
+ if (width < 8 || width >= 32768) {
+ for (x=0; x < width; x++) {
+ switch (ncomp) {
+ case 4: /* fallthrough */
+ case 3: linear[2] = scanline[x*ncomp + 2];
+ linear[1] = scanline[x*ncomp + 1];
+ linear[0] = scanline[x*ncomp + 0];
+ break;
+ default:
+ linear[0] = linear[1] = linear[2] = scanline[x*ncomp + 0];
+ break;
+ }
+ stbiw__linear_to_rgbe(rgbe, linear);
+ s->func(s->context, rgbe, 4);
+ }
+ } else {
+ int c,r;
+ /* encode into scratch buffer */
+ for (x=0; x < width; x++) {
+ switch(ncomp) {
+ case 4: /* fallthrough */
+ case 3: linear[2] = scanline[x*ncomp + 2];
+ linear[1] = scanline[x*ncomp + 1];
+ linear[0] = scanline[x*ncomp + 0];
+ break;
+ default:
+ linear[0] = linear[1] = linear[2] = scanline[x*ncomp + 0];
+ break;
+ }
+ stbiw__linear_to_rgbe(rgbe, linear);
+ scratch[x + width*0] = rgbe[0];
+ scratch[x + width*1] = rgbe[1];
+ scratch[x + width*2] = rgbe[2];
+ scratch[x + width*3] = rgbe[3];
+ }
+
+ s->func(s->context, scanlineheader, 4);
+
+ /* RLE each component separately */
+ for (c=0; c < 4; c++) {
+ unsigned char *comp = &scratch[width*c];
+
+ x = 0;
+ while (x < width) {
+ // find first run
+ r = x;
+ while (r+2 < width) {
+ if (comp[r] == comp[r+1] && comp[r] == comp[r+2])
+ break;
+ ++r;
+ }
+ if (r+2 >= width)
+ r = width;
+ // dump up to first run
+ while (x < r) {
+ int len = r-x;
+ if (len > 128) len = 128;
+ stbiw__write_dump_data(s, len, &comp[x]);
+ x += len;
+ }
+ // if there's a run, output it
+ if (r+2 < width) { // same test as what we break out of in search loop, so only true if we break'd
+ // find next byte after run
+ while (r < width && comp[r] == comp[x])
+ ++r;
+ // output run up to r
+ while (x < r) {
+ int len = r-x;
+ if (len > 127) len = 127;
+ stbiw__write_run_data(s, len, comp[x]);
+ x += len;
+ }
+ }
+ }
+ }
+ }
+}
+
+static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int comp, float *data)
+{
+ if (y <= 0 || x <= 0 || data == NULL)
+ return 0;
+ else {
+ // Each component is stored separately. Allocate scratch space for full output scanline.
+ unsigned char *scratch = (unsigned char *) STBIW_MALLOC(x*4);
+ int i, len;
+ char buffer[128];
+ char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n";
+ s->func(s->context, header, sizeof(header)-1);
+
+#ifdef STBI_MSC_SECURE_CRT
+ len = sprintf_s(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
+#else
+ len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x);
+#endif
+ s->func(s->context, buffer, len);
+
+ for(i=0; i < y; i++)
+ stbiw__write_hdr_scanline(s, x, comp, scratch, data + comp*x*(stbi__flip_vertically_on_write ? y-1-i : i)*x);
+ STBIW_FREE(scratch);
+ return 1;
+ }
+}
+
+STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const float *data)
+{
+ stbi__write_context s;
+ stbi__start_write_callbacks(&s, func, context);
+ return stbi_write_hdr_core(&s, x, y, comp, (float *) data);
+}
+
+#ifndef STBI_WRITE_NO_STDIO
+STBIWDEF int stbi_write_hdr(char const *filename, int x, int y, int comp, const float *data)
+{
+ stbi__write_context s;
+ if (stbi__start_write_file(&s,filename)) {
+ int r = stbi_write_hdr_core(&s, x, y, comp, (float *) data);
+ stbi__end_write_file(&s);
+ return r;
+ } else
+ return 0;
+}
+#endif // STBI_WRITE_NO_STDIO
+
+
+//////////////////////////////////////////////////////////////////////////////
+//
+// PNG writer
+//
+
+#ifndef STBIW_ZLIB_COMPRESS
+// stretchy buffer; stbiw__sbpush() == vector<>::push_back() -- stbiw__sbcount() == vector<>::size()
+#define stbiw__sbraw(a) ((int *) (a) - 2)
+#define stbiw__sbm(a) stbiw__sbraw(a)[0]
+#define stbiw__sbn(a) stbiw__sbraw(a)[1]
+
+#define stbiw__sbneedgrow(a,n) ((a)==0 || stbiw__sbn(a)+n >= stbiw__sbm(a))
+#define stbiw__sbmaybegrow(a,n) (stbiw__sbneedgrow(a,(n)) ? stbiw__sbgrow(a,n) : 0)
+#define stbiw__sbgrow(a,n) stbiw__sbgrowf((void **) &(a), (n), sizeof(*(a)))
+
+#define stbiw__sbpush(a, v) (stbiw__sbmaybegrow(a,1), (a)[stbiw__sbn(a)++] = (v))
+#define stbiw__sbcount(a) ((a) ? stbiw__sbn(a) : 0)
+#define stbiw__sbfree(a) ((a) ? STBIW_FREE(stbiw__sbraw(a)),0 : 0)
+
+static void *stbiw__sbgrowf(void **arr, int increment, int itemsize)
+{
+ int m = *arr ? 2*stbiw__sbm(*arr)+increment : increment+1;
+ void *p = STBIW_REALLOC_SIZED(*arr ? stbiw__sbraw(*arr) : 0, *arr ? (stbiw__sbm(*arr)*itemsize + sizeof(int)*2) : 0, itemsize * m + sizeof(int)*2);
+ STBIW_ASSERT(p);
+ if (p) {
+ if (!*arr) ((int *) p)[1] = 0;
+ *arr = (void *) ((int *) p + 2);
+ stbiw__sbm(*arr) = m;
+ }
+ return *arr;
+}
+
+static unsigned char *stbiw__zlib_flushf(unsigned char *data, unsigned int *bitbuffer, int *bitcount)
+{
+ while (*bitcount >= 8) {
+ stbiw__sbpush(data, STBIW_UCHAR(*bitbuffer));
+ *bitbuffer >>= 8;
+ *bitcount -= 8;
+ }
+ return data;
+}
+
+static int stbiw__zlib_bitrev(int code, int codebits)
+{
+ int res=0;
+ while (codebits--) {
+ res = (res << 1) | (code & 1);
+ code >>= 1;
+ }
+ return res;
+}
+
+static unsigned int stbiw__zlib_countm(unsigned char *a, unsigned char *b, int limit)
+{
+ int i;
+ for (i=0; i < limit && i < 258; ++i)
+ if (a[i] != b[i]) break;
+ return i;
+}
+
+static unsigned int stbiw__zhash(unsigned char *data)
+{
+ stbiw_uint32 hash = data[0] + (data[1] << 8) + (data[2] << 16);
+ hash ^= hash << 3;
+ hash += hash >> 5;
+ hash ^= hash << 4;
+ hash += hash >> 17;
+ hash ^= hash << 25;
+ hash += hash >> 6;
+ return hash;
+}
+
+#define stbiw__zlib_flush() (out = stbiw__zlib_flushf(out, &bitbuf, &bitcount))
+#define stbiw__zlib_add(code,codebits) \
+ (bitbuf |= (code) << bitcount, bitcount += (codebits), stbiw__zlib_flush())
+#define stbiw__zlib_huffa(b,c) stbiw__zlib_add(stbiw__zlib_bitrev(b,c),c)
+// default huffman tables
+#define stbiw__zlib_huff1(n) stbiw__zlib_huffa(0x30 + (n), 8)
+#define stbiw__zlib_huff2(n) stbiw__zlib_huffa(0x190 + (n)-144, 9)
+#define stbiw__zlib_huff3(n) stbiw__zlib_huffa(0 + (n)-256,7)
+#define stbiw__zlib_huff4(n) stbiw__zlib_huffa(0xc0 + (n)-280,8)
+#define stbiw__zlib_huff(n) ((n) <= 143 ? stbiw__zlib_huff1(n) : (n) <= 255 ? stbiw__zlib_huff2(n) : (n) <= 279 ? stbiw__zlib_huff3(n) : stbiw__zlib_huff4(n))
+#define stbiw__zlib_huffb(n) ((n) <= 143 ? stbiw__zlib_huff1(n) : stbiw__zlib_huff2(n))
+
+#define stbiw__ZHASH 16384
+
+#endif // STBIW_ZLIB_COMPRESS
+
+unsigned char * stbi_zlib_compress(unsigned char *data, int data_len, int *out_len, int quality)
+{
+#ifdef STBIW_ZLIB_COMPRESS
+ // user provided a zlib compress implementation, use that
+ return STBIW_ZLIB_COMPRESS(data, data_len, out_len, quality);
+#else // use builtin
+ static unsigned short lengthc[] = { 3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258, 259 };
+ static unsigned char lengtheb[]= { 0,0,0,0,0,0,0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 };
+ static unsigned short distc[] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577, 32768 };
+ static unsigned char disteb[] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13 };
+ unsigned int bitbuf=0;
+ int i,j, bitcount=0;
+ unsigned char *out = NULL;
+ unsigned char ***hash_table = (unsigned char***) STBIW_MALLOC(stbiw__ZHASH * sizeof(char**));
+ if (hash_table == NULL)
+ return NULL;
+ if (quality < 5) quality = 5;
+
+ stbiw__sbpush(out, 0x78); // DEFLATE 32K window
+ stbiw__sbpush(out, 0x5e); // FLEVEL = 1
+ stbiw__zlib_add(1,1); // BFINAL = 1
+ stbiw__zlib_add(1,2); // BTYPE = 1 -- fixed huffman
+
+ for (i=0; i < stbiw__ZHASH; ++i)
+ hash_table[i] = NULL;
+
+ i=0;
+ while (i < data_len-3) {
+ // hash next 3 bytes of data to be compressed
+ int h = stbiw__zhash(data+i)&(stbiw__ZHASH-1), best=3;
+ unsigned char *bestloc = 0;
+ unsigned char **hlist = hash_table[h];
+ int n = stbiw__sbcount(hlist);
+ for (j=0; j < n; ++j) {
+ if (hlist[j]-data > i-32768) { // if entry lies within window
+ int d = stbiw__zlib_countm(hlist[j], data+i, data_len-i);
+ if (d >= best) best=d,bestloc=hlist[j];
+ }
+ }
+ // when hash table entry is too long, delete half the entries
+ if (hash_table[h] && stbiw__sbn(hash_table[h]) == 2*quality) {
+ STBIW_MEMMOVE(hash_table[h], hash_table[h]+quality, sizeof(hash_table[h][0])*quality);
+ stbiw__sbn(hash_table[h]) = quality;
+ }
+ stbiw__sbpush(hash_table[h],data+i);
+
+ if (bestloc) {
+ // "lazy matching" - check match at *next* byte, and if it's better, do cur byte as literal
+ h = stbiw__zhash(data+i+1)&(stbiw__ZHASH-1);
+ hlist = hash_table[h];
+ n = stbiw__sbcount(hlist);
+ for (j=0; j < n; ++j) {
+ if (hlist[j]-data > i-32767) {
+ int e = stbiw__zlib_countm(hlist[j], data+i+1, data_len-i-1);
+ if (e > best) { // if next match is better, bail on current match
+ bestloc = NULL;
+ break;
+ }
+ }
+ }
+ }
+
+ if (bestloc) {
+ int d = (int) (data+i - bestloc); // distance back
+ STBIW_ASSERT(d <= 32767 && best <= 258);
+ for (j=0; best > lengthc[j+1]-1; ++j);
+ stbiw__zlib_huff(j+257);
+ if (lengtheb[j]) stbiw__zlib_add(best - lengthc[j], lengtheb[j]);
+ for (j=0; d > distc[j+1]-1; ++j);
+ stbiw__zlib_add(stbiw__zlib_bitrev(j,5),5);
+ if (disteb[j]) stbiw__zlib_add(d - distc[j], disteb[j]);
+ i += best;
+ } else {
+ stbiw__zlib_huffb(data[i]);
+ ++i;
+ }
+ }
+ // write out final bytes
+ for (;i < data_len; ++i)
+ stbiw__zlib_huffb(data[i]);
+ stbiw__zlib_huff(256); // end of block
+ // pad with 0 bits to byte boundary
+ while (bitcount)
+ stbiw__zlib_add(0,1);
+
+ for (i=0; i < stbiw__ZHASH; ++i)
+ (void) stbiw__sbfree(hash_table[i]);
+ STBIW_FREE(hash_table);
+
+ {
+ // compute adler32 on input
+ unsigned int s1=1, s2=0;
+ int blocklen = (int) (data_len % 5552);
+ j=0;
+ while (j < data_len) {
+ for (i=0; i < blocklen; ++i) s1 += data[j+i], s2 += s1;
+ s1 %= 65521, s2 %= 65521;
+ j += blocklen;
+ blocklen = 5552;
+ }
+ stbiw__sbpush(out, STBIW_UCHAR(s2 >> 8));
+ stbiw__sbpush(out, STBIW_UCHAR(s2));
+ stbiw__sbpush(out, STBIW_UCHAR(s1 >> 8));
+ stbiw__sbpush(out, STBIW_UCHAR(s1));
+ }
+ *out_len = stbiw__sbn(out);
+ // make returned pointer freeable
+ STBIW_MEMMOVE(stbiw__sbraw(out), out, *out_len);
+ return (unsigned char *) stbiw__sbraw(out);
+#endif // STBIW_ZLIB_COMPRESS
+}
+
+static unsigned int stbiw__crc32(unsigned char *buffer, int len)
+{
+ static unsigned int crc_table[256] =
+ {
+ 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
+ 0x0eDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
+ 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
+ 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
+ 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
+ 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
+ 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
+ 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
+ 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
+ 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
+ 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
+ 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
+ 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
+ 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
+ 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
+ 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
+ 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
+ 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
+ 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
+ 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
+ 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
+ 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
+ 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
+ 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
+ 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
+ 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
+ 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
+ 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
+ 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
+ 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
+ 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
+ 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
+ };
+
+ unsigned int crc = ~0u;
+ int i;
+ for (i=0; i < len; ++i)
+ crc = (crc >> 8) ^ crc_table[buffer[i] ^ (crc & 0xff)];
+ return ~crc;
+}
+
+#define stbiw__wpng4(o,a,b,c,d) ((o)[0]=STBIW_UCHAR(a),(o)[1]=STBIW_UCHAR(b),(o)[2]=STBIW_UCHAR(c),(o)[3]=STBIW_UCHAR(d),(o)+=4)
+#define stbiw__wp32(data,v) stbiw__wpng4(data, (v)>>24,(v)>>16,(v)>>8,(v));
+#define stbiw__wptag(data,s) stbiw__wpng4(data, s[0],s[1],s[2],s[3])
+
+static void stbiw__wpcrc(unsigned char **data, int len)
+{
+ unsigned int crc = stbiw__crc32(*data - len - 4, len+4);
+ stbiw__wp32(*data, crc);
+}
+
+static unsigned char stbiw__paeth(int a, int b, int c)
+{
+ int p = a + b - c, pa = abs(p-a), pb = abs(p-b), pc = abs(p-c);
+ if (pa <= pb && pa <= pc) return STBIW_UCHAR(a);
+ if (pb <= pc) return STBIW_UCHAR(b);
+ return STBIW_UCHAR(c);
+}
+
+// @OPTIMIZE: provide an option that always forces left-predict or paeth predict
+static void stbiw__encode_png_line(unsigned char *pixels, int stride_bytes, int width, int height, int y, int n, int filter_type, signed char *line_buffer)
+{
+ static int mapping[] = { 0,1,2,3,4 };
+ static int firstmap[] = { 0,1,0,5,6 };
+ int *mymap = (y != 0) ? mapping : firstmap;
+ int i;
+ int type = mymap[filter_type];
+ unsigned char *z = pixels + stride_bytes * (stbi__flip_vertically_on_write ? height-1-y : y);
+ int signed_stride = stbi__flip_vertically_on_write ? -stride_bytes : stride_bytes;
+ for (i = 0; i < n; ++i) {
+ switch (type) {
+ case 0: line_buffer[i] = z[i]; break;
+ case 1: line_buffer[i] = z[i]; break;
+ case 2: line_buffer[i] = z[i] - z[i-signed_stride]; break;
+ case 3: line_buffer[i] = z[i] - (z[i-signed_stride]>>1); break;
+ case 4: line_buffer[i] = (signed char) (z[i] - stbiw__paeth(0,z[i-signed_stride],0)); break;
+ case 5: line_buffer[i] = z[i]; break;
+ case 6: line_buffer[i] = z[i]; break;
+ }
+ }
+ for (i=n; i < width*n; ++i) {
+ switch (type) {
+ case 0: line_buffer[i] = z[i]; break;
+ case 1: line_buffer[i] = z[i] - z[i-n]; break;
+ case 2: line_buffer[i] = z[i] - z[i-signed_stride]; break;
+ case 3: line_buffer[i] = z[i] - ((z[i-n] + z[i-signed_stride])>>1); break;
+ case 4: line_buffer[i] = z[i] - stbiw__paeth(z[i-n], z[i-signed_stride], z[i-signed_stride-n]); break;
+ case 5: line_buffer[i] = z[i] - (z[i-n]>>1); break;
+ case 6: line_buffer[i] = z[i] - stbiw__paeth(z[i-n], 0,0); break;
+ }
+ }
+}
+
+unsigned char *stbi_write_png_to_mem(unsigned char *pixels, int stride_bytes, int x, int y, int n, int *out_len)
+{
+ int force_filter = stbi_write_force_png_filter;
+ int ctype[5] = { -1, 0, 4, 2, 6 };
+ unsigned char sig[8] = { 137,80,78,71,13,10,26,10 };
+ unsigned char *out,*o, *filt, *zlib;
+ signed char *line_buffer;
+ int j,zlen;
+
+ if (stride_bytes == 0)
+ stride_bytes = x * n;
+
+ if (force_filter >= 5) {
+ force_filter = -1;
+ }
+
+ filt = (unsigned char *) STBIW_MALLOC((x*n+1) * y); if (!filt) return 0;
+ line_buffer = (signed char *) STBIW_MALLOC(x * n); if (!line_buffer) { STBIW_FREE(filt); return 0; }
+ for (j=0; j < y; ++j) {
+ int filter_type;
+ if (force_filter > -1) {
+ filter_type = force_filter;
+ stbiw__encode_png_line(pixels, stride_bytes, x, y, j, n, force_filter, line_buffer);
+ } else { // Estimate the best filter by running through all of them:
+ int best_filter = 0, best_filter_val = 0x7fffffff, est, i;
+ for (filter_type = 0; filter_type < 5; filter_type++) {
+ stbiw__encode_png_line(pixels, stride_bytes, x, y, j, n, filter_type, line_buffer);
+
+ // Estimate the entropy of the line using this filter; the less, the better.
+ est = 0;
+ for (i = 0; i < x*n; ++i) {
+ est += abs((signed char) line_buffer[i]);
+ }
+ if (est < best_filter_val) {
+ best_filter_val = est;
+ best_filter = filter_type;
+ }
+ }
+ if (filter_type != best_filter) { // If the last iteration already got us the best filter, don't redo it
+ stbiw__encode_png_line(pixels, stride_bytes, x, y, j, n, best_filter, line_buffer);
+ filter_type = best_filter;
+ }
+ }
+ // when we get here, filter_type contains the filter type, and line_buffer contains the data
+ filt[j*(x*n+1)] = (unsigned char) filter_type;
+ STBIW_MEMMOVE(filt+j*(x*n+1)+1, line_buffer, x*n);
+ }
+ STBIW_FREE(line_buffer);
+ zlib = stbi_zlib_compress(filt, y*( x*n+1), &zlen, stbi_write_png_compression_level);
+ STBIW_FREE(filt);
+ if (!zlib) return 0;
+
+ // each tag requires 12 bytes of overhead
+ out = (unsigned char *) STBIW_MALLOC(8 + 12+13 + 12+zlen + 12);
+ if (!out) return 0;
+ *out_len = 8 + 12+13 + 12+zlen + 12;
+
+ o=out;
+ STBIW_MEMMOVE(o,sig,8); o+= 8;
+ stbiw__wp32(o, 13); // header length
+ stbiw__wptag(o, "IHDR");
+ stbiw__wp32(o, x);
+ stbiw__wp32(o, y);
+ *o++ = 8;
+ *o++ = STBIW_UCHAR(ctype[n]);
+ *o++ = 0;
+ *o++ = 0;
+ *o++ = 0;
+ stbiw__wpcrc(&o,13);
+
+ stbiw__wp32(o, zlen);
+ stbiw__wptag(o, "IDAT");
+ STBIW_MEMMOVE(o, zlib, zlen);
+ o += zlen;
+ STBIW_FREE(zlib);
+ stbiw__wpcrc(&o, zlen);
+
+ stbiw__wp32(o,0);
+ stbiw__wptag(o, "IEND");
+ stbiw__wpcrc(&o,0);
+
+ STBIW_ASSERT(o == out + *out_len);
+
+ return out;
+}
+
+#ifndef STBI_WRITE_NO_STDIO
+STBIWDEF int stbi_write_png(char const *filename, int x, int y, int comp, const void *data, int stride_bytes)
+{
+ FILE *f;
+ int len;
+ unsigned char *png = stbi_write_png_to_mem((unsigned char *) data, stride_bytes, x, y, comp, &len);
+ if (png == NULL) return 0;
+#ifdef STBI_MSC_SECURE_CRT
+ if (fopen_s(&f, filename, "wb"))
+ f = NULL;
+#else
+ f = fopen(filename, "wb");
+#endif
+ if (!f) { STBIW_FREE(png); return 0; }
+ fwrite(png, 1, len, f);
+ fclose(f);
+ STBIW_FREE(png);
+ return 1;
+}
+#endif
+
+STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int stride_bytes)
+{
+ int len;
+ unsigned char *png = stbi_write_png_to_mem((unsigned char *) data, stride_bytes, x, y, comp, &len);
+ if (png == NULL) return 0;
+ func(context, png, len);
+ STBIW_FREE(png);
+ return 1;
+}
+
+
+/* ***************************************************************************
+ *
+ * JPEG writer
+ *
+ * This is based on Jon Olick's jo_jpeg.cpp:
+ * public domain Simple, Minimalistic JPEG writer - http://www.jonolick.com/code.html
+ */
+
+static const unsigned char stbiw__jpg_ZigZag[] = { 0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,
+ 24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63 };
+
+static void stbiw__jpg_writeBits(stbi__write_context *s, int *bitBufP, int *bitCntP, const unsigned short *bs) {
+ int bitBuf = *bitBufP, bitCnt = *bitCntP;
+ bitCnt += bs[1];
+ bitBuf |= bs[0] << (24 - bitCnt);
+ while(bitCnt >= 8) {
+ unsigned char c = (bitBuf >> 16) & 255;
+ stbiw__putc(s, c);
+ if(c == 255) {
+ stbiw__putc(s, 0);
+ }
+ bitBuf <<= 8;
+ bitCnt -= 8;
+ }
+ *bitBufP = bitBuf;
+ *bitCntP = bitCnt;
+}
+
+static void stbiw__jpg_DCT(float *d0p, float *d1p, float *d2p, float *d3p, float *d4p, float *d5p, float *d6p, float *d7p) {
+ float d0 = *d0p, d1 = *d1p, d2 = *d2p, d3 = *d3p, d4 = *d4p, d5 = *d5p, d6 = *d6p, d7 = *d7p;
+ float z1, z2, z3, z4, z5, z11, z13;
+
+ float tmp0 = d0 + d7;
+ float tmp7 = d0 - d7;
+ float tmp1 = d1 + d6;
+ float tmp6 = d1 - d6;
+ float tmp2 = d2 + d5;
+ float tmp5 = d2 - d5;
+ float tmp3 = d3 + d4;
+ float tmp4 = d3 - d4;
+
+ // Even part
+ float tmp10 = tmp0 + tmp3; // phase 2
+ float tmp13 = tmp0 - tmp3;
+ float tmp11 = tmp1 + tmp2;
+ float tmp12 = tmp1 - tmp2;
+
+ d0 = tmp10 + tmp11; // phase 3
+ d4 = tmp10 - tmp11;
+
+ z1 = (tmp12 + tmp13) * 0.707106781f; // c4
+ d2 = tmp13 + z1; // phase 5
+ d6 = tmp13 - z1;
+
+ // Odd part
+ tmp10 = tmp4 + tmp5; // phase 2
+ tmp11 = tmp5 + tmp6;
+ tmp12 = tmp6 + tmp7;
+
+ // The rotator is modified from fig 4-8 to avoid extra negations.
+ z5 = (tmp10 - tmp12) * 0.382683433f; // c6
+ z2 = tmp10 * 0.541196100f + z5; // c2-c6
+ z4 = tmp12 * 1.306562965f + z5; // c2+c6
+ z3 = tmp11 * 0.707106781f; // c4
+
+ z11 = tmp7 + z3; // phase 5
+ z13 = tmp7 - z3;
+
+ *d5p = z13 + z2; // phase 6
+ *d3p = z13 - z2;
+ *d1p = z11 + z4;
+ *d7p = z11 - z4;
+
+ *d0p = d0; *d2p = d2; *d4p = d4; *d6p = d6;
+}
+
+static void stbiw__jpg_calcBits(int val, unsigned short bits[2]) {
+ int tmp1 = val < 0 ? -val : val;
+ val = val < 0 ? val-1 : val;
+ bits[1] = 1;
+ while(tmp1 >>= 1) {
+ ++bits[1];
+ }
+ bits[0] = val & ((1<