{ "cells": [ { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\n", "15 ['latin/BOOKOS.TTF', 'latin/Candarab.ttf', 'latin/corbeli.ttf', 'latin/ARIALN.TTF', 'latin/CALISTBI.TTF', 'latin/SCHLBKI.TTF', 'latin/CENTURY.TTF', 'latin/ARIALNBI.TTF', 'latin/consolai.ttf', 'latin/ANTQUAB.TTF', 'latin/verdana.ttf', 'latin/ARIALNB.TTF', 'latin/LBRITEI.TTF', 'latin/tahoma.ttf', 'latin/Candara.ttf']\n", "n_class:63, n_len:6\n", "15 latin/BOOKOS.TTF\n" ] } ], "source": [ "from captcha.image import ImageCaptcha\n", "from PIL import Image, ImageFont, ImageDraw\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import random\n", "import uuid\n", "import math\n", "import glob\n", "\n", "%matplotlib inline\n", "%config InlineBackend.figure_format = 'retina'\n", "\n", "import string\n", "characters = string.ascii_uppercase + string.ascii_lowercase + string.digits # 验证码字符集合数字+英文\n", "print(characters)\n", "\n", "width, height, n_len, n_class = 200, 70, 6, len(characters) + 1 #图片宽、高,验证码最大长度,分类\n", "# width, height, n_len, n_class = 128, 64, 6, len(characters) + 1 #图片宽、高,验证码最大长度,分类\n", "# fonts=glob.glob('fonts/english/*')\n", "# fonts = glob.glob('latin2/*')\n", "# fonts.remove('latin2/ANTQUABI.TTF') # n,u 不清晰删除\n", "\n", "font_paths = glob.glob('latin/*')\n", "# font_list = ['ARIALN.TTF', 'ARIALNI.TTF', 'BKANT.TTF', 'calibrii.ttf', 'calibrili.ttf','Calibrib.ttf', 'CALISTI.TTF','cambriai.ttf','LSANS.TTF','CENSCBK.TTF']\n", "font_list = ['ANTQUAB.TTF', 'ARIALN.TTF', 'ARIALNB.TTF', 'ARIALNBI.TTF', 'BOOKOS.TTF','CALISTBI.TTF', 'Candara.ttf', 'Candarab.ttf','CENTURY.TTF','corbeli.ttf',\n", " 'consolai.ttf','LBRITEI.TTF','SCHLBKI.TTF','tahoma.ttf', 'verdana.ttf']\n", "\n", "fonts = []\n", "for font in font_paths:\n", " if font.split('/')[-1] in font_list:\n", " fonts.append(font)\n", "print(len(fonts), fonts[:])\n", "\n", "print('n_class:%d, n_len:%d'%(n_class, n_len))\n", "print(len(fonts), fonts[0])\n" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "image size (122, 46) (200, 70)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 279, "width": 2238 }, "needs_background": "light" }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "random_color(rs, re, gs, ge, bs, be) (18, 19, 18)\n", "rand 0.732036669162195\n" ] } ], "source": [ "'''生成彩色图像'''\n", "def get_wavy_line(w = (0, 100),h = (30, 50)):\n", " '''产生波浪线坐标'''\n", " import random\n", " n = 50\n", " x = 0\n", " y = random.randint(h[0],h[1])\n", " flag = random.randint(0,2)\n", " xy = [(x, y)]\n", " while x < w[1]:\n", " temp_y = random.randint(1, 3)\n", " temp_x = random.randint(5, 10)\n", " if flag == 0:\n", " if y + temp_y > h[1]:\n", " y -= temp_y\n", " flag = 1\n", " else:\n", " y += temp_y\n", " else:\n", " if y - temp_y < h[0]:\n", " y += temp_y\n", " flag = 0\n", " else:\n", " y -= temp_y\n", " x = x+temp_x if x+temp_x < w[1] else w[1]\n", " xy.append((x, y))\n", " return xy\n", "def Asin(x, A=8,w=0.05, b=6, k=40):\n", " '''\n", " y=Asin(ωx+φ)+k在直角坐标系上的图象\n", " A——振幅,当物体作轨迹符合正弦曲线的直线往复运动时,其值为行程的1/2。\n", " (ωx+φ)——相位,反映变量y所处的状态。\n", " φ——初相,x=0时的相位;反映在坐标系上则为图像的左右移动。\n", " k——偏距,反映在坐标系上则为图像的上移或下移。\n", " ω——角速度, 控制正弦周期(单位弧度内震动的次数)。\n", " '''\n", " return A*math.sin(w*x+b)+k\n", "\n", "def random_xy(width,height): \n", " '''\n", " 随机位置函数,返回指定范围随机位置坐标\n", " 参数:width:图片宽,height:图片高\n", " '''\n", " x = random.randint(0, width)\n", " y = random.randint(0, height)\n", " return x, y\n", "def random_color(color_tuple):\n", " '''\n", " 随机颜色函数,返回指定范围随机颜色值\n", " 参数:start:颜色最低值,end:颜色最高值\n", " '''\n", " if len(color_tuple)==2:\n", " rs, re = color_tuple\n", " gs = bs = rs\n", " ge = be = re\n", " else:\n", " rs, re, gs, ge, bs, be = color_tuple\n", " red = random.randint(rs, re)\n", " green = random.randint(gs, ge)\n", " blue = random.randint(bs, be)\n", " return (red, green, blue)\n", "\n", "is_raw_size=False\n", "\n", "def gen_captcha(text, fig_size=(200,70), fonts=['fonts/ANTQUAB.TTF'],font_color=(10,100),same_color=1, font_size=(25, 35), rotate=0,\n", " font_noise=0, offset_w=(0,0), offset_h=0, line=(0,0), shortline=(0,0), line_width=(0,1), line_color=(200,250), point=(0,500), \n", " point_color=(150,250), frame_color=None, wavy=(0,0), bg=(200,255)):\n", " '''\n", " text:验证码文本\n", " size:验证码图片宽高\n", " fonts:字体列表,随机选择一个\n", " font_noise: 字体散点干扰,0不加干扰,1加干扰\n", " offset_hor: 左右偏移值\n", " offset_var: 上下偏移值\n", " fill:字体颜色范围\n", " rotate:字体旋转角度\n", " line:干扰线条数范围\n", " point:干扰点数范围\n", " wavy:波浪线数范围\n", " color:干扰线、点 颜色\n", " bg:背景色范围\n", " '''\n", " bg = random_color(bg)\n", " img = Image.new(mode='RGB', size=fig_size, color=bg) #\n", " draw = ImageDraw.Draw(im=img, mode='RGB') # im, mode=None\n", " \n", " font_path = random.choice(fonts)\n", "# font_name = font_path.split('/')[-1][:-4]\n", "# print('font_name:', font_name)\n", " \n", " font = ImageFont.truetype(font_path, size=random.randint(font_size[0], font_size[1])) # font=None, size=10, index=0, encoding=\"\"\n", " rotate = random.randint(0, rotate)\n", " def get_char_img(char,font,font_color,rotate,bg, font_noise=0):\n", " '''\n", " 生成单个字符图片,随机颜色加随机旋转\n", " \n", " '''\n", " w, h = draw.textsize(char, font=font)\n", " im = Image.new('RGBA',(w,h), color=bg)\n", " ImageDraw.Draw(im).text((0,0), char, font=font, fill=font_color) \n", " if rotate:\n", " im = im.rotate(random.randint(-rotate, rotate),Image.BILINEAR,expand=1)\n", " im = im.crop(im.getbbox())\n", " if font_noise: \n", " im_draw = ImageDraw.Draw(im)\n", "# for i in range(random.randint(1,20)):\n", " for i in range(random.randint(int(w*h*0.01),min(int(w*h*0.05), 5))):\n", " im_draw.point(xy=(random.randint(0, w), random.randint(0, h)),fill=bg)\n", "\n", " table = []\n", " for i in range(256):\n", " table.append(i * 97) # 5.97\n", " mask = im.convert('L').point(table) \n", " return (im, mask)\n", " \n", "# char_color = random.randint(font_color[0],font_color[1])\n", " char_color = random_color(font_color)\n", " if same_color: \n", " char_imgs = [get_char_img(char, font, font_color=char_color, rotate=rotate, bg=bg, font_noise=font_noise) for char in text]\n", " else:\n", "# char_imgs = [get_char_img(char, font, font_color=random.randint(font_color[0],font_color[1]), rotate=rotate, bg=bg, font_noise=font_noise) for char in text]\n", " char_imgs = [get_char_img(char, font, font_color=random_color(font_color), rotate=rotate, bg=bg, font_noise=font_noise) for char in text] \n", " ws = [img[0].size[0] for img in char_imgs]\n", " hs = [img[0].size[1] for img in char_imgs]\n", " w = max(sum(ws), fig_size[0])\n", " h = max(max(hs), fig_size[1])\n", " if w>fig_size[0] or h>fig_size[1]:\n", " img = Image.new('RGB',(w+6,h+6), color=bg)\n", " draw = ImageDraw.Draw(im=img, mode='RGB') # im, mode=None\n", " w, h = img.size\n", " fig_size = img.size\n", " \n", "\n", " # 短线\n", " for i in range(random.randint(shortline[0], shortline[1])):\n", " x0, y0 = random_xy(w, h)\n", " x1 = x0 + random.randint(2, 5)\n", " y1 = y0 + random.randint(2, 5)\n", " draw.line(xy=((x0,y0),(x1,y1)),\n", " fill=random_color(line_color),\n", " width=random.randint(line_width[0], line_width[1])) # xy, fill=None, width=0\n", " \n", " if rotate:\n", " temp_x = random.randint(int((fig_size[0]-sum(ws))/5), int((fig_size[0]-sum(ws))/2+1))\n", " temp_y = random.randint(int((fig_size[1]-hs[0])/8), int((fig_size[1]-hs[0])/2+1))\n", " for i in range(len(char_imgs)):\n", " tmp_offset = random.randint(offset_w[0], offset_w[1]) if sum(ws)+(len(ws)-1)*offset_w[1] 0:\n", " temp_x = new_x if new_x+ws[i]=0.5:\n", " A_ = random.uniform(hs[1]*0.1,hs[1]*0.2)\n", " w_ = math.pi*4/w#random.uniform(0.04, 0.06)\n", " b_ = random.random()*math.pi\n", " k_ = random.uniform(h*0.5, h*0.7)\n", " # 波浪线\n", " for _ in range(random.randint(wavy[0],wavy[1])): \n", " draw.line(xy=[(x, Asin(x, A_, w_, b_, k_)) for x in range(int(w))], \n", " fill=char_color, width=random.randint(line_width[0], line_width[1])) \n", " else:\n", " # 波浪线\n", " for _ in range(random.randint(wavy[0],wavy[1])): \n", " draw.line(xy=get_wavy_line(w = (0, w),h = (min(hs)-5, max(hs)+5)), \n", " fill=char_color, width=random.randint(line_width[0], line_width[1])) \n", " \n", " # 边框\n", " if frame_color!=None:\n", " draw.line(xy=[(0,0),(0, h), (0, 0), (w, 0),(w-1,0),(w-1, h), (0,h-1),(w-1, h-1)], fill=random_color(frame_color))\n", " \n", " if not rotate:\n", " temp_x = random.randint(int((fig_size[0]-sum(ws))/5), int((fig_size[0]-sum(ws))/2+1))\n", " temp_y = random.randint(int((fig_size[1]-hs[0])/8), int((fig_size[1]-hs[0])/2+1))\n", " for i in range(len(char_imgs)):\n", " tmp_offset = random.randint(offset_w[0], offset_w[1]) if sum(ws)+(len(ws)-1)*offset_w[1] 0:\n", " temp_x = new_x if new_x+ws[i]width or h> height:\n", " return img.resize((width, height), Image.BILINEAR) \n", " elif random.random() >0.5:\n", " background = Image.new(mode='RGB', size=(width, height), color=bg)\n", " background.paste(img, box=(0, 0)) \n", " return background\n", " else:\n", " return img.resize((width, height), Image.BILINEAR)\n", "\n", "# # paths = 'FileInfo0508_2/*.jpg'\n", "# paths = '/data/esa_sdk/gan/english/*.jpg'\n", "# # paths = '/data/captcha/shensebeijingsandian/*.jpg'\n", "# # paths = '/data/captcha/shensexiansandian/*.jpg'\n", "# files = glob.glob(paths)\n", "# img2 = Image.open(files[0])\n", "# img2 = Image.open('/data/captcha/captcha_sample/4.jpg')#.resize((200,70), Image.BILINEAR) #小图多种颜色字、干扰线 \n", "\n", "# img2 = Image.open('/data/captcha/label_english/90_38/0ef53417-3af2-11ec-b040-2cf05ded1cb1_aq4f.jpg')\n", "# random_str = 'Aq4f'\n", "# image = gen_captcha(random_str, fig_size=(90,38), fonts=fonts,font_color=(20,160,20,165,20,160),same_color=0, font_size=(15, 20), rotate=0,\n", "# font_noise=0,offset_w=(-1,3),offset_h=0, line=(100,200), line_width=(0,1), line_color=(170,230), point=(20,150),\n", "# point_color=(200,255),frame_color=(10,30),wavy=(0,0), bg=(255,255)).resize((width, height), Image.BILINEAR)\n", "\n", "# img2 = Image.open('/data/captcha/label_english/122_46/fe9bbdda-24ea-11ed-ab40-b4b5b67760ae_PDZWON.jpg')\n", "# random_str = 'PDZWON'\n", "\n", "imgs_122_46 = glob.glob('/data/captcha/label_english/122_46/*.jpg')[:800]\n", "img_path = random.choice(imgs_122_46)\n", "img2 = Image.open(img_path)\n", "random_str = img_path.split('/')[-1].split('_')[-1][:-4]\n", "\n", "image = gen_captcha(random_str, fig_size=(122,46), fonts=fonts,font_color=(5,160,5,150,5,160),same_color=0, font_size=(17, 20), rotate=10,\n", " font_noise=0,offset_w=(-1,3),offset_h=2, line=(0,3), line_width=(0,1), line_color=(200,250), point=(0,150),\n", " point_color=(200,255),frame_color=(200,250),wavy=(0,0), bg=(235,255)).resize((width, height), Image.BILINEAR)\n", "\n", "\n", "im = [image, img2]\n", "print('image size',img2.size, image.size)\n", "plt.figure(figsize=(50,10))\n", "for i in range(1,3): \n", " plt.subplot(2,2,i)\n", " plt.imshow(im[i-1])\n", "plt.show()\n", "\n", "cl = (10,20)\n", "print('random_color(rs, re, gs, ge, bs, be)', random_color(cl))\n", "print('rand', random.random())" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "7524 /data/captcha/label_english/70_26/07c5530f-ce96-11ea-b53b-c81f66ef0810_9jyr.jpg\n", "14110 /data/captcha/label_english/52_21/169d7266-0a84-11eb-9a54-c81f66ef0810_2f37.jpg\n", "32514 /data/captcha/label_english/100_25/b2b2f39e-db79-11eb-a41f-c81f66ef0810_p24m.jpg\n", "2502 /data/captcha/shensexiansandian/a711d2ab4416673804f0415cb6bab36d_YDJP.jpg\n", "(200, 70)\n" ] }, { "data": { "text/plain": [ "Text(0.5, 1.0, 'mpm3')" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 163, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# 真实验证码加干扰 \n", "import re\n", "from PIL import ImageFilter\n", "len4_imgs = []\n", "len5_imgs = []\n", "\n", "filePath = 'FileInfo0508_2/*.jpg' # 波浪线验证码\n", "files = glob.glob(filePath)\n", "sp = min(int(len(files)*0.8), 3000)\n", "for path in files[:sp]:\n", " label = path.split('_')[-1][:-4].lower().replace('1','l')\n", " if len(label) ==5 and re.search('[0-9]', label)==None:\n", " len5_imgs.append(path)\n", " else:\n", " print('label error', path)\n", "filePath = '/data/captcha/label_english/100_30/*.jpg'\n", "files = glob.glob(filePath)\n", "sp = min(int(len(files)*0.8), 3000)\n", "for path in files[:sp]:\n", " label = path.split('_')[-1][:-4]\n", " if len(label) ==5:\n", " len5_imgs.append(path)\n", " else:\n", " print('label error', path)\n", "\n", "path1 = '/data/captcha/label_english/70_26/*.jpg'\n", "path2 = '/data/captcha/label_english/52_21/*.jpg'\n", "path3 = '/data/captcha/label_english/100_25/*.jpg'\n", "path4 = '/data/captcha/shensebeijingsandian/*.jpg' # 3,4一样图片类型\n", "path5 = '/data/captcha/shensexiansandian/*.jpg'\n", "path6 = '/data/esa_sdk/gan/english/*.jpg' # 数据已被删除\n", "path7 = '/data/captcha/label_english/90_38/*.jpg'\n", "for paths in [path1, path2, path3, path5]: # path1, path2, path3, path4, path5, \n", " files = glob.glob(paths)\n", "# sp = int(len(files)*0.8)\n", " sp = min(int(len(files)*0.8), 3000)\n", " for path in files[:sp]:\n", " label = path.split('_')[-1][:-4]\n", " if len(label) ==4:\n", " len4_imgs.append(path)\n", " else:\n", " print('label error', path)\n", " print(len(files), files[0])\n", "\n", "random.shuffle(len4_imgs)\n", "random.shuffle(len5_imgs)\n", " \n", "def rebuild_img(path):\n", " '''\n", " 读取本地验证码图片进行随机加点噪声为新图片\n", " 参数:path:图片路径\n", " 返回:重组后图片 \n", " '''\n", " if re.search('FileInfo0508', path)!=None:\n", " label = path.split('_')[-1][:-4].lower().replace('1','l')\n", "# print(re.search('FileInfo0508', path))\n", " else:\n", " label = path.split('_')[-1][:-4]\n", " crop_n = len(label) \n", " img = Image.open(path)\n", " img = img.convert('RGB')\n", " w, h = img.size\n", "# img2 = img2.resize((100,50), Image.BILINEAR)\n", " draw = ImageDraw.Draw(img)\n", " # gau = img.filter(ImageFilter.GaussianBlur(radius=2))\n", "# imgs.append((gau, 'gau'))\n", "# sharp = gau.filter(ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3))\n", "# imgs.append((sharp, 'sharp'))\n", "# rank = img.filter(ImageFilter.RankFilter(size=3, rank=3))\n", "# img = img.filter(ImageFilter.GaussianBlur(radius=2))\n", "# img = img.filter(ImageFilter.UnsharpMask(radius=2, percent=150, threshold=3))\n", " for _ in range(random.randint(20,250)):\n", " draw.point(xy=(random_xy(w, h)),fill=random_color((70,220,20,255,70,220))) \n", " # 短线\n", " for i in range(random.randint(10,100)):\n", " x0, y0 = random_xy(w, h)\n", " x1 = x0 + random.randint(2, 5)\n", " y1 = y0 + random.randint(2, 5)\n", " draw.line(xy=((x0,y0),(x1,y1)),\n", " fill=random_color((90,130)),\n", " width=random.randint(0,1)) # xy, fill=None, width=0 \n", " for _ in range(random.randint(0, 3)):\n", " draw.line(xy=(random_xy(w, h),random_xy(w, h)), fill=random_color((80, 250)), width=random.randint(0,2))\n", " w, h = img.size\n", " if w>width or h> height:\n", " return img.resize((width, height), Image.BILINEAR), label.lower() \n", " elif random.random() >0.5:\n", " background = Image.new(mode='RGB', size=(width, height), color=(255,255,255))\n", " background.paste(img, box=(0, 0)) \n", " return background, label.lower()\n", " else:\n", " return img.resize((width, height), Image.BILINEAR), label.lower()\n", "# return img.resize((width, height), Image.BILINEAR), label.lower()\n", "filePath = 'FileInfo0508_2/*.jpg' # 波浪线验证码\n", "files = glob.glob(path7)\n", "img, label = rebuild_img(random.choice(files))\n", "print(img.size)\n", "plt.imshow(img)\n", "plt.title(label)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 150, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "bgs = glob.glob('/data/captcha/crop_english/bg_70_25/*.jpg')\n", "crops = glob.glob('/data/captcha/crop_english/crop_70_25/*.jpg')\n", "def merge_img_7025():\n", " img = Image.open(random.choice(bgs))\n", " w, h = (37,12)\n", " label = []\n", " for i in range(4):\n", " im_p = random.choice(crops)\n", " lb = im_p.split('/')[-1].split('_')[0]\n", " label.append(lb)\n", " im = Image.open(im_p)\n", " img.paste(im, (16+w//4*i,7+0)) # ,w//4*(i+1), h\n", " w, h = img.size\n", " draw = ImageDraw.Draw(img) \n", " for _ in range(random.randint(10,250)):\n", " draw.point(xy=(random_xy(w, h)),fill=random_color((70,220,20,255,70,220))) \n", " return img.resize((width, height), Image.BILINEAR), ''.join(label)\n", "\n", "# img, label = merge_img_7025()\n", "\n", "bgs2 = glob.glob('/data/captcha/crop_english/bg_90_38/*.jpg')\n", "crops2 = glob.glob('/data/captcha/crop_english/crop_90_38/*.jpg')\n", "def merge_img_9038():\n", " img = Image.open(random.choice(bgs2))\n", " w, h = (37,12)\n", " label = []\n", " for i in range(4):\n", " im_p = random.choice(crops2)\n", " lb = im_p.split('/')[-1].split('_')[0]\n", " label.append(lb)\n", " im = Image.open(im_p)\n", " img.paste(im, (17*i+10,0+10)) \n", " w, h = img.size\n", " draw = ImageDraw.Draw(img)\n", " for i in range(random.randint(0,20)):\n", " x0, y0 = random_xy(w, h)\n", " x1 = x0 + random.randint(2, 5)\n", " y1 = y0 + random.randint(2, 5)\n", " draw.line(xy=((x0,y0),(x1,y1)),\n", " fill=random_color((150,200)),\n", " width=random.randint(0,1)) # xy, fill=None, width=0 \n", " return img.resize((width, height), Image.BILINEAR), ''.join(label)\n", "\n", "img, label = merge_img_9038()\n", "plt.imshow(img)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "label: gcbd\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAuIAAAEtCAYAAABNtQXDAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAABYlAAAWJQFJUiTwAACIlklEQVR4nO29d5wc13Xne+705JzzAINA5JxIBJIgITGIIkWKpETbsiVZwXKW7fXbZ+96rX3Pq+eV7XWQd2Wvg7SSZVGJEiXmAIIgCQZEIucwAAZpZjAzmJzq/dEz95xz2VWoafRMN4Df9/PBB6e6TlffunWruqbvr37HeJ5HAAAAAAAAgMklLdkNAAAAAAAA4GYEN+IAAAAAAAAkAdyIAwAAAAAAkARwIw4AAAAAAEASwI04AAAAAAAASQA34gAAAAAAACQB3IgDAAAAAACQBHAjDgAAAAAAQBLAjTgAAAAAAABJADfiAAAAAAAAJAHciAMAAAAAAJAEcCMOAAAAAABAEsCNOAAAAAAAAEkAN+IAAAAAAAAkgaTeiBtj6o0x/2qMaTbG9BtjThpj/sYYU5LMdgEAAAAAADDRGM/zkvPBxswgoi1EVElETxPRQSJaRUR3EdEhIlrreV5rUhoHAAAAAADABJPMX8T/F0Vvwn/H87yHPc/7vz3Pu5uI/pqIZhPRf0ti2wAAAAAAAJhQkvKL+Oiv4UeJ6CQRzfA8b0SsKyCic0RkiKjS87zuOLZ/gogKR7cPAAAAAADARNFIRJ2e500b7xvTE9+WUNw1+v9L8iaciMjzvCvGmLeI6B4iuo2IXo1j+4VEVDr6D9ygFDfW2Xiwt8/G3ReSo2jKLSpQy+mZGTbuvNQ22c0BcVJZW66WB/oHbNze2jnZzQFXIacg28bldcU2bj56UeUND6mvGktmVpZaLiwqtHFbC19LRkZivx+AiSQ3N9fG5RWVNj575rTKGx4enrQ2JYvMzEwbFxb6P0rY2XnZxgMDA2pdXg5fLypL+Rax6dx5lTc8ied7sm7EZ4/+f9hn/RGK3ojPooAbcWPMdp9V2T6vgxuIDf/td2x8/v1DNn7ra/+ajObQ3DtWqeXyKfyHwov/89uT3RwQJ7/8W4+p5ROHm2z81Leem+zmgKsw91b+Aerzf/6ojf/TA3+n8i5fiP1HVMPUBrV8zwP32/g7//xNG3dd6bqmdgIQD3PnL7DxF37zt2z8R7//ZZV3ue3G/7GnpobP1fvvf8Q37/nnf2LjU6eOqXULb7nFxr/3y79o49/4sz9Xea0dHfE08WQ8b0qWRrxo9H+/PR17vXjimwIAAAAAAMDkk6xfxBOC53nLY70++kv5srHlX//1X1frFy1aFGr7xphraF1ithdvG8K+L9H7mOjPCXpfWcMUGw+Uzbfx5+fervL6+3pt/OZrPMGyaKkePpU1tXG1cYz80iK1nC6m0X5x1Qbf903muJjI7afi+I5nezUNlWpd/608tfmJ+35l3G1IlX2M57Nasvar5Swv38aFg1PHvb1E4G47ryjHxhVFPNX87X/RM1RDgzx1L7eRna0nUDPF8oiY7u/u1o8rzZs918bzRXyjnJtB70uFsRlvXqLel8jP6Xhvh40zSvT3SOXSJRxXVdl49lNPqbzhoaGEtikRJPrYZQkZWXFxmW9eSQnLRA8d0sKLhfPn2Hjdo5+w8c9W6/uGIR+pz5YtW9TyH/3RHwW0OBzJ+kV87BfvIp/1Y6+3T3xTAAAAAAAAmHySdSM+Juid5bN+TMTjpyEHAAAAAADguiZZN+Kvjf5/jzFGtWHUvnAtEfUQ0TuT3TAAAAAAAAAmg2RW1nyRos4ov+N53tfF6/+DiH6PiP7R87wvxbltpRH/6le/qtavWbPG731htx9Ps1JC2zfReZf7WKd24jJbCi6syld5mRHeXtC2Bwd4e4e2HVHrpsyut3FReSH5IbVzZ8+wA8bF880qr6qaNeJTps0I1T5JKo6f1g5t3XT4FDtHrJjHGrvMDP03+USO1VTsp5thf+PZfl+6tgKNePzcQ+aI/zmXCv0Z7/uGxPWi6SxbxLma0Y5O9hroEA4LWY4d4m0rbuV14rmRVDneqfi9FM97ruf+HDjPVptpzvjJKC1O2OeM533JGheHet+ycX5EWxTWZc4L9VnHjp20cWfnFbWufYjveY/0+lsUGoq9/bPNZ9XyG5vfICKiPc88ST1tl3b4PbsYRDIf1vwNipa4/ztjzAYiOkBEt1LUY/wwEf2nJLYNAAAAAACACSVpJe49zztGRCuI6FsUvQH/AyKaQUR/S0S3eZ6XnKosAAAAAAAATAJJtS/0PO80EX02mW1IRVJx6igs6Wm8/fxMHl5pcX6sbG9uQY5ad/4UT+cNDfJ0clmNLqiansEVLqcKycmIM9V8uY3/9pNVyqbfMpv8mEwbr7DINmWk67+1C/IyYualuvVXMknF8yweTl04ZeMrPXq6dsG0BW46ERHlDJfHfN0lVeQDiSA9na9bMxqn++Y1nz9nYzmNnSGuN0REadd4nqXiWEo0qSh1mUyyaqqunnQd8O6Jc2r5Qme3T6Y/Tf1c4TInrUetq8iI/f0ViHHqO4rTs0rEYbfXeVHndbVE2zsyNBiuPTFI2i/iAAAAAAAA3MzgRhwAAAAAAIAkcF1X1gT+DA8Lp5Cz7BRSUVGt8nJz8xL6uQWZERsXll/78ErP4O1NX9io1h3fc9LGLc1tvtsor41dgWvaTG1j33TyuI0vnmNHlUhE70fdFK4o6E5DpxpF+bp9C2cWJ6chIOn09nOF2eZW7RiULsb4zLqZNs5IT+3xnQiGe/SU8kALT6fn1HHNOePIvOpEJd66a6zKS0TU3cVyoUtC9tIg5HREWjpzPXPyNI/B3BwtH6iq8K+aeKNztr1LLZ+5fCVmXirKvJraOtVyZ9+AT6Y/WcTj3XPaerGvx00fN1PL+Jy+bwFLz8L2y3Pnjqrlfc/98JrbhF/EAQAAAAAASAK4EQcAAAAAACAJ4EYcAAAAAACAJHBjiM0mgevNJklWhzt27KCNBwe1Zqu2doqNE60XD0L2TZ+zThS+onzRhW5/zlg0zcanDp6x8ZkjWv+akck614LSAhunOZ6K0towO4etEt/f9p7v9ioqWXOf6VREi4dUtNaaTFK9yt/1htzHOVPm2DiSpn+DefbtZ238+Qe/YOPrWSMe9vgOd/Wr5Z4jLTbOruLrhasRTzRXRKXOA3t22di9rlRUyWuOY80WklSoPnv4GNtpZmVlqnXp6fxsUFlJ8bg/12V4hL9UznV2+a4LwndfEmDNK9nXrEuo7D3L4zHez5pIpHXnJ1bOUetuqSxx06PvuYHsThMBfhEHAAAAAAAgCeBGHAAAAAAAgCRwU0pTrrdpi3jIElOWd9/9gI3ffPNlldfTw9N0c+cusXFmpp4q9CMRfXl2RG+jQ8wULouEmzacOqfexrl5erp226u7bHzrvcs5rzBX5UUi3I6qarYju33DPSrvxZ89ZeOlq1bbuGFKo96esBm7UcbcRE8pXs9c6z7392vZWEYGj59IJOKmXxORNL29rAyWP/QPslQjN8s5R9IS2w4/JnP8ZFbmq+XyD90yaZ8tqa7la9hd933Uxs/86EmVt2L1OhtPmT5TrZssa8P+IV2V2E/eEXQc161ZaeO3tu5S657d9I6NH31gg+82wo6Trn62qPzm2/vVuivCYm9okPNGvBGVl5l57dLDMNw7v1Et/9/3rbJxKko6rudrfTz9ORH7i1/EAQAAAAAASAK4EQcAAAAAACAJGM8LN/V/PWGM2U5Ey8aWv/rVr6r1a9eujWebCX1PsqaOBgd1FbkDB3bZuLOz3ca3367lGIlsj/u+YWedHJEZcUwdjYzoKcWeTq4o+O6L2228aO08lVfZUBFz2+45Iqcv39r0io3Lq3TV0oVLWAZzo0wpXm/7keouLL29LAP52fdfUuvW3LXCxlOn1SW0TcMj+qxr77ps4+9v/IGN77v1PpUnq25eaxsS/Z7xbCPVx4VkcEC7umx+5QUbV1bXqHWLV9w2YW2S7/k/7x5U6w5c8K9sHIYhR+oir+FZIWWSQRRk8za+uG6B77qtm1+18aXmsyrvgV/4dMxtJ3pcZDnyoozI+H8vTZXrbzzvScVzU+Y999xzat2jjz4qF3d4nrecxgl+EQcAAAAAACAJ4EYcAAAAAACAJIAbcQAAAAAAAJLATWFfePnYObXcNZ0rV+XXlPm+L9WtfIaHWVfX09Oj1rW1sWavo4MrtrW3t6u8oqJCG5eVVdn41VefVXnr1t1t4+xsbWkWhqB+SbQhWppTNVDaFK7YsMTGJ/adUnm9XVzjc+rcBhu7bZeV7pbdusbGGRm6CuEllqbTvnbWPK6p0u3LTr9+7Z8kqajtS3WyhT71Qw+sU+v27Dxk461b3lfrauoqbbx2PWvJw/bLB+wLM9nyc0DYF7pa8lTnehoXl0Za1PL+lks23nVgyE23tA8W2zjjvM7buOl9mgzWTtfa9Ltm1ftkBhBwqJrOnLfxm+/tsPEj92srw+3v8XMVpWWVat38BayXTxc664p8/f0l160UdrQnj2gd/Evf+1cb3/f4p2ycm6ftL/1IRevXib7+vrllj40viOcIHvv4+rg+90YFv4gDAAAAAACQBHAjDgAAAAAAQBK4KaQpueWFajmrcPzSimQRNAXU3Nxs4/fee0+t27Jli437+/tjxkRE69evF/EdNnYra27f/raN585dZOPS0tiWf6lEWhr3YXFFkY0r8gtUXk66lpaMEXQMiopLfPOMmDWeIYZgehL//E3F6dHrlUT0pVxXXlmq1s2eP93G3V1aetbbwzKqza++a+Pb1i1TeVnZ4azfsoU05f5b77dxdWl1rPSrkmiZUs8g67wixpHVpPM+9g6ylObFQ6dVnlw3mfjtV4/Xq5ZzMvnCcPuMGjddbK/Wd13LRZZ0HNy728ar1t6h8jKzdPVh/8+K3faZ4jpKRFSSG257YbZNRDRwme00s4a48mVDsZaBFK5kKcnZM0fVussnWdKybMVdodqUX1Rs49x8/VkXm8/YeGQ49SRbqXjNntbI47hfVDf93g9eVXkf+yhbSufl5YTadipa6cYLfhEHAAAAAAAgCeBGHAAAAAAAgCSAG3EAAAAAAACSwE2hEc92dGUZITVIfqSK5qivj3WiZ86cUeveeeedUNuYNm2ajQeFhrKxUZeyHhBllk+fPiHeM6DyqqrGX4o7Wf1Z2ajtrtIyE2ukmCvOrin5iT32qagHTDSpXqZ5oqlr8Ndnt1/utPHJY3zuu9adkqB9zIjw8xFzps71fc/xtisct14hPxJ+rRvi60/E6H2UbZefm5epn/lwl8MwkePCGP09VJHPy8vqy+NqU0c+X8PKB9m21rQ0qbyZc+bZuLjU38I3njYk4n1lpcU2XrNyiY2znGNY3zBDbFtv48zpYzbesW2TjRcuWq3y/PTyJeX6+2HRKraq3f0eP4M1d4muaF5aUUWxkLagRES7dvM2Zs5YYOOyEv251xPu8a2v42fIMjL4C3HrtgMqb+Mm1vOvWsljs6qyhG4G8Is4AAAAAAAASQA34gAAAAAAACSBm0KacqOSl5dn46KiooBMZuryBrWcX8tWjrICZ3r6dJU3b94SG+/fv8vG/f19FA+tHleVy6Qsta7QFLrpE0J2vv4cL83jmLgS5gh5Kq9DTJPni2nxTKNPp57ebhu3tnLVvNoafQzS02+u09AjURF28Kxal5UupjJNHk0kQ0PsL3n2OMs7Kmr11HBewfjbcbb3go2z0/XUd+YIb+/E5S7/jYSd/a9jCcu+lk7ftLjkBM5bWrv7Y8ZXe18YhoZ4XBw5qqve1tfxdH9hoVvJkNuRk8HSjHtn6/MsN3P859lEypwmQvZSWMRjbc487rNd246pvMHBQUplykr4+2zNisWh3lPfoOWUUnLy/s43bXz40C6V1ziNpVj5Bfy5QdKU73z9L21cVafHmZ80ZWRkRC23d3CF76Mn9tl4eFhXS60s97ervJ6QMpO712ub1Z89wzKdPXt5rA7OnqrypNTlRgK/iAMAAAAAAJAEcCMOAAAAAABAEri55sSvQtBUYX86T+VFnL9fMobH3429np4aHBJSiAKT5abHJB5pyi13zFDLRRUsz2hvb/d9n+yb+fOXhvqsoP684PHUfQHpCpcJl6Z4LC3p72anh9zeYpVmcnhaezhTSFM8LU1pGeQqhxlp3Ha3huHl1jYbv/c2VyZdvVaPlwoxlelWNE114pte56nXzsEjak1JGk8nZ6TFJ01p7WGpQu+QfwW8fpG3+c2dNl582xKVV1Uf270kaN/fbOX9Ks3U52Z5Wr2Nt55pocnCCL1IX5+WlbS3s0SmQkwhXxnqVnlrpnJffHLJNPIjnnHR1c2VJv/3W2+rdetXzLLx7FmNat2wYeemgTRub/Zw6jnhxMN4+nJkmPffEMu+1tx1t8pr6+S+7uzi9xTmT6wcLNFcvszXWPfaWVnJ59m6Ox608UvP/7veiOjfxmlzbJyfr8/bSISv21V1vO2snHAubNlZOu+eux+z8aubf2rjQ0feV3lDQ3yvkJbG31GVFVqy4lac9SMVqivnOpVYf+GTG2z8wx9vsvHJk+dV3kRKU5LpnIVfxAEAAAAAAEgCuBEHAAAAAAAgCeBGHAAAAAAAgCQAjXhILhRdtnHuoNZwV1wpjvmeIM3RqZEOtdzusWZvdcaUUG3KzWXrQVcjLj/bExrnV/56k8qbP59t9UofnDxroHlp820cVps17Gm9b4RYExe0jRGhsbsgrBcrZs5TebkFvP9ST5vueLHdklMa6nPNEI+TwTbWXm567RWVt/b2O2zcUK/tmqQucSK1fe57hkZ4zAw6tlvqfXH41BnDlo/FGXepdZ74qN5Bf313EK8cY13hicvdAZmCmbNt+GyztgBMO8/66Uh62OqrxTY67qyZVcbb/9KtrH0ez3GT53Q84+L4MW0b+cp+1rQ/dgefm1tadqq8vCy+bl1rG4LWZWfra6y0Nhwc0vZu/dmsEz6Xze2d1q3HVhqF0/JO5nkm8cR55g2LZ5IynGeGArYRyeBrWF7mXb55r76z2cYVpfxMwLqlS1SeW8lyvMTblyPimakB4mcAMp0ncV7f/KqNq6tq1LrVq2+3cU4OX38ffvSLKu/5Z75t475ePtdXrNqg8nLy2Dbz45/5Uoy9iJ8P3fmIjd/eqr8fvv/UN2ycm8vPJD3+sS+ovOJirsYaSUtslejJ5PFH19s4VaqYTzT4RRwAAAAAAIAkgBtxAAAAAAAAksBNKU2JZ9qi4bKUbVz7tMctkVK17PnkBSHtmqRMhYgoR1gq9fay7MVzrPi6u3nqPsi+0I+JnjoaGOZpyQOt+9W6xuJGGxdnlZAfkUye2q1ftprbEJnY6bvqKTxVeP8n2D7spR+9rvLeffNdG/cs01KKeXMXTVDrgnnvLE/3b2lq9U9MwRnAB+ewtdhDInbxG4ObfrZRLZdWldl48W0LQrUhaHynpcVe556bYQn7Ppk3ZYqu/veIGJ8/+h5P97d3XVF5JeuEBC6g4F88spU8YWn2uc88otb97NlN3KZ2LR1as4YrL07vZjlB+gcMRVObnpYmG1/cs8nGU27/pMpLz+Jrfdi+dcfIwxvW2/jNHWyX95ONr6m8T9774ZifFTTmEiELOGVO23hTOstoPjH46DVv22XDPdy/kUg4uaMk0d+BK5feqZaXLOSKnj09fD7+8Ol/Unn33MV9M71xLsXDRFaSvdb33MjgF3EAAAAAAACSAG7EAQAAAAAASAI3pTQlHtK8xP7N4lbnDIuc0jk5yO4Bhx2NQGkpS1/OnTtn4+Fh7UTR08NVIjs7eco3VaaOMtL4qf1bSmepdVmRcBVIJWnpvL2JltWkpfExTs/jaffWWboiYfcQVzlsbdcuBe+930TjJR4nE5eZZewQ8AuLGsa97Xj7dv8wuxYUpOnL05Q0H9cL56PKc3lcZAe4nPi1ce3dt6rlY/uP2nj35vdsfOuG1SovXpnA1V4fD6G34TQ1L4/77Pa7WQ6V41QNPH3qoo1ffZH7YsO9q/TmffoirKRhPK4pRlxLI56Qo6TINSzsuMguYdeP2hUP2DiSoasQxjNO3PdkpvO5tWIeV5M80nRa5X3jBz8WS7wfH1m3RuU11nHbEzGOa4kruD4wdJ+Nc4zui/V3fsjGBw/uU+tef53dR9av/zD5kSmki6nwvZeenuG7nJXJ+//wA59Redt2soSn80q7Wrd0kT5eNxoT/V0u8yZijOAXcQAAAAAAAJIAbsQBAAAAAABIArgRBwAAAAAAIAlAI55gJtrySFIS4b+jpjr2hWVlbLl24cIFG7sa8Wu1LwxLvPsrddZ5aXlq3dZzXOXvQnc/+eGra55EOWC62I81c7Wl3sEdx2xc4PxtXJjDx+vo8UM2XrxwpcrLyhq/Xj6IqnzWIlbmjV9DGe/xzvH4kpRhnL4wk1NltKi0yHddR1uH7zpJPJaC49HWytwhoZmW5zoR0dGjrG8/ceKEjZubm1XelStsi1Zdzfrchx9+WOXdMpur/vb3s7Vo2LbHOy7WrF5i49wcrRNubeNnWw4JPf/UNG1zWDF3oY2zy8ZfRXii9cOygmZ6caWNg/o2nnHmUpDH3x0zGvS1KZIW+7e6vUePqeUuYZE7f8Y0Nz0mQf2ZKbT+lSQqHjvvKSnRNsCSy5fbfNdJ+pp4nERyWI+dWZkbKz1uEjF+pL1idaU+Vgvn8XdCbk4+pQJyn8+Ia9O7e/aovI+sW2fj3JxwFXAnk717d9l48+aN/olxgl/EAQAAAAAASAK4EQcAAAAAACAJ3BTSlIm2tkkWRWLasC5XT+dIaYqczhocHFR5fX19Nj4rpnjfbg43BR+Wie7L0pzJq6IXz75kChnR3PICta5wGk9D5xbo45hXxFOlxYOcR+2nVN6Uxlt4ewX+0gpJ0H4kq8JamUm9aog1U2KXkNzz3m61PHfpPBunZ1z7pTVITiCtRo8cOWLjF198UeUdP37cxlKO0tLSovKkvGXt2rU2ltI1IqLGxkYbS9lYoqUpbt60qXW+uZ2d3MbCQp6Sz3K2kebYwt2I+Emd3P4cGRmxsZQrekP6+yHH8DbOnDlj4yNHj6u8y+dYdpA+xNuePXuGypPt2H2EK3oW5etrVmNtOHmLpKFhqn5B7PK2be/YeNHiZSotLUtI3jLC/TaZivcGjVNmXT3JYTLvjbJEJfB8R36yeft2Gy+fx9fRilJ/6dFEI/cxN5dlsVOnTlF5t922nIiI9uw5QN3dPRQP+EUcAAAAAACAJIAbcQAAAAAAAJLATSFNmVx4Wm5wqF2tSY/wtKkx8blcnLnC7iBdgzyleHFYT7sWzlxg43pWn9DA4AD5kV3baOPTLZfVurw8npqZLNnC1VhVU2zjqvzx92eip+Xi3d60Ofz0e9A2Zs9i14fde7aqdUPOlDJIHDVTuGpgZhafZ4ffP6Ty5HR/WKR8wH1/0LrW1lYbb9myxcY//elPVV5XVxeFIb+AHSLmrWAZSF6hlgpJCYuUvLnj1m+dK2HxWzeec6mwkK9NCxfPDv2+MXo87SR1aYTPpfoIO7RM5pflwAC34cRxXe2yppYlavn52tlDjhMpQzx1SkvZpMzk8mW+1re1tfnmSQeeadO0dKQ4i6UG54VMxXPPCXFcm9u44nNbR6tK84jHwrTa6eLt/uPClabI77qXX3rWxnPmLlB5BdVaKgiinBPytZ6+XrVuZsMUN/2qVJSU2Hj14sVq3V99+9s2bhCuTcmUpkimT2fp54oV+hx58YXniYgoEon/d238Ig4AAAAAAEASwI04AAAAAAAASeCab8SNMWXGmM8bY35ijDlqjOk1xnQYY940xnzOGBPzM4wxa4wxzxlj2kbfs9sY82VjTCRWPgAAAAAAADcSiZC9PU5E3yCic0T0GhE1EVEVEX2ciP6ZiO43xjzuCQGgMeZjRPRjIuojou8TURsRPUhEf01Ea0e3eV3iCb3hwOBFtS4tjfWWaRRO0+xq4o53sFbrbBfrxYeGtEa8YM5SG08vYfs1t7KmpE5UUFycpStVzpjKOuaMjPHbgE2ETVKyLPb8CLJwS4RGPlPYP61csS4g059UtN1KBcL2S1lVuY3X3KurM8ZTJdPPRs7dhrtOar+lLWHQ+V1VxNrLnExtH9Y+wnrQW5ay9Wl2vv4dRWrEZfvSnAqMsj/9YncbyRqbVxyN+JEhvsZWR0S1y5CleBOxH1IjvmePfhZBWs5ObdTVFXNzWdPe08NWai+88ILKe/ZZ1kwfO8ZVMvv7/SsUS2T1VSKi2XNm2ri2htu05a1tKs+kcd8sXDTXxk2XtB3iptObbJxzB4/VyrIqlZce8b+FycoS1YErub2RtNT+rS9VrtGnzrOG/9S5c2pdtrgHKBaXuhxH052eravgjiGfISEiqq/i49olxm1r2yWVV5DHYyErO5y2P97+7O3iczAtnbdx6ZJ+nuGFF1+La/uSRNyIHyaih4joWc/z7LeKMeaPieg9InqUojflPx59vZCI/omIholoved520Zf/xMi2khEjxljnvA878kEtA0AAAAAAICU5JqlKZ7nbfQ87+fyJnz09fNE9A+ji+vFqseIqIKInhy7CR/N7yOi/zy6+OvX2i4AAAAAAABSmYl2ZBr7bX9IvHb36P8v0AfZTEQ9RLTGGJPleV64ebIEEW/VNxLVxzwxRZuXMyeu7QextkFYIBJPzXSIqphERO+8w1X/nv7G39pYVuRzmTuXpwoXf/7zap1rVxWGuPszSfjZxbnWcXJ6XkoB3Dy5X9L+Ub6fSEt9gqb4g0iVPgxDovcprCVeqhB2nMmx5Y4ZKSHo7WUpRdD+Prj8IRvPqdXXpj/9yZ/YeN9rPDVc++E+lZdTz58rx216uv4qkeM4HnlZ0DFNtMytKk1bNFZl8XI8n5WIMZeTw5KYhx/5sFr37DObbNzecUWtW7KEr+HSvlBaFBIRtbe32zisHEXiyhNlP5VXsDzhkUfv933fiy9ssvHpJi1BGIxwm77/Mk+O/9L9n1J5ZcUsFXNlKvV1DRx//IkP7sQ4uZ6vxfJ30mGPx0VGxJXIcttXL1xk45ICLQP55o9/ZOO7hLXhrAceVHmlt3C1zwxxjchzKmt+8bHHbPxPP/6xjY8f2a7y7lrG1pM101fRRHLyMNsU5hfFZzcdlgm7ETfGpBPRr4wuypvuMaPXw+57PM8bMsacIKL5RDSdiA5c5TO2+6ya4/M6AAAAAAAAKcFE2hf+OREtIKLnPM97UbxeNPp/h8/7xl4vnqB2AQAAAAAAkHQm5BdxY8zvENEfENFBIvrlifgMIiLP85b7fP52Ilo2UZ/rMpzLDgaDVfx0cVaTlnOYYT0FGg+Hit+3ccFQsY1Lu/RT7GVl7Hzgyh38kFOUboW1eKoGXm9IJwpZUe7QIe1a8P77fAyOHDliY3d6fuFCroS5Zs0aGx8/rh0ClixZYuPp06erdbm5unLeGEHuE/EwEa42YUjENH6i5SfuPoWVT/jh5vnJUVz5iVweGNAVceVy2Hb82xtcve4DzhFi6MrrgCtb8Ptct4/8pClh+9Zloh2J4vlcP+J1hvFz3XGvvXdvuNXGO7bvV+tefYWrrK5YOS/m9hKBOx7lOJHrghy27rqbr4lu89KEu0rPQLeN//2576i8B+5gudWsqeGqqqaidGSiHcAu94oKqRd5jCxp+JjKy0qP/X1zyxRdtfTXfuEXbfy/f/ADGz/3yssq70PiO3XDyvFLSYorZ6jlyqlLfTI1iejPWYsqYq5zTIwSQsJ/ETfG/BYR/S0R7SeiuzzPa3NSxn7xLqLYjL3enui2AQAAAAAAkCok9EbcGPNlIvo6Ee2l6E34+RhpY39PzHJXjOrKp1H04c7j7noAAAAAAABuFBJ2I26M+Y8ULcizi6I34Rd9UjeO/n9fjHV3EFEuEW2ZbMcUAAAAAAAAJpOEaMRHi/H8P0S0nYjuiSFHkfyIiP47ET1hjPm6KOiTTUR/NprzjUS0K5EEaY7S+lhXldnMlklpI+OvQHm1z2q8wjq4dBK2d1la8xmPRlxq+1paWtS6RGvEE62J6+5mHeH583oi5tSpUzY+ceKEjU+ePKnyLly4YGNp7yXt4Yh0xTq5zm2f1Jm/9dZbNpaV8YiInn76aRuXOpXJSkpKbFwgLKSKi4tVnlxXWFgYM3bfJ9cVFWmlmFyXI6ymwo6leIlHdx2vXt7P5jDIOi8sQdvzq6bpnmPSfs7V5Mr3yYqrQfQN9vmuy0njY9zRwc/Ry/OKSI/dRFTWlMhtJELTnIhxEfR+v7yga2VQG/zGjFstVX6u+1l9fbG12llZ2n7tWs9j+TyNu+yOVT+C7C9l5cVMYSf5+Ie1DeG7e9+2cUe39n9YOW9i7e2uJwqzuXLlvNoP2TgzErvypUvEGS9l4nvkMx9/1MbueDxwkr9vn359k40fXn+X72d97C5et+OANs77+etv8Dbuvpsmkkj6xH7XSa75RtwY82mK3oQPE9EbRPQ7MS5QJz3P+xYRked5ncaYL1D0hnyTMeZJipa4f4ii1oY/omjZewAAAAAAAG5YEvGL+Jg1SISIvuyT8zoRfWtswfO8nxpj7iSi/0REjxJRNhEdJaLfJ6K/81KxCgcAAAAAAAAJ5JpvxD3P+woRfSWO971FRB+51s+Ph0TbF5nhiIhFxagJsEnKHRKVNeXUerr+20VKFaS0QE75EelpTzml2NraqvL8plvD2nG5U9xSquFuo7qarRjlVPi5c+dUXnNzs40vXuRHElzrRVlNVE67y5hIy0xcKzk/pCwgx6kWVlnGMpMp1WyF9MbWnb6f61bA85NguFPNsh0yDsqT69w8v3WyQigRUX5+fsx18nV32S++2jbkOmnr6FqkSSs1OW7d6W8/SUeQxV48dnvx2hcGSVPkNmU/xXttk+2QsrQrV3TlRnk+SnmDe12Jx74wqM/83nO13HgYHORr4r5dLHObOr1E5ZWU8Rj0kxu5BElC5DaCpClynNTWVah1wyOcu23rPhtnZWkJQpCtYBiCKnXKMRL2XHL7RS6nGY5rKmpV3pLZ7FJ8svmEWvfmzs02vn3ZnR/ciRhMtI1gPAy08/Xsygn+zipdUK7y0jLFfYjTpgwhQckIkKOE3Rdpf9pQVeWbl5HB19zDTSwR/dGrr6i8B9aus3GlkGcunq0tKXscmehkMdHHePJEMAAAAAAAAAALbsQBAAAAAABIArgRBwAAAAAAIAlMSIl7cHUSXVLcfV3qX6U1nav9lvpDqa0NqxF3kfrAs2fP2njTpk0q75133vHdhrTwC7JU9NOyhrXPys7WWrmKCtZblpeXx4zd5dZWtu3KzdXbyxES5HNNJ228YtE8lSf1zs0XLql1Z8Wy1AJXVlaqPGlLKMeCa5Uo9eiyz6TG3n1fUDl1qeW85zberzODKo2Onmu3sex3ue/jWSdjV98utdVy3Lo6VLkNqe93x0VtLetSGxsbbeweA1cnHasNRPqck7GrEW86zfrkkWG9Th5jeezjtaWT7ZA2nvL5CiI9LuR73DypQZbnS5DNYVhd+LXaELoEbS8nl/cjEtHbk+Os4yL32em9u323J/e/x+i+8HL5/K6pqbGxtDAl0v2el+dew/ha3y503K4taljLSz/c64W8FsvvkaDjrfriojO+hSy+cIq/nn1a3fSY2yYiutJzxU1PKcKOTyNs9DLy+biZtInVLSeC2nL+Ts2I8O3mvuPHVJ7fMyW1FfoZCD8SfT9FRNTSf9DGWZF837xEgF/EAQAAAAAASAK4EQcAAAAAACAJQJpygyKnemSVTVntkUhPNcspxbCVNaVtFRHR4cOHbfzGG1wF67nnnlN5shJbvPZjcvpbyjaklIDIv4Kk7BcibZsop4Zl7G7/xAmWD3R26qnQQ4f22njb7mdtfPuty1VelrDVKy/RFS7lcewf5n5yp6tnzJgRs32u3aA83rt38xS6ewxcq78x5HQ8kbalXL2SraZOn9PSptNtLImR48yVNMh1ruWlXJbVTd3pxVtmLBXvYbuvs+f0dKiUksjx40pipBxl7ty5Np46darKk5ahanuODCBbSGmyxXtcacsVcY70dDu2XR7P3WdksKwm3bGlCyvp8JOmNF86q/LyznDfDPaynMA9jhI5Vl2ZV1E9j9X8WSwzqOvT8rJMYZfm9tO1Wov1dGob00snj9s4Q3RZy3GVpqREJ48dtfFrzz+r8oaHuG9lW6+kOVKmgmIbTp8+PWZMpCVRbuVc2TcNUzjv/Hl9/ZbyK/meIOtFyaVLWkJ3rpPHSQexfWxavz7e8rPkNWa4z5GwDI6/yqqUqRBNvOXcZJGRz+d05qySgEx/uob5fDrXz9fRaTn6+ybDxJbXJYIKcR24a8VK37yLXXw+ZqXr61muGArdl3kMFlXXq7y0yLXf2g6M8PU3LW1ib5XxizgAAAAAAABJADfiAAAAAAAAJAFIUwJIxSpbYZGSBjkdHPS0vJQduJXTpHOGnJbcuVNXiXz55Zdt/Oabb9o4yHUlrOOLOw0rnQDq6upsPG3aNJUnpQVSTuBKU6T7hl/1QyI9JT1lCk/lbt16XuWdPMmVP/MKeFrutbe3qjw5Hbxo7iy1rqyI91m+79gxLbM4efKkjW+//faYMZF2htmzZ4+NXaeQ+nqe6pN9Kx06iLTsQE2LO24tC25tt3GncOTp6NOSi0tCEnXkyBG17sCBAzY+ffq0jV2XnHm33Grj85e4mlvTmcMqT/a7rMbqVmaVci5ZEdaV78jzTMqDqh0Z0dRaljrNXcqVAYuLHVmSx/vV1qalPpcutfN+DPF5W11dp/Lycln60tnJ7+nq0jIqOf0vK86euqSrFXb08nXh4glukytRk8dESorcc67+thU2rnr4XhuvvawlUBX5vB/ymkBElCWq9430CskSBVyLxTWn44I+b49ulY5O3C89PXqsyn3ed5LH2fM7tGuKn4tIdV2xysvO4Wl4eR113XlWrOA+W7x4sVonz1t5PXOv+3Uzptj47CWuWNzSrN1Q/HArrjZ38jnS3MdxfoY+VvLaKePsSn0uZWVde8XViSRVvufD0jHEY3BvN39/N2QXqLwMCidNCe34Ekc/NXfyNaYwW1erjkip2Cn+fiioqFZ5iZCm1ObweaarWjepvMrK6LW+re0SDQ05dmEhwS/iAAAAAAAAJAHciAMAAAAAAJAEcCMOAAAAAABAErgpNOLXm54rEUi9rtRlulUIJVIz61rHySqZb7/9to03b96s8qRWOQiplQyyi7v77rtt7OqdpQ43aL/8dIXu6366cNeyT2po5f6/9tpGJ4/78K67PmrjZ599UuUNDXHe7gNax5wu9K+Fxaznu9LZpfKkZlxa+7laf9mf8rx46aWXVN65c6wblVpoV+P7xBNP2HjDhg02llaQRETVeax19yJsqTgytUrlnRV6Xbcq6MGDXOlMjlX3OP74mb+nRJKezfraiNQj9+lxIW3/zp/n/XCvP9OFjjfd838WYftBHgt9TmXN4mLWnecJ/fSaNRtUXpq4DuzcwdrnHdvfpjAMDuh9PH+e9/HwYbbsa29rV3lSFy33X15HiIj27RXPKXz73238ckmxyps3j6u2Ll26VK2rzufx1LKHn1nJyNBfb/KaKPuleqZ+LuOOz3zBxvKYSLtPIqJtzzxj47eOnrSxrF7rIrd3/2NL1Lq5i1nf//u/8n9s3NzcrPJee+01G7vX24ULF9p4zpw5Nnavj3f84j027s/nNr36bW29GJZLe/k6c2oTt7fxzltUnmyHPIfdse/3TJF7rifiuz3V7g8mokpkXRZfIx6p4DjV9p2IaEltY6i8mav5uyNoP9x1ctzJZ1nc56T8qhRXVWp75Afuj34H/uzn/0atbeGesXDBL+IAAAAAAAAkAdyIAwAAAAAAkARuCmlKopmIqaNEf5ZfZc0g+0KJWynva1/7mo1bhf2crJA5HqZMYfusBx98UK279162MZP2eK5dnN/UURBBVlhyykpaa7kSiRMn2NLt3XfftXFpme7bKVN5CvBnP/uujQcH+8kP9/jccc86G//Wf/l1G3/ugS+pvJaLbPsnZSWvvvqqypOVT9esWWPjIGmP7AvX2m/jRpbjyKqTbuVPymQpgFfHtpP9jn3h/v37bbxr1y61rqmJbaNkm9xzRC77VQgl+qDtoR/LvsCyoor5jTZ+9kv/w/c98jhWVWn5TamQ7ew/y8fKlW0smsGVAiud/mw6z+97/qUXbWycc0Ja+MVjrfXm81rCsui2BTaev4qlDxuffl3l+Z1nruRgWg33xRPrVtnYGL0fqiLj2ZNq3f52IRU7wufmmjVrVZ4cn7NuYclEtVM516+6qxx/RFoW4laaDMN3/pfus0gk9vXM7TN5bd67d69aJy0/5Tno2hwuf4Cr+2YOhaumGYQcu1JCdtttt6k8Of0vz2G3oqefTNC95sdblTkZpKIMJNFcD/dGx4/yOfLMz35q4y986TdVXoFjlzzGmbOn1PK/P/kNIiIaGOiLlR4K/CIOAAAAAABAEsCNOAAAAAAAAEkA0hTBjTR15CdNCZIgSNypQlldUE4pBk0Nys9avXq1WvfAAw/YWD7pT+RfrTEsbpv8psbf3PK+yisoYPeWmdP5yWjXQUbKJ+SU7OXLLSpvinAE+djDvP8vPP+uypPVEOX0ORHRgkUsBbh0gJ0JfukXfknl7du3z8ZyavjiRf0Ut5TVyPHuOj1IaYWUcMhjT0R09Cg7Z0jZi6zgSaSrospj4Pat3A/XEcJ1r/FDtl0668iqqm4b5T66LhUtm7mi55Hn3qEwyLa6sgXZ11K2stZxBZoiKpoOO/3eJSQ3y5ezzMD9LOneMjDgL4nyw3VNyb/C/bSyvtjGs+69a9zbJiK60M4yi29tfDMg059+0Ted/dy+i61aRvXe9u02XrRokY1lpUoioluEbEVew+Q1kIiopUWf7+NloF9fY9PT+XzMz8+3sXRBItLnj3s+yut2diZv7yMr9DT7G5u22HjfVj5vp1brqsS3zuHr1s/f/qmNe/t1m2SVUXneun0mpSn9IzyGh42+FZHncNjKmmEdVSZTPpGKTGRVzOuB+in8PfDgxx6x8fe/912V96F7WCLbOI1lgiMj+rzt7/d3SQoLfhEHAAAAAAAgCeBGHAAAAAAAgCSAG3EAAAAAAACSADTiKUgiNFxSI15aynZxGRkZcbXJT5/rarjrhK51/fr1NnarYs6YMcPGBQUFap3ffoXVALa2auvFI4dP23jRYtZ6NdRXqryzzayv3bGLddblpbryp9SFS/vG9vYrKq+8osjGNbXlNi4uLlZ5si9mzpyp1uXnslb08oV2G0vtMxFRXS6fylNKuD+37Dmg8mQFTqkXD7IPk7jHQOqdd+zYYePy8nKVt2ABa92lrlVWoyTSmnZXP+7XJnccFBVxv8sqrbLSIFEMi8VR5PEg0pVUpX78SFqeypPjQlpeSjs8Ir3/8rzaLjTMRERlq4ptXJRZrNaVD7C2fJmorOnaS0q9braw16rIiu860CrG+9bjvO3Zi3UFxW2vc4XLgX5/m8jOHh4/Z9ou++bFY1Pn2o5eucLnp7RgPXVK25FJ/fj8+fNtHFQxM2z75Fh1rUrlcxRybObl6XEmx4xrMyuPf3cP7/+Tz+jnUk428/sutnG/ZKXr6oKHTvP14+4lH7Lx3PvrVN6OnbtsfOC9kzaW9q5E+rpVWJxj44hzKffThY9nHPjlTrT2ebKs+G5UDbek94ge38MdfC0pWFnhpluC+iYnh8fdVKH9vs2xs90rKunGa9McFvwiDgAAAAAAQBLAjTgAAAAAAABJ4KaUptyIU0eutEBO67e28HTlwMD4q+u5yKnSefPmqXVSgrJ2LVe2k5IVouCKh36E7c/0dP33ZZaYhj94gKvj1daVqbzKimIbn2riyoX7D+mp6zNnWIIQNF3d1sbTart2cjWvBQu1RVhNDUtk3H6RtnpyStqVBBUXshxjyRK2YyusbFR5b+RttrG0OXSlR34ykCCk9aB7vKVNn5ySd6f8pJzAHdN+uFPQubksJapdyp9bv7xa5fUe4H2W/e5KAaTNYY2owujKbw4dOmRjKQGS1m5EWprS2yv2N03LArZt2WXjGUX6s+pHWLpQIIZ7SYGWUZU2cHulHKNDVKMkIhoYDFdl9MQFlm8NFbK1X12utt3sTOPxOSCs6dxx1jvMx072u3teyfEYbzVFObZk9VkpPSLSlo/SDtKVSkmkFDDsuHVlglJSJSsPu5VZZV+4/ST3RcanHFvL9i6WS8n2XhnQUoBjzWxPeucitqjs79AyvM7LfB5fvswSo23btqk8aWMrLRrTSJ9zsk2JOPZg4pjIe6NIjnOfMJzY4y/PwQULF6l10jL2/DmWJL6/cwclGvwiDgAAAAAAQBLAjTgAAAAAAABJ4KaUptwoyGlJ6dhARPT++1w1cvf7e22cmaGf1J8xk90O5NTrhfPnVJ6UE6y7rdHGH753g8pbsoyfrJdTrROB3zRlgTM9P2cuT/Pu2M5V5JqbdWU8KWnJERX1Tndp94WMLHapSIv4u0+0CfeW997lapwbPrxS5Q0N8XS9W0VP7qOc/nalKX1iXUUJS11mztDOIH3DPGakRMKtYikdJsJOB8tp/AMHtFtLdTXLQmTlwgHnSXW5jzIOwm2f3OaAEXFEu5f0CFcJKU1x5UFy+lKeB67DjXS9KM7kbbQKqQORPt6ZmTzOFs2erfKO7eXz9lx6u1qX21DPn1vAn+v2WHEOy12ahnmKf8cZfX677jVhqIiwXOb8KV3Bta6O25ebzeejOyUtx7u8nrkyECkrcd1Q5Dak1MnNkxIHJce4omUWcnsydqsSy88KK03xq/JLpPtGyqukhINIj0f3HPGTrbjfD3JZOq24LixDA7wvh06zlO3yAe3O03Sej7/sd9eRRkpVpHuU65wlr02yP93rntxfd2zdDK4iNzpZDXlXT5ogFi9dZuN9e9hBxT1HEgF+EQcAAAAAACAJ4EYcAAAAAACAJIAbcQAAAAAAAJIANOLXMbLK38svv6zWPfXUUzaWestVK29VeQsWLrZxh9BKbn1vi8qLCC3iJx5ljfOKVQtU3oAXThd+JZN1f+kjWsuXMzT+vw+Dqq+lp7OucNly1idLvTgR0cWLbLuVkcFtaqjV1nHNNY02bm1hS7ghx5qtp4c1pAMDrHncvGm3ylu6lNs3bZrW8Eudo9RHulpJqRU9d4nHhauTlDrm5cuXkx+y6qbUwoa1NTx+/LhaltZ0smqgq+OV2lhZAY0ovG5d2rYd3cj7kd6sNb6yHVIXnuVIS9NkXwdoyetLeXt1SxbaeKRHV+qUGnbVt91aZ33rdNZZN/dq3fGJQT7eM4p5fLrHJ12MyeIq3kZdp9ZgS52wXxVdl8sX2228bdNOtW7uXLYzrKliC0VZ5ZeIKCeXtcE5eWwnOjygLQW7u/nYu3aQshqrvCbKmEhrO2W1U1fTLZfPnDlDfoR9hsEPt5/9Kri657B8TsG9Dvjh6sxlxVl5TNxnBWQ7Nr7P3zGPrH1c5WVl8LMIF9t5G25V2Y0bN9p4+nSuauhaNGZn8/b8rAyJgq/7fs/XBFVoTnVdeSKqbk/E+yaK/mH9/TDs8VjITb92/XjY/V2wiO+T7livrwl//bd/d83twC/iAAAAAAAAJAHciAMAAAAAAJAEIE1JMJM5dSSn/90KZnLKW07FvfPu2ypPSgMWL2G7ng/f94DK2/c+Tz33eyxN6R3U0+6RkCNqfxl/bvGAftPs1iw3/ZqQ05kynjuvQeU1TuMp/rNn2Ypvy1t7VN4bm5618YIlXCkuy5FSHNzHFbgy0tlyzK0mKWUBlZWVap2UdARNw8qp1yD5iHyftA+bM2eOyvMbZ2Gtm1z5wNGjXKFPVt2cNk1XGZX7K2UqRHoaXtqbuQz289jqEXKWHsemrlB8lhnhKc/sPn18soakxaL/eSsVVqaBp92HK2pV3gUx3b/tAPeLK9Opr2dpSklFvVpXWcRygqxsPn/6nW0sLi228dk0buAFUf2QSFcPlZUlg8aSPAauBaA8/lJy4VoAZufzWCioXGPjllMvqDwpU3JlFrIKpRzfrjxq926WhEnpVdgx7V6zg87HMLjWnVIWIuNdu3apPCnbkDGR7t+cHD5/igqL9Ycbbm8kwtcO10ZQnquyTZ6n5TxDw7HlTK7sR9qkyu8s97on98tPnucuu1Ihv+OTaPnFjSIDmQiuterm+T5tuykrvy4oWXpNn5NK4BdxAAAAAAAAkgBuxAEAAAAAAEgCkKYEkOrTHatWrbKxO80pK6fJqVd3+m7/gX2c18XTy3fc9SGVt2zpCn7PDn5PdkRPNS9cvphi4fbl8gui2l7IWd2w079unl9FPXfaVPbhmTM8df3Ouy+qvI8+8Es2fvudV2186pR2YamvnmrjtSvusfHTL31H5UnZhnQ1IdKSAUnQ2Ayq3ifXyf133Sxk9Uv5HlmxdTzIqpuvvfaajaU8hki7J7htcqv0+fHwKnaDmVPPjh0fcJrpbRdL3J9dhfpz+3JYwiKn8T84Tc6X04iofujmSclJTU1A+6TTA2mudLMbRXMLS2nK8vU2trfzud/dw5UW3X6fLap6SqmUK5fxw3UAOXbsmI3lMXXPuc42PqZ93T+0cXrEX3oV2E9irLpOHMuWsfROnhd79mjpmR9BbhtBDiphnYYkcnvSJYVIO5EEVeItLGQXn0ce+X2V98wz/2Ljw4e3+7bD71ry9Jafqrx49vGll16ysawCSkR0WUin5DlSW6tlXrJiryurkf0W1uEm1b/zE02qy2oachvVspc7fglYvEzmWMAv4gAAAAAAACQB3IgDAAAAAACQBHAjDgAAAAAAQBKARjzFCdIpSU3c0qVL1brPfe5zNn71VdYxu9UKz507Z+Mzp0/b+JUXn1N5t995t41XrmANbp+j7dv6xjucd/ttvm13q2nGQ6Ltw3bsYLvBF19kXfjZs00qb8sWtlbLzWObrXs+rPc3InSub27l7X1o3cMqb9ueN2x8WhwDIqKiIq5UOmvWLBu7VR39xon7uqvRHcPtP2kRN3Uqa91dLae0iNvwoS/auKVF99n2bc/YWFrbubabq6awBvSuRq0HvbWC+yLoaG89wm2qWsqWlAsWagvAH3ybtbHz53OF2KwcbZuY0c99KMetV661u7ICpwnQpEqNszyOro5VHrsPHB/RxJoyXnexXWuGM4X23YjPdXXH8loiqy42Nenj6GqS/ZA6Zqntz8vVn1tfx/pfb4Tb56Xp8R303INc9nsGgkjbYcox7dqJSmvDsATZ4wUdRz/kWHCflZg5c6aNXStHaSk5NMT7f+zYGyqvqIiPw4wZbEHrPhMgj6OMF9/9qyrv4ll+zmX/O09TGOS15O23ta3uvn38HJIcq+64lcvS+pRIXztlH7r9KZdltV0ZB+W525PPX8jv27BVUFNdtz2ZpBn/Pptoq+jJBL+IAwAAAAAAkARwIw4AAAAAAEASuOmlKV3DPBV3YaBdrWvM4Wpf6WKKJFWmjuT0pWtzd9ddd9lYTmVKqzwiok2bNtlYVj1ra21RecNyOjhdfq62COvu4Gnedze9ZeNla1apPNPDtodpGWoVpQsXqqCpXL/+9LKcCnilPMyHmng6dMuWLSpP2urJ6fTqar2PixbPs7GcDu260qbyuntabbx6LU//lmbXqbzMg9wX5y9paYqUfkirLvd4u1KVMcJW2XSn8eX25BSvnMYm0jZjix/gfspq1/KOGZkXbZwmKjzm52vLsa5+lgv1ZumqgQPp3E9SwtPV1a3yjp3jz+p4hbe39X1dafH4UT5epXVcZbXeaVNOPrcj0i/GY2u/yotUs/VkmjhH3HEqz1u5bjyShswMPj4FedwvQ87x7rwijjHxMc7I0CednEKXlSrvmz9P5e0+zBadG/fsJT9ke6X8rbpKT/c3+NhLBkmv3H7yk6YEWXdKOUFDg66wK602u7t5bLnHwE+OEnQc4zkfLztVUGVeeXm5WiePo/ws114yN5crvw4MsGTLlabI90nZS1WZ3sehdv4sKZdxZT8SuR9udVPZdmn36cq3ZEVXedzctsvP+kB1V59KpTVCokVEtHDNWhsf2MLfba54Qm5DHg/XmlZeV+W6oDwZu3aNfnlE+pjINgXdk1xrVcyJeF/XxXYbn9t30sbT1y5Qee/RfhuXRHRfzMvQ1ZxTAfwiDgAAAAAAQBLAjTgAAAAAAABJADfiAAAAAAAAJIGbXiMeMfy3SE5EWyMZmjzbm47ODhufOs2WYfNmz1V5mW0XeEFqaPO1jjk9m/VjS5ay1l1qHok+qJcbw9UU7tvDpc3LS4ttfPu6tSqvsJj1bft28HsWrVqm8jKF3jfAoSguvGGt5ezp4H1+czPbeElbRyKiM2fO2FiWVV6xYoXKk5pS2U9NTVpn3SF0jz29rL2sq7yi8ubOmsPbG9KWilJfK0txy3LdRFozLvW/ribVT8sapKeVFmGupdctt9xi48O7t/L7L2ttqJ9W9FKn7otL/axDLarUY7qsmD87I491fyebzqq8bmFLeeRgc8yYSPeT7FvXEq5wCo9pT1wxu7u1lWN5Jm8vXWi480e05jPT47z2DNb/jkdfKY+XfF9elh4/Pd3iXIgIG0ajr3Vye9J+La9Itz3dsXYcIyNP6/nn/hLbnTa9stPGp5xjJXWus2bN5u3lapvVtDT/i4Rsu9Qx+1l1Eulj745pqUk+duyYjd1rYljk+SPPK9lWIqKyEj6HF89ZYuPN772m8qS9ojxWRPo6IDX3rr69m/izPWFzaPp1m/w04sbrUHnlBfxZCxcutHG/YxG7V5xnrn2sH/I76qMf/ajvOvf4+Fkvujp4ackp44hj9dvbzdewtmEec53Nekz3dnDfyM91kc9BSGtN14ZRXo/kOjcvnnXxfpZfnnyOiYiorKzMxq51cjxExHU1p4g/16Tpa2cB8bpcE/sexyWZNof4RRwAAAAAAIAkMCE34saYTxljvNF/n/fJ+agxZpMxpsMY02WMedcY8+mJaA8AAAAAAACpRsKlKcaYBiL6eyLqIqJ8n5zfIqKvE1ErEf0bEQ0Q0WNE9C1jzELP8/5DotvlR04aTxvmZpUFZE4sg4M87Xe5g6erj53QlmtTRnhaLb+MJScjnp5WGRziv7HkrKRreeQ3XRQkTYkICynX2m/pArYRqm9kG7QzJ3WFvvqpLO/Ijujp76Ee3pdIjpgOdaaO/CprXr7YqvK2b+cKij996ic2du2upORk5cqVNp47V8uDpLxH2me5loJyCvTIkYM2XrBAT+vOvYWn5Ftb9bqtu7nfDhw4YGM5lUmkbb2qqoSNoCM98rPOC7Jmk1P8ru2dtLrbuZklCG5FRrcipx9yOn3qoJ4mL8rjy8kMYS026EzxHxZT963tfC65Y1pOtR85csTGs+9dr/JqSvicyWjnY2/K9eWtW1gvFot+z0vX07qZHl9zejLE9gKmRt1pfDnuLlxguZorAZJjNUhaIY+rlFIcbNPWeS2iz+S1pN9oGUhBPdvqpefw9s6dOqPyssRnTZ/G518kTV+LM0ReULXYILmVKwWxbXDOEXkeS2mY27fyc4Oq/MpzTvaz255cIfuRMhXXsu/sWZZCuFUdpTRAyuvcPrtCfD5GhsR0vyPPlONOjh+3b6W8R/Zn34CWZgyI5ZMnTtrY7Vt5vTh//ryNXSnOvOV8ba6p0pV4C7OEnajoQ1eaIs8R2Q7XUrGjg5cb8rnfDzfp7+iIqPubL+Rq7vakDEbur9s+udzWxparzc3NvnlBFVKDrudSZiLP77DWixs2bFB5a9assbH8rhga1teiE0383VZTxVVvC/KKVV5OCV9zG0pnkR8LiS2bb7rKmia6x9+k6A32P/jkNBLRXxJRGxGt8DzvNz3P+z0iWkREx4joD4wxqxPZLgAAAAAAAFKNREtTfoeI7iaizxJRt0/OrxJRFhH9ved5J8de9DzvMhF9dXTxSwluFwAAAAAAAClFwqQpxpi5RPTnRPS3nudtNsbc7ZM69voLMdY97+Rc14xnSqRcPF182/JbbbzxzU06cWqjDcsMH77MXl3VsbJEV5Mao7ZWT9/NamTXi6NVPD1/6YqurCmnzg4e2Gfj7VunqLyZ07lqlaym+ebLm1Se7JmKEl2tMTuTp8TCSlPklN3WrVtV3ve+9z0by2nOefN01cA777zTxnPmsJOJK6uQT7vL2J3mk1XvMjLm21jKhoiIKI2n6QoLteSkqICnQDu7WCawe/dulefnECEdIIj0tHHY8Smnod0pab8KeG6ftbSzDKhQSDouNWkZ0bBwcLh48aJaJ/s3TTw9v8Q5jjKvSTgatDoyi7aOdhtLmUBLqT4GZzye1q3sYklIfb2uyHi6mSUiUnLRWazlRnJdlicqzDoSBDm+5TQ2kZb+vPUWV/lzJSxSTiCnq93KlXV1XO1VOuG40jV5/ZDbPnTokMrb8qffibkfLt1ivy618DlcUKhlXlmiWmFGhr/ji3RPGHCmvyPpLHuSEqjcQr2PDYW8j01nuJ/d6X6/c87dX9lPsj9lBUYiosudfC784NnvXvVziHQFYCItLZByEVdakEuiGmkax+nOpUmOEylvGMrWfTZ0hWUX3ULy51ZynruAr4MjopuaRFVnIi0RkZVFv//976u8+zLvtfG67HVqXV4Z94Ws5js0pI9jVRVLPBuF5M09H0f6+TieeYnPueJyLQ8qa+TrworZLJ+ocGQ1cly0t7fb2K2kKpfl95x8j7vO3YbfOvk6kZbpyGtJS4u+H5CSLbkfU6dOVXnSQUcy5LiD7Tn4to1zc/n7oTBfOxqF5XqQo0gSciNujEknou8QURMR/fFV0scEsYfdFZ7nnTPGdBNRvTEm1/O8HjfH+dztPqvm+LwOAAAAAABASpCoX8T/CxEtJaJ1nudd7amssZ9qO3zWdxBR3mhe4I04AAAAAAAA1yvXfCNujLmVor+C/5XneW9fLT+ReJ633KdN24loWax1AAAAAAAApALXdCM+Kkn5NkVlJn8S8m0dRFRO0V+8W2Osv9ov5tdMPPqhydQcSe3gRz50n1r3yusbbfz21ndtXFdTp/LWr7vDxplCU+naP31iwyM2XlTCerZvv/VDlbdr1y4bS62k1KcSaX3ub/7mb9p4w4P3qryNL79s4+5+PfGxdLn8+8q/36We7bXXuPrcU089pfKk3deiRYts/IlPfELlSX2g3EfX9k3qS+X+BllBSa3l6dN62DfUs05v8WKtl48Y1iu/uJn3y9UHSotGqe2TbSXSGj6/qqpEWucapBGX+lW5v64mtXgq6/7WfJIrlf74z/WjIm3nuS9cSzOp75f2WWnOPs6dyRrnlfNZk3ritLbOe3rjKzaWFQDf/C9/pfIOiOc3pObRtQKdO2u6jY+eOG1j42hNp9TFtpX7gO2d6OoBR5Mrj6u0MpTaTSJ/fbFbKU9eF+T4cW0ypV2ebG9Hh75cy3MuSON8/jzriZ99jivdPvaIPpeM4fOiuKRcrcsR18uIEDlf7GtXeekZsW0Ea2dWqrwlD7El3vvbuRJk2nl9HP2OnXscZX/Kde74kcty2+657vdsDBHRwYNskyqPsbRjJSKqFWO6ZYivvx2e9lioyZA6a97/gcVLVd7IeR53WaJCsVtZ8pmnf2bjDR/6kI0LCrQV6I7tO/izRP9t27ZN5c2cyTZ18ysXqHV1Bfy+/n6eqH/l1Z+qvNtuvcvGjY1sJSttPImIItm83PgxfoxtmnNv8Iq4Fv9syxYb/5LYXyKibLF9aTkr4yDivScJep98tkdqyV2NuHx+p7WVv8/k8yVE2kJTkpOtj/ejH0k9f44h8V2X5lOROlFcq2tKPhHNIqK5RNQnivh4RPSnozn/NPra34wujz3V8wETSGNMDUVlKWeupg8HAAAAAADgeuZapSn9RPQvPuuWUVQ3/iZFb77HZCsbiWgtEd0nXhvjfpEDAAAAAADADYsJspa6pg0b8xWK/ir+Bc/z/lm8Po2IDlDUZ3z5mJe4MaaEiLYS0QwiWnMtenNXI/7f//t/V+vXrVvnviXMNiflPVd7n7RZkzKBs+fOqrytO3gK76GPPGTjXMeOzBvm4z8kKhk2X9BVu772ta/ZeP/+/TZ2bdWkDdqHP/xhG3/6059WeW828NRjxZC2f1rRxdP/cny6EpFvfetbNn5ZSF1c6yYpR/m1X/s1G7tV6WTfyik6dx+lFEDKJ1zLPrksp1fdinrSWuvIEW33tXPHLhufv6BlBxI5ZuS0+/Tp01Xe/fffb2M5bejKB+SUstyPoH2UsWtbdvgImyRl5LIk5st/+mcq79//4Rs23uNMQ8t9lNPud9xxh8orErKY7CyWLWSnawnLcCcfu+8+w1Pm3c4+yil5KdWYNm2ayvvsZz9rY2ldmZmpJUDpTjvGcK/FU9p5fztGtN3Xq8e50u13vsNWgbLKJpF/1UnXmk3KIj7ykY/Y2JWwyDbKcezKiJ577jkbu+ePH7m5fG167BEtyTt/kaUv06br6e/bb+XHgRqKebp/6zFtf3laWGj29fAxHu7S8onWyzwNv/09vk65fevKLsIg7Qtda1F57ZTH7b333gv9uX7niCtNWb9+vY1HCvkcae/Vx7EhkyVgUq7X71wvLguJzMljx2y8c+dOlSflZVJStmy5fqSrREilXng+ltNxFCnj/NVf/VW1Ti7rcazPs7ffYYlabS1bDy5bulblSTmYCZAqDIm+2X+S7SWfeVvf0vzu44/ZuNCRgPkR9p4iEfIJP3miu07GrhQybJ/5MdH7G/S+nadO2rgol8fPQcce+eGHH5aLO/yeXQwi4SXur4bneSeMMX9IRH9HRNuMMd8nLnFfT0l46BMAAAAAAIDJZtJvxImIPM/7ujHmJBH9ByL6FYpq1fcT0X/2PO//JKNNAAAAAAAATCYTdiPued5XiOgrAet/TkQ/n6jPTwQTKUcJyksTUz25jqNIfyZPxQ1l8JR3Xa12TZFOKa+8zm4EK5esUHk11dU2zogIJwGnAucXv/hFG19u52ndF194TuVt3syf9cILPKXoVvyrmMefO5ynn9R/bYinhqXc4Z133lF577/P0/NyesyVKjzxxBM2lnIMVwogj4mcdnefnpfLcmo0yFHE73NcpkzRlUrl9mUVvb1796o82b8yPulUrPvxj39sY1lZdNYs/ey0dNGQUhdXViM/S1U4dPYxzbAUouUcSwT+4c//P5V3SUxdu8jjJafJpVMEka6KmlHOx2rI6MudEU4Nc4W7iiur6ezkqoFSZnH8+HGV993vcjXEu+9mV4W5c+eqPNe5aAx3PJ7L5b6+1Nau1kn5lSsz8SNoCllKJqQbkeuaIt1/5DHOz9cuCMuWsdRg3z6uxOvKxiR9fSy5eO6FTWrdoKi4evxEk1p3QTh2LF3EzhlemnZeySEeCzmeqGrY3a7yzp9lCYo83u75HeR445cn45L51Spv/p1cibi6g2VzbiXRffv43JeOFUT6/JTHcceOHSpPyuvmiGqXlVP090jTSLuNy0lIrJzrwBXh7CLlJ4NOddMPPcoOJe9vYUea/fv2q7yM9HC3JkEOXhUVXJ314x//uI3diqbLlrFU9dQpltC9teVllbdu7T02ds8fiWz7rAaWH32mSMut8px2pAJ+Y9W9xkykZCRVqmLOquZ7hXRxvA/GSr5GrtU1BQAAAAAAABAHuBEHAAAAAAAgCeBGHAAAAAAAgCSQlIc1J5sgzVF3D2sWL7VpbWhD7RIbp0e0Tm8i8UR7+9P154746EGzHIu0GqFvGhxinV5re6fKi6SzjrKqgi3X3CqRUnd7Tmh8Cwu1vZnUKMrqW6+88orKK9rKtliuBttve27VQKnTk5rchx56SOVJmzmp83T1zlL/GqSL9tOFuxpSd3kMdzzKPLfanvwsabfoVq48cuSIjS9dEjZtQkNJpCseSv29qzWVtofV8jkCZ1zItkvdqdRVE2nLtWHRn6ccPXZYpP6+uVlbbZaUlNhYapzdcZaexcsLFrC22NWQSs24tLBzbfkOHDhgY9kXhw4dUnmzZ3P1PtnP7jGVfXj05DG1TrZJflZYO1pX8yn3WR7jdEer66cRd8e03C9ZGdK1IJW2h3IstbSG05K72z8s7D+lhSSRPv6V1byuuEjr22eUs7Z4n3gWw33mw6+v3b7wsxbtu6itAs/t4WdAKIvPTfd5HWm/5z4DIs8Fec6556Mcq/J6MWXOTJU3fSVbv57Yy5rui+f0sxxyG7La5wjpPiup4HMzM4e/s7ra9XNCss/k8wvu9UweA/fZjk2bNtlYVuCU5zoRUX4+X3OnTOG8kWF93Q+qnurbdlG9uL4y2zcvEaS6HvvCGb4f2P32HrXu9gfYKjInT1ssXyvx7mP+JGr48Ys4AAAAAAAASQA34gAAAAAAACSBm0KacuSctrua1sZWbaV5PP2QlamnKI1J7N8pYadI5KTXUEZ8khg5hTy9kaeJz128pPJcqcEYblvl1HVJCU/lTZ/eqPLklHRTE/d7jlPRU1q4uVIAv+p9bkU5WTFzw4YNNpYyGiI9DS+351pQyalx2S/ulLSfHCWo+phfe9w2ue+R7ZAyC9cuTsoxDh9mCy55DIi0FKClhW0i3SlfuU5O8bvHUdoXyilp+X6iD1bkHMPti7DTv35WhkREp0+ftrGU+hQVFak8+dllZWU2zsrSMi85VmXfHjum5SJyH6VUyO2LEydO2FhWV3TPAyl9kTIvIi3TkjZ1QZacftP9RESVlZU2lhIot01+uNcLOT6lNeai5Vpm0XGF9+vZp3aF+iz3OiCX5Rh0zxF5LpVU8vGeNn2qypvdwMurhIxh0LFgPSWOQVcvH4NZ07UF6e6DbHO5YilXuMzN09aQHad4nKSX8XF05WqNjY02dse03GdpG+lem+SYkeOso0fLZeTyxWN8LWlv09IhPxvTjEz9/bJ3K9sUllXxOCsudM7NYb42y+veNqfarvxcuU9ERKfP8PE5cJjbPn36DJUnz/fiIh4XrpRN7pe8dqSCxOR6QI6F3Hx9/dn+OttrzlvBtrqllSXkx43UT/hFHAAAAAAAgCSAG3EAAAAAAACSwE0hTenu19PiZ9vkNC9PydZW6gp4N9LUxxg1lRVqOZ59lDKIW2+9Va2TU+O7d++28cKFC1VeQ0ODjfPytPOK3IZ0WXAdAuQ2pTOKKzmR25NTiu40vpTzBEkk5LKcrozXscJvWpfIvzqnW51R9qGcynYrI0pZhKxyKJ033GXZ766Lhp/sJ0imI8ecO/0rj53rsOFWZ/VDSkGkhCPIRUO2V8pUiHRfy9g9d2RFQTlN7laTlC4fsiqo684TdjxJ3LElp92lbMF14pCSMrmPVRVaptPby8ekpY0lQUGOQbKabd103b6LrXL7uygMFaWVajk/l/frQhsfA9fVRp5L0iXIlVmMpPFxLRDnj8nR5xIR5w17fOwa6nX7RsRxnC3cOwacc/v8JR6rfu40RPqcdq8D8tyX++vKo+SYlOdZ+yXtnuQuh0G2d2RYj4tje1imc8eDXNEyJ0NLFYY7uc/kWJWuRUTaBcqVqLW3d9h4+w6uwjx1qpYOlRSzLKa+jh2i6mqrVJ5fJdWg74d4vl9bu7UMrX9IOOgUTXXTrxukzGT5ncvUujef46qox/ax5O/cKX3OFRTz+J46Sx/H6xn8Ig4AAAAAAEASwI04AAAAAAAASQA34gAAAAAAACSBm0IjvqRxtlrOy2Y92qHmkzbOdKz8ygpYOzYiJGxpnv77JTJw42nJXfy0blJbSqT1fNJSUNqjEcVn/7R27dqrJ10FV0PrR1gNYNgKazJ22+Cns3aXg/To0ppN2pu51Rql3ZmsrjeYq7fX08G2Zd2XWC/u6rbDIvdRtjVI49rR0aHWSZ2rX9VSIt030vbPfcZAfrbUi7u6fLlOPovgtn3Xrl02Pn6ctbDSUo9I2+3F25+SsLaEU6ZMiRkTEdXV1dlY6pOnTdHWeZc7WKffcYX7ye0zP0vO/Tu1HvvwYdb8ys91zwNJbUWdWp4+ha9BJ5pZX9rpPPfQ0cXjaWCQj0Fft36GaOvr78T8XPfZk6Vz+JmiadXcn4dPn1J5q5awBWJrO+vAewb1OSePnRxz7ufKc8l9ZkPaYVZU8PNA0naTSFd7DarE6/eMinv+yTbJtrvPqMjrT0EZj62CHD3ORsSjA3Lby5cvV3myb9wKu50drG/f9OrPbTzs6NanCnvflcsX+eZJK8+6Wj6v3OdcrlUjfvHKWbXc3sP7kQiNeNg2TWSlzuxcbYv64cc/ZOONT71m4wPbD6i88loe09miMmt5rX7+xz1n4uGCsHrOFFWYMx1728rK6HMFbW0tgdetIPCLOAAAAAAAAEkAN+IAAAAAAAAkAROPRVaqY4zZTkTWH+drX/uaWi8lDk0tbHf11oFdKu/+5Zw3MJf7KadfT00UXdTTwQHtCpUX9j0TOXU0mZ+V6DaFtZMKsgqUcZBcRMoMXHs9Oc3rF19tG1K6IOMgu7ggZF/Iqpvp92qrrr2i0tnOb26O2QZ3exJ3alBO30r5ibS2I9JSGtdyTVbMlBVCg5DtcD/rtttus3F1NduWufIO2XYpq3Gr0spxsWfPHhvv3btX5Z05c8bG8niHlTm5y7J97j5K6ZiULUgLUiI97a5kVEbvo+fxOBse4bHgShjkOAmytZT2c2+9xRZmUi4Ra/uS6Q1cKfHhDR+3cUa6bvvR8yzPaL3CY+sD59wQt132S9C4KJKyhaJilXe6lyUy1YX83TE8oo9p16A4plm8PVf6IJddaYock3KdK4eT9oWyCqyUVBHpa5U8dq41pLTJlPafUh5DpKUpdRt4rI6M6OPbfYy3n9nDfeFWS5XXCLftcjlI1vYbv/EbNi6tYFvds+faVV5BAVvEfvFXH7dxcZGW1ci+9ouJ/KWLYZno7/JUbNOJAydt/OpTG238i7/zhMrLL9LjJJ42/NO3/83GVcL2uaZCy2y/+c3vEhHRT378PWppubjD8zytnwoBfhEHAAAAAAAgCeBGHAAAAAAAgCRw00tT5DRVZ1+3ynt+O0+VDrbw9Oqy2XNU3qIFs/zaMY5Wj/99qTh1FPY9k9l2vzEeJGGRU+HuVKbftLs7xS0lJ37xeNb5fS6RnmqWLh1u26V0Qe5vS5p2jmg+zrKVU3t4Sl9KCYi0RERuT07pE2mHEVnh0nV1kdPpbl/IypXuNLQfUpriupzMmMGSBunG4FZ69Zvud2UB8rNkv/f26r6Vx0fKVFzXBzmespwn9WUfymPq9qdf211ZjV9e4cgKlTec1mnjbuJx4Y5HP0mVK22SFUjl/r/22msqT0oh3PM2L5eP1/RpLMW5c/2dKi97SDh4CKerQaPP206v3cZyv9x99JOD5RVpCcvKL/L3zcmXj/LnntbSq6wMHj/9EZ5ad8dZ0Bj0k0K4106/a517DZP93tnJx94dP/Kz/CR+RLoPTbqQQDlKgrQM3l5WL/en68Ii5UKudEi2SVYKllIct0133MFj5o479fjJFdvPz+cx5/aFnyQoSF4Wj0wlVe4vJlO2KsfTYD9fS7Jy9PUxrDta0Gf1ie+fl17bFDOWeT//wZPUdukSpCkAAAAAAABcL+BGHAAAAAAAgCSAG3EAAAAAAACSwE1RWdOlfYQtmQaEbVJFrhaqfXgJ25uRkDaebbqo8t57l63KVt26MEGtjM17xaxbKh7iv6Nmd2fGSiei1LQenExGRD+1HRY2evVaD5lVGM4CUGoAg7R9futcaz+5HNbiys2TloBSd+xW1DvedNLGn/6vv2tj781dKq+3mLXfOauW2nhWu34eQmp8w1ooSoKeUXH7SWpApVbU1WB/8t7fs/H5lpM23nrgRZUnK3dK/aurx3bt48Zw99fvWLnaVWnpJo+bW6U2qOqm7BupUQ0aW0HaYj9LPC+9SeVFDO9zrsfHIEgjLi3wgrTKsrrnAw88oPLk8wJuv8v2yv5Mi+hzZChNWEWK3U9zbARLBll/3xXhMTKUofdRtj1dxHkD+nNPPce68OEe/r7JzNcWkuniOGZl8BgMqsQbT6VgdznoGuZXMTPI+lUee1cjLsfjoDiH04zeXuYA97Uc3+7+ymPvnrfyGlFVxfass2bpa5h8n8zLytTa70xneYygvk0W7nE8eYatXze/+6aNH/vIwyovz9Hgpxpy/ERyr716ZtD9S7YYF3esXm3jTqdS8h/+X39IREQd4jmt8YJfxAEAAAAAAEgCuBEHAAAAAAAgCdyU0pScNDEFaITVkNF/l1QU8tShnMJIT9Pd1t+vJQ5hiFfSMaVPTMWNpL4s5FoJ20+DPSwXGh7WUoXsvEYb51XxlGe6dtgLlH6EaZ9bCbJTWGZViylPVz4Qj7zFtfaTdoHS2k7KVIiI9u/ZZ+N//7t/tnFt6RSVNyKGtCemlwsadFWxnCFhVdbJVmdDvbp9UroQZGcnp7yDqjUGsesQVwLt7mFpQXW5tva7/44FNr54JZwMJMiOTBIk05Hbk8fNtUGT23C35zf9HTR1L7fvTuPLZV1JVH+u3L7nsYWbK02R4zOe6oKuHCjITlRuM6iapPpceQq6hyrCL2R63I5Mo9uk5GYizvL0uBg4zVPWeaLqZLZT/S9sVcwg5LiQ/RRkvShjd1y5EqYx3HPT77wIGrfZYtsDrmQpncdjtjhfxlNlVC7L80zKl4i0XamMg6oXy/0Ikqbo46Hzmi+127iilK9NeY4VnyTe+4ZSUe11/qy5Nn7h9VdU3urlq2xcW1lNyWAyrY3DUlLMFWFLivT3SMuFC9e8ffwiDgAAAAAAQBLAjTgAAAAAAABJADfiAAAAAAAAJIGbQiPu6oeyhS6cAqRFfrqj0tLCmK8TEQ0KLd6BgwfUuqlTptq4xCm3HZaa/uQfslTUcJmIsLhyRJ9SD5pX4a+H9GtjkEZTrnNt6rqEtd8FoSOTFlnu54bV0Ab1Z2Ul67inTp2q1p04ccLG7zy3ycZ1U2eovKmNbKWXmc19e6ppr8qrra21sdz/NLdvu1lT6lcKnkiX2O7q6lLrZJnqIL34wRPbYr5eV12mli9cYu2ul8W6evcYKMssEQfp+f20um6e/Kwg7XOQ7Z96fsXRyfrpwoM04jIOKmU+JDSvQwNaM5wr2hFkz+m3j66mWS4HnbfxnEtBZBjWDAe1XY0R50ul+wxfB/KFPVy+8x2Ql8k65uIM/twOr0/lDXv+1zCp3ZZ9FtSfQSXp5XLQWA16nkEi26vGktO38gmTHtFW/eQJUX6m/3MPfraeQeMizOtEcVoUOpuT9oiRyMT+JloodPELZ8+zcV+/HlsHjhyysXzOY1qD/h6ZLHvj8wOn1XLPMH8nTM+Z66Zft+AXcQAAAAAAAJIAbsQBAAAAAABIAsnXOdxgyCkraV9HRHSqiavUudN3ZaWlE9uwG5z0rJKrJzkETZsFrfOTVpSVaenDkJjW3bOHq6/W1NSoPL9KnUTOFKhYFSnUMhhqY5s+2SZZrZCIaN48npZ8//33bXziiJZRDQqJSE09Wxv2X9ZTmVTC7evx2DbSG3BsCcU0p6y0KCtzEulql+3t7WqdlKYESRUksj9b2/Vnbdl5zMa33cbVLoPkHWFt5YKm6v2s+AKPfQAmIiQxpfr4ZA+xFCInwrG0cyMKsi/U0hQ59geGuX3D6VrSkDki+sxH2uMuK6lCQKXOsFUig2xCw1oq+slPiPwrlUYcG9wscbwjoumZaXp7JcV8DSvLYGtDb1hLtKQ0xR1bfjahQf3pJ2cJWhc0NsOej0HHoF/s1+VBvha5FsO9Ii/PuWTLMS7HtHsc5WdfudJq456eVpVXX38LXQtpzvldXc6WeJNZoVr2xbqVq9W6N7e+bWNZhdk9ojOmNIb6rL7W8zYe6Wd729za6bHSP0D/iLYi7nHOhRsF/CIOAAAAAABAEsCNOAAAAAAAAEkA0pQEkyWmfW5fs1at2/LOOzY+LtwriPR0WXHRtU9ZTdZTzalCop1c/Ka7XXoiPN3mTpvKsVBYyE47UppBpKu5uZXj1DSveLI+syJP5Q0JKchAD2+/SIwlIqK5c/lJc+lKcvDgQZV38hg/Pd/by5KO227/EPnRfumcjbs729W6jEwe34VlPAV/5vwllXf2zFkb93THNw0pp5qltEIeAyItEZKOL0GyjXQfNxCXINcUP2mK61gRNAbVFL8YMj31us9yOrnteUM8Ztx99KvwGeSakitez/+AKwc3qi9DSK/S9TniiUXZt0FSiqBqjUGuKb4uJwFSBb+qne6yjN1zuLqWx9mRrdttPJSbq/KypvFyj2h6HukKnEFjKx5pSpC7it/4DC2bcsatn0tO0LGqCzgGRy+yG9UVx0mpWMR+MhUiPcZbW7hCc1e3lqbk5OTFfE95ua5AmZ6uj9d4mejv/CCkVGXr7h02PnjssMoLK03pvciuJwPtfK0PK02Zmj3Ld91E3+NM5r0RfhEHAAAAAAAgCeBGHAAAAAAAgCSAG3EAAAAAAACSADTicRCvdmjtatZf7RTWcURE72x9z8Z33X6Hjd1qYTeKplsymfs0kiYqu3mO7lbmCQ2krPZIRJQtjsn+yH4bF6cVq7xZ5axvy8tn3eA7b7+t8m65hW2xXE23n0az78xllRcZ4DypgXS1wOXlXEFyyZIlNu7s7FR5sqraheYzNv7pk98kP+6+72Fud5rWYVIO63A/+8dftvHGn25Xac8++a827jlxiPwIqpIo91n2Z319vcqbPXu2jaVeXGr2ifwrTbp61bCVNeWyzHM14n7bdpelxrm0rVzlKVvCHH9bQrkvUi8fpBGXBFVulO3rGunRecPcF0XZrOGfCI24ny48KM9PBx6U52qQ1TbEusxsfW0vENUPwz6/EqQRD1tZM6xG3G/cfmCd4XUZEX/7yyD7wrBa8hWiOumhs2fVumNCP94gzm/3+MhzZOYty2zc0qKrOr628btiidu0fv1jKq++ga/78vzJztbPBKQ6Kxctu3qSgztuS+aujOt9Nxv4RRwAAAAAAIAkgBtxAAAAAAAAkgCkKYLJnB5ZOH++Wi5s4mnJp372tI0ffvAhlZeb41RUHCeTaeWTKtNNQxGeNj1b2mbjyivazi63n6com87ytOTGtzarvCc+9qiNV+SssLEhf/mAlLOsXr3aNy9IxhC2WqOcxnelBXIaVlYCne+MR7m9E8JqU0pWXN7Y+JyNFy27Ta3Lz+bP+q1HfsXGd3/0UyovaBpaTvHL/QiyJZRylKqqKpUnZStSjuLKweRUtp9MxW2vn0yFyH+KP2zFSHdZTve7bZLLcj86L3eovIMH99l49Xq2XXWlTXIfZfvcz5XjR9khZuq8vjy22hwaDCelCOonSZAtYVj7wrDSlKBjIN/nVVXa2JTqSrxyDMYrTZH97ndNCMpz5VF+1xy3fUeaj9i4s5tlbitna2mC7Kegc91PehZ0HqxwrgNym5kBkjJ5Xsi4oUFX0mxo+AOxDd6PNzY/pfJef/1HNp46le1i7//IZyiRwNo4sSRzf/GLOAAAAAAAAEkAN+IAAAAAAAAkAUhTkoQ7PVZfV2djOf398sZXVd6q5SyFqBVT8Nczx47pqo4dV9ptvGzJbeRH2KmkyAj/vVnTUWzjjCH/4V9TydXSNqxbr9Y98+qLNu7vZ0eVJfMWqLxFc1nuIadkXenD6+/ttXFhnpYCzGrkYxw0Te7n2uBOSctlPQ3boPLk9Lds77Fjx1ReTw+7YAwKd5lD+7UrUGaGkEWIqpsbf/ZdlTdr4Sob1zVMUeu6WpttXFpaamNXmpIvHGqkE0WuU8lQyi7kPrrHp7Ov18beIMcza3X7/Kbd3XEqp/iHhnndhXbt1lKSz5+Vm6UlA37SlLDVH92+kP30/lauqLdg6WKVV1HN0oogWY2UOASNWzku/KpCutsLK+EJckPxk6m462R7g6RSQS4sMu+OW3l8HznVpPK27WcHpnXL2LHCHT9hHXlk7Pan3zZazp9ReQe3beH3EL9n9lItr5s/na91zeI8fffwuypv/ZL1Ns7JZpllkOQk6DoflOfnyuIeHz8nJHdc+J1nq9c8oPIGB/k6mCOcUnqHtWPQM80/sfHaSnZKa8htJBDleqiKmQjwizgAAAAAAABJADfiAAAAAAAAJAHciAMAAAAAAJAEbkqN+GRZ8Y3nPVKXWlPN+uQFg/NUXqHQcqYCidBwlZVVqnWDQ6xn3LaDNYqLFqxQea6W1/ezhKQ0azDDN+9KF2sbBwe7bdxQM13lDQwusrHUrl7uaFd5UkuelcltXbdK695nTOHj3dR8Sa177V22lYtEuM8WzqxTeX46XFeT66eHdDXDtbW1NpZacqnNJiJqaWmxcU012wFebr+i8pqbOa+4iPXobiXRqmrWxEdI66L7i1jTLfXdrsWeHBdynVtRTy772fwREZUKy9DeIbZvPHFeV/Kb0ziD2yC2EaTx9UR114hj7Zedwesy0rUu2k8jHqRrDdKSy/HZ1dkVs61Eup+CNOJ+n+u2T25PnkuufWE8No9B1RrDVnUMW4EzaHsyT55nJ5xKkK3i+pEZevyEs8Z0j7ffNsor9XNHc5fFfkan1Rn7504etnGneI6i0+tVedk5fD7m5frbNSbCYs9PPx7vMwF+x7ukpMo3T37ukKfH9OJifg6gKKPEZy8ml1S8N7oZwC/iAAAAAAAAJIGE3ogbYzYYY35ijDlvjOk3xjQbY140xnwkRu4aY8xzxpg2Y0yvMWa3MebLxphIrG0DAAAAAABwI5EwaYox5mtE9IdEdIaIfkZELURUQUTLiWg9ET0ncj9GRD8moj4i+j4RtRHRg0T010S0logeT1S7rkfk9NiMaVoWcSNOHRUXa7lDdw9PjR84tNvGC+YtjWv7YfclPSIkCR5P8brTurOnz4y57aZmbf3VfoWreB45zRKTjAz9t+aCWSw/aqip8G2fnLo/fOqCWien8gtzeT/yssJVWnSlALLKn5yGla8TEVVWsqyorJRtA/v7ulXe1ClcbS89XbTJaFmJVIWYdC2XycniKpmRYZ7y/oDMwkea4kpY/Na5kicpJ5BCmlZhs0lEdPrieW67GBdVZeUqz10eQ7gujsL9FDR1H4/Mwp2el324YClLry63tqk82TfVdSxjCJKL+FkZEvnb7bkVHs9ksGwsa0Qfn7JBntaPx84u3jw/qYJH+lzq9NietTBjmo0bRdVXd3s7Dxyw8dJ5Wp7oVu6UXKs0xR37xU71zzFc+VZXB4+TdBG3ndHj5/getsacs2g5f06Z/3UviHgkLImQLIWt9injDKOP25yi+THzgkBVzNhMZpXRiejbhNyIG2O+QNGb8P9DRF/0PG/AWZ8h4kIi+iciGiai9Z7nbRt9/U+IaCMRPWaMecLzvCcT0TYAAAAAAABSkWuWphhjsojovxFRE8W4CSci8jxPVhN4jKK/lD85dhM+mtNHRP95dPHXr7VdAAAAAAAApDKJ+EX8wxS9sf4bIhoxxjxARAsoKjt5z/O8t538u0f/fyHGtjYTUQ8RrTHGZHme1x8jB9zg5Oaw/KG2hh02ms+dVnk1NfUx3xP35+bGNz06xpRaPdU8Qn02PnWRq+Zt26cridZXc4XGaQ16G7WVPO3e3cNyjHfeP6zyevt5OlxVbhzSEoTczHDSFCkNcKv3SeQ25HsKCvXUdXkFy4+8EZ4K7+vXEoSREf47vj8tR60bomIbZw/5T7vL6fUc4XgiY6Lw0hQ/qUtpSbHKO3TqpI0Hh7k/L3d1qjzZZ7WV7LjgyjviqS7oTqf7uUW425NyBylNeeWZF1VemuHt103RY1Uix4ySbYR0+fjAmMsS+zGsx3R2hI+JUJRRx3nt2FFQzv2enevvSuLX70ESFrlOVqAkIhoZ4YqKJsLrGuu081FOFu/H7kOHZINCfa67LshdRRJ2nfysWxYs8X1P28VzNs5yHvkaGeCv9DSxPVfqMpEEnSNhJSzxSBWGhvU19uQ5Psa15fwdkJ+rnaTiob1Lu1b1i8qqVSWlbnpKcbDpuI0LnO/1elHx+kYiETfiK0f/7yOinRS9CbcYYzYT0WOe5435ss0e/V/fSRCR53lDxpgTRDSfiKYT0QE3x9n2dp9Vc8I1HQAAAAAAgOSQCNeUsae1/pCIPCK6nYgKiGgREb1ERHcQ0Q9F/tifex0+2xt7vTgBbQMAAAAAACAlScQv4mM380NE9JDneSdHl/cYYx4hokNEdKcxZnUMmco14Xne8livj/5SvizWOgAAAAAAAFKBRNyIt4/+v1PchBMRked5PcaYF4noc0S0iojeJv7F208INfZ6u8/6CcPVJXZ2svVSfn6hjYcc7diwECYWZGiLND+uZ3uhKx1sL5ieoYdQbl6Om05E49vfkhK2zFqyaJWN33nvdZVXWMhDKBEa8USTncljobKUtW1nh/X46ehhLXl3r34sIkfYD2ZnsY5y3TKtvurv5/cdPM5V7y62tqu84tpiG0tduGsX56fddfWkUjeptuecS9098n0cF+VrDamQIFP3kO6nfqELz8lkS0HXzk1quqX1oFs9VC6HrdQptayurnXVwsU2lrr1o6dPqrwLbVxldGqdv846EdZsQev88mRcVKor/uUX5MfMc3HtEccIsjkM0ojPHZklGutsVEj6hwf4fe1nLqu0/KLYYyZejbjf/hujr4m15o6rvoeIqKaSn1Gprar0zQvCT+8d9PxBPHkuMq+6fmrMOOg97uf09bG+v7293cYVFbpf/MZZEPGcB0Hrwo6LoeFBtbz3uPWqoLwcrpidCI14a4cWHHT0sJ3sZGrE47nPef8IP0OV4zyvI6+r1aWxbWBdhrq71LI3yN9TmSWpUdE0EdKUsScO2n3Wj10Nx+7QxvJnuYkmegWbRtFf14+76wEAAAAAALhRSMSN+KsU/YlrnjEm1vbGHt48Mfr/xtH/74uRewcR5RLRFjimAAAAAACAGxkTZF0UeiPGPE1EDxHR73ue99fi9XsoalPYQUSNnud1jBb0OUZEhUS0VhT0yaboTfpqIvqFayno42rE/+Iv/kKtX7duXcz39fdru6s3Nj9t43nzWSJxpUBPcXcJy7WVJY1h2xgqLxHvC2t9FpYtr/KUWmFxgVo3ZzFXncwQshXPaOmDIWGl9oG55tgkus+GyX8aNhLQpnja0dPL02M/fOU7at2V7mIbL561SK1bNocrq6aJj3XtBgeFPZWUqfT19ak8udzTw7Zqvb167Mtl+R65bfdzgywP/aQuQdO6mRl6HzPSxd/5aTzuXGmKlJZIy0JXmuK3Lsjm0K8yKZGeNvWraEkUn/VZeFlEuOn0oPcl4hoTdIz98oLeE/Z7Kp79Dbtuoo/BtbaPKHw/hX3/RFZ8DHrP8RNHbfziy8/b+JOP/aLKy81lSWKGI5OMRHg50efBRJ7D49nGRG4vEe+71jY9/7aWox4X1as/85FHfD8nO5MlLZ17dql1Ay0sDaz+cKzfg2Nvc4xnnnlGLX/sYx+Tizv8nl0MIlEl7n+TiJYS0f8Y9RHfSVGJycMUraD5ec/zOoiIPM/rHK3E+SMi2mSMeZKiJe4foqi14Y8oWvYeAAAAAACAG5ZESFPI87wzRLSciP6eiG4hot8lovVE9HOK/ur9Yyf/p0R0J0UL+DxKRL9NRINE9PtE9ISXiJ/pAQAAAAAASGES9Ys4jRbs+e3Rf2Hy3yKijyTq8xNBZqZ2S1h/18dtvGP7JhsXluindZfMWhpq+6k4dRQPq+7k/T34/lG17r3Xd9r4tg0ss2gZ3KnyitP5Wd3stDLyYyKnwLb1XlTLJRGezpqdleCnqeVUprPqntXcn5cua0nHq++9b+P71oRz5Axyn/BbF/S3b5DMQkpTpFwm6HNlHFS9zv2s9HRezhRTj0GuKUFuKFKCElRZ088pxa3oKdsr9yNsJb8gwuaFdYSId/sTmRdWzpLoz51oCULYvERcs8PKZfyYaGlK0PiUTGucYeNPPv5LNv7BD7+r8rqFG8ia1XeodWtXswR1ImVZQdsL83q8eTcSfvu8YeUatVxxlB1V/uM3/tJ3e1965BdsvHDhErXO80Yo1UjIL+IAAAAAAACA8YEbcQAAAAAAAJIAbsQBAAAAAABIAgnTiN8IfFCvylrR+QtutfHp00dU3oE979h40eK1E9S61MG1iZIMDbKFXSSN9bSlGQtUXrqJXYFzMpmfrSuMpce0wU+Mti8ni/f3I7c/qtYV5HLV1kuXT6h1A0Pcn0H6SqntlJrpeGzfiLTeWW7P1WNLXXhYjbgkSCPuarDlclCbpMbbryomkb8u3M2Ty346cHdd2GqXQSRCnzx8ah+vy+WqmJHKxmtuUxDx6L2D9jfs9pJltzeRbZiI7fv152TqmIO2Ic/1kmJ+XufRRz6p8qRl6tFjh9W6f/nmP9pY2pM+8rHHVV5eXriqzInWkqc6k/lMmx+Z6fraPq+R7ZH/4Ilf9X3fpp3v2vhyZ4dad+fSVW560sEv4gAAAAAAACQB3IgDAAAAAACQBCBNCUl+frGN6+pmqHUDA32UDFLBDrFhWq1azsjkqaRtb+y28eJb56u8tMxrH3rXuv8FJjMgM7GkpbFsoby40rdNs6fWqXWZQga0ceseG69dMkflZaTH7s8gaUqQfMJPBuLKNqQcJaiypt9U+HikKWHlMrKNQW3320ZQxUzZBtdeUbY9aBp7MmURaaXVvC59/OM9EdeLRMsYUqWSYTxMZht6+7hy7ktvPqfWrVjIUsv66imT1qZ43ifPv5qaWt8897wtK2Ob4Yx0//M7FWQmqfBdfj2Qm80Sz+l1Db55g8Nsq3vw1HG17vm3N9v4fmF5mcx+wS/iAAAAAAAAJAHciAMAAAAAAJAEcCMOAAAAAABAEoBGPA6KivxLsktuBg1XcVmhWu7uYl3i/l1sJ7VgudY0k9CSX0/7mwiC9reitEgtRyL8t/LR0+dsnO7ok129st9n+ZVed9/vp5mWmnB3WerCJ1ojLveq7VyLyqusY120tCYLskP004G7y0H2hX465njt9hJhJZdWWB4qzxM2mR1Np22cX62fZ8iIw+otLDeSPWAqIJ9LKXW+sw4c3cvxMba4rCjVx3vJ3OU2TpbGPuw2qqqqA5cnqx2pPi5SgYnuyzlT5XN8ehvtVzrj2uZEgl/EAQAAAAAASAK4EQcAAAAAACAJQJqSIvRQr41bRtptXJ9WpfIiFFuCkCrk5rG9UO0Unhpsbjqv8moaeL/y8nPpZiKoaqBLaVGBjVcWcmXEeCtm+kkmXDmGtCKUMhX5urss5Shu+9IibPGZkXXFxkP9FU77/CUiSgoywtvvcCQiUkojq2cGbS+eipnx0jPUbePWvks2rsvXNnLpJrGX57YL/Fn9vdpytaquxsaDPXwtGhnSx/tGZHCoSy339vG1qiB/mo3TEnw8JpqsTK4We/vKu9S6N7a+ZuOzF8/YuK+/V+WlR3if58xgC9oMp+Jhsmg6dczGOblaNlVZWeOmTwrnB9pt3DPSb+Pp2VUxsq9PBkdERdO2szauL9TX88Ks5H+3z5k6PdlNuCr4RRwAAAAAAIAkgBtxAAAAAAAAksD1NdcWJ01NTWp5//79MfPS0/XU9bTpXOXw/PlWG3dd6aEwjGca+6LH298zcsTG69KXqbxsyqJrYeoUXZmst4+nzi5darNxIp5qzixg+cCzT7+k1i1YNsvGlTXlFA+Jfoo/FSrvhSVImiLXue4lkqBKmHk1LDGKZPPf6y1HLqu8IDmKJD2r3ca5Rads3N2qK656HstKghxVZL+nZ+jL2JlzPFXafIGdZlxpip97S1g5T9jKje7rF3tZ+rCnbaeNb6+5W+VlRbIpDGHH4LmDJ2zc035FrZu5enHM95w9fizm6/G2aSKcTLLz+JpYUskuThdPt6m8keHY50J3z1m1fLHtPRs31Nxn4/RIjsqbrOvFRFxj8iLszjSrhuOTZ3QVwn/45v+08Sc/+il+f04+hWGi3TF27njDxoWFpWrdjJnz3fRr+qyw79t6hc+ZS0Ps0PFA6bJY6dfUpkRvL+z7egb5vuGnB9+y8bqpC1Xe1CLtwjNR7UnE+8LeGxw5csQ3L17wizgAAAAAAABJADfiAAAAAAAAJAHciAMAAAAAAJAETFgbtOsJY8x2IvIXZPlQVq6rGn7jn//Yxn/9F9+18dtv7Y6/cUnma1/9A7V86DDrRv/lW09NdnNAirL2j7miXvVS1vD/+PEXk9EckADWL73NxjVlWrv5vVd+NtnNSRizVzTa+MEvsU3fP/7hD1TelcvdBG4sHv34vTa+cEFX2H3zre2T3RwAdniet/zqaRr8Ig4AAAAAAEASuFF/EW8lotKrJjpEIvrvkilTuSDAxQv8BH53ty56cD1RV6t/CevrH7Bxa2v7JLcGpCp51VyIISOHXUnaT3TGSgfXAfk5XPAkI107zVy+0jHZzUkYWbnstFNczgWwLp11HH58XFPA9UtxMbvkDA4OqXXd3eHczQBIIG2e55WN90036o34CSIqJKIx/6+DSWzOjcKc0f/Rl4kB/ZlY0J+JA32ZWNCfiQX9mVjQn4mhkYg6Pc+bdrVElxvyRnyMUa04xaPZARr0ZWJBfyYW9GfiQF8mFvRnYkF/Jhb0Z/KBRhwAAAAAAIAkgBtxAAAAAAAAkgBuxAEAAAAAAEgCuBEHAAAAAAAgCeBGHAAAAAAAgCRwQ7umAAAAAAAAkKrgF3EAAAAAAACSAG7EAQAAAAAASAK4EQcAAAAAACAJ4EYcAAAAAACAJIAbcQAAAAAAAJIAbsQBAAAAAABIArgRBwAAAAAAIAngRhwAAAAAAIAkcEPeiBtj6o0x/2qMaTbG9BtjThpj/sYYU5LstqUaxpgyY8znjTE/McYcNcb0GmM6jDFvGmM+Z4xJc/IbjTFewL8nk7UvqcLoePPrn/M+71ljjHnOGNM2egx2G2O+bIyJTHb7UwljzGeuMt48Y8ywyL/px6cx5jFjzNeNMW8YYzpH9/vfrvKecY8/Y8xHjTGbRq8XXcaYd40xn078HiWX8fSnMeYWY8x/NMZsNMacNsYMGGMuGGOeNsbc5fOeq43xL03sHk4u4+zPuM9nY8ynjTHvjY7NjtGx+tGJ27PkMM7+/FaI6+mrzntuqvGZDNKT3YBEY4yZQURbiKiSiJ4mooNEtIqIfpeI7jPGrPU8rzWJTUw1HieibxDROSJ6jYiaiKiKiD5ORP9MRPcbYx73PliC9X0i+mmM7e2duKZeV3QQ0d/EeL3LfcEY8zEi+jER9RHR94mojYgeJKK/JqK1FD1GNyu7iOi/+qy7nYjuJqLnY6y7mcfnfyaixRQda2eIaE5QcjzjzxjzW0T0dSJqJaJ/I6IBInqMiL5ljFnoed5/SNTOpADj6c//l4g+SUT7ieg5ivblbCJ6iIgeMsb8rud5f+fz3qcpOt5dtsXX7JRlXONzlHGdz8aYvySiPxjd/j8RUSYRPUFEPzfG/LbneX8//manLOPpz58S0Umfdb9MRNMp9vWU6OYZn5OP53k31D8iepGIPCL6bef1/zH6+j8ku42p9I+iNzIPElGa83o1RW/KPSJ6VLzeOPrat5Ld9lT9R9EL3cmQuYVEdJGI+olohXg9m6J/UHpE9ESy9ykV/xHR26P985B47aYfn0R0FxHdQkSGiNaP9se/+eSOe/yN9nEfRW/CG8XrJUR0dPQ9q5PdD0nqz88Q0dIYr99J0T9W+omoJsZ7PCL6TLL3NQX7c9znMxGtGX3PUSIqcbbVOjp2G5PdD8noz4BtFBNRz+j4LHfW3VTjMxn/bihpyuiv4fdQ9Ebofzqr/5SIuonol40xeZPctJTF87yNnuf93PO8Eef180T0D6OL6ye9YTcPjxFRBRE96Xme/WXB87w+iv7SQUT068loWCpjjFlIRLcR0VkiejbJzUkpPM97zfO8I97ot+hViGf8/SoRZRHR33ued1K85zIRfXV08YaZrh5Pf3qe9y3P83bGeP11ItpE0V9m1yS+ldcP4xyf8TA29v7b6Jgc+9yTFL0vyCKiz07QZ086CerPXyaiHCJ6yvO8lgQ1DYTkRpOmjGnwXopxY3nFGPMWRW/UbyOiV903gw8wOPr/UIx1tcaYXyOiMor+yvC253m7J61lqU+WMeZTRDSFon8A7iaizZ7nDTt5d4/+/0KMbWym6K8Ua4wxWZ7n9U9Ya68/vjj6/7/E6FMijM+wxDP+gt7zvJMDmKDrKRHREmPMlyk6G3GWiF7zPO/MZDTsOmA85/PVxuefjOb8acJbef3yhdH//3dADsbnBHGj3YjPHv3/sM/6IxS9EZ9FuBEPxBiTTkS/MroY64L24dF/8j2biOjTnuc1TWzrrguqieg7zmsnjDGfHf11bAzfMet53pAx5gQRzaeodu/AhLT0OsMYk0NEnyKiYYo+xxALjM9wxDP+gt5zzhjTTUT1xphcz/N6JqDN1x3GmKlEtIGif9hs9kn7XWd52Bjzz0T05dEZipuZUOfz6Gx3HRF1eZ53LsZ2joz+P2uC2nndYYxZTUQLieiw53mvBaRifE4QN5Q0hYiKRv/v8Fk/9nrxxDfluufPiWgBET3ned6L4vUeij6QtJyimtASiuofX6OohOVVSH/omxT90q0mojyKXuT+kaIaxeeNMYtFLsbs+PkERfvjBc/zTjvrMD7HRzzjL+x7inzW31QYY7KI6LsUlUR8RcolRjlBRL9N0T9w8oiolqJj/CQR/RoR/eukNTb1GO/5jOvp+BmbXfwnn/UYnxPMjXYjDhKAMeZ3KPrE+UGKascsnudd9Dzvv3iet8PzvPbRf5spOtPwLhHNJKLPT3qjUwjP8/7rqPb+gud5PZ7n7fU870sUfWA4h4i+ktwWXveMfXH8o7sC4xOkEqP2j9+hqPvM94noL90cz/Ne9zzv7z3POzx6vTjned4PKSq1vExEv+D88X7TgPN5YjHGFFH0pnqAiL4VKwfjc+K50W7Er/ZLzNjr7RPflOuTUVuyv6Wo/dZdnue1hXmf53lDxDKBOyaoedc7Yw+/yv7BmB0Hxpj5FH3Y7QxF7eFCgfHpSzzjL+x7/H6VvCkYvQn/N4raP/6AiD41ngfqRmd7xsY4xqwg4HzG9XR8fIqIcimOhzQxPhPHjXYjfmj0fz/91y2j//tpyG9qRh/E+DpFvVnvGnVOGQ+XRv/H1H9sYvWP75gd1elPo+jDXccntmnXDVd7SDMIjM8PEs/4C3pPDUX798zNrA83xmQQ0fco6l3970T0i6M3j+MFY9afD/SN53ndFH2QMH90LLrgHkAz9pDmB2YXQ4LxmQButBvxsQcN7jEfrAhZQNHpwR4iemeyG5bqGGP+I0ULeOyi6E34xTg2c9vo/7hpjE2s/tk4+v99MfLvoOivFVvgmEJkjMmmqFRqmIj+JY5NYHx+kHjGX9B77ndybjqMMZlE9EOK/hL+bSL65Tj+aBzj1tH/MWY/iN/5jPEZAmPMrRQtBHTY87xNcW4G4zMB3FA34p7nHSOilyj6UNxvOqv/K0X/avvO6F/NYBRjzJ9Q9OHM7US0IWiKyhizzP0jZ/T1DUT0e6OLgeW0b2SMMXNjPQxojGkkorFqbrJ/fkRELUT0hDFmhcjPJqI/G138xsS09rrjcYo+rPV8jIc0iQjjMw7iGX/fpGjhj98aHddj7ykhoj8eXfwHugkZfTDzJ0T0MYr+sfhZ10o3xntWxHgtzRjzR0S0mqLHJ5Zz1Q1PnOfz2Nj7T6Njcuw9jRS9L+in6Bi+2RmbXQyyLMT4nATMxHnqJ4cYJe4PUPSvtrsoOh21xkOJe4sx5tMUfUhjmKKylFi6zpOe531rNH8TRaf3tlBUp0tEtIjYu/VPPM/7M3cDNwvGmK9Q9EHXzUR0ioiuENEMInqAov6rzxHRI57nDYj3PEzRG6I+InqSomWxH6LoU+o/IqJPTGDxi+sGY8wbRLSOopU0f+6Ts4lu8vE5Op4eHl2sJqJ7KfqL1Rujr7V4ogR9POPPGPPbRPR3FPV0/j5xift6Ivor7wYqcT+e/jTGfJOilQhbiOh/UbQiocsm+QukMcajqBzwfYrKKoooOnu7gKIzuI94nvdSAncpqYyzPzdRHOezMeaviOj3R9/zI4oWUvokRX3Ib6gS9+M930ffU0hEzRS1sK6/yo9vN9X4TApeCpT3TPQ/Imqg6F+85yj6BXGKiP6GRLlb/LN99RWKflkE/dsk8j9HRM9Q1Lqoi6K/LjRR9Mv49mTvT7L/UdRa63sUdZxpp2gRj0tE9DJFfdmNz/vWUvQm/TIR9RLRHor+4hNJ9j6lwj8imjs6Fk8H9QnGZ6hz+mSM94x7/BHRg0T0OkX/2Owmoq0U9XVOeh8kqz8pWj3zatfTrzjb/4vRfmym6B9DPaPXj78nounJ3v8k92fc5zNF/yDaOjo2r4z28UeTvf/J7E/xnl8fXfe9ENu/qcZnMv7dcL+IAwAAAAAAcD1wQ2nEAQAAAAAAuF7AjTgAAAAAAABJADfiAAAAAAAAJAHciAMAAAAAAJAEcCMOAAAAAABAEsCNOAAAAAAAAEkAN+IAAAAAAAAkAdyIAwAAAAAAkARwIw4AAAAAAEASwI04AAAAAAAASQA34gAAAAAAACQB3IgDAAAAAACQBHAjDgAAAAAAQBLAjTgAAAAAAABJADfiAAAAAAAAJAHciAMAAAAAAJAE/n8yX5RyLFfhTQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 150, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "'''添加真实图片'''\n", "name_dic = dict()\n", "with open('/data/captcha/label_english/200_80/answer.txt', 'r', encoding='utf-8') as f:\n", " name_labels = f.readlines()\n", "for it in name_labels:\n", " k, v = it.strip().split('=')\n", " name_dic[k] = v\n", "with open('/data/captcha/label_english/超级鹰导出图片-2023-04-03/超级鹰识别结果.txt', 'r', encoding='utf-8') as f:\n", " name_labels = f.readlines()\n", "for it in name_labels:\n", " k, v = it.strip().split('=')\n", " name_dic[k] = v \n", "\n", "imgs_200_80 = glob.glob('/data/captcha/label_english/200_80/*.jpg')[:2000]\n", "\n", "imgs_122_46 = glob.glob('/data/captcha/label_english/122_46/*.jpg')[:800]\n", "\n", "imgs_160_60 = glob.glob('/data/captcha/label_english/超级鹰导出图片-2023-04-03/*.jpg')[:400]\n", "\n", "def add_real_img(imgs_list):\n", " path = random.choice(imgs_list)\n", " if '122_46' in path:\n", " label = path.split('/')[-1].split('_')[-1][:-4]\n", " else: \n", " file_name = path.split('/')[-1][:-4]\n", " label = name_dic[file_name]\n", " img = Image.open(path)\n", " img = img.convert('RGB')\n", " w, h = img.size\n", " draw = ImageDraw.Draw(img)\n", " for _ in range(random.randint(20,250)):\n", " draw.point(xy=(random_xy(w, h)),fill=random_color((100,220,120,255,100,220))) \n", " # 短线\n", " for i in range(random.randint(10,100)):\n", " x0, y0 = random_xy(w, h)\n", " x1 = x0 + random.randint(2, 5)\n", " y1 = y0 + random.randint(2, 5)\n", " draw.line(xy=((x0,y0),(x1,y1)),\n", " fill=random_color((90,130)),\n", " width=random.randint(0,1)) # xy, fill=None, width=0 \n", " for _ in range(random.randint(0, 3)):\n", " draw.line(xy=(random_xy(w, h),random_xy(w, h)), fill=random_color((80, 250)), width=random.randint(0,2))\n", " \n", " w, h = img.size\n", " if w>width or h> height:\n", " return img.resize((width, height), Image.BILINEAR), label.lower() \n", " elif random.random() >0.5:\n", " background = Image.new(mode='RGB', size=(width, height), color=(255,255,255))\n", " background.paste(img, box=(0, 0)) \n", " return background, label.lower()\n", " else:\n", " return img.resize((width, height), Image.BILINEAR), label # .lower()\n", "# return img.resize((width, height), Image.BILINEAR), label.lower()\n", "\n", "# img, label = add_real_img(imgs_200_80)\n", "# img, label = add_real_img(imgs_122_46)\n", "img, label = add_real_img(imgs_160_60)\n", "print('label: ', label)\n", "plt.imshow(img)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "大于\n", "[('3', 266), ('7', 263), ('6', 263), ('4', 258), ('2', 257), ('8', 251), ('5', 239), ('9', 238), ('q', 151), ('G', 133), ('N', 132), ('b', 129), ('B', 128), ('D', 127), ('x', 127), ('g', 127), ('c', 127), ('k', 126), ('d', 126), ('C', 126), ('U', 126), ('L', 125), ('y', 125), ('a', 123), ('S', 123), ('f', 123), ('T', 122), ('s', 122), ('r', 121), ('z', 121), ('v', 121), ('P', 121), ('J', 120), ('u', 118), ('p', 116), ('h', 116), ('t', 114), ('W', 114), ('E', 113), ('e', 111), ('Z', 111), ('m', 110), ('n', 110), ('w', 110), ('R', 109), ('V', 109), ('F', 108), ('H', 106), ('j', 105), ('A', 103), ('i', 102), ('M', 101), ('K', 98), ('1', 97), ('Y', 97), ('X', 97), ('Q', 97), ('0', 74), ('l', 55), ('o', 50), ('O', 36), ('I', 30)]\n", "2001 62 36\n", "label: JHRW\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 167, "width": 370 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "'''保存生成图片到本地'''\n", "lower = 'abcdefghijkmnpqrstuvwxyz'\n", "upper = 'ABCDEFGHJKLMNPQRSTUVWXYZ'\n", "digit = '23456789'\n", "\n", "label_set = set()\n", "labels = []\n", "is_raw_size=True\n", "from collections import Counter\n", "\n", "# for gen_characters in [lower, upper, digit,lower+'lo', upper+'IO', digit+'01', lower+digit, upper+digit, lower+upper+digit, lower+upper+digit+'01IOlo']: \n", "for i in range(10000):\n", " gen_characters = random.choice([lower, upper, digit,lower+'lo', upper+'IO', digit+'01', lower+digit, upper+digit, lower+upper+digit, lower+upper+digit+'01IOlo']) \n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " if random_str in label_set:\n", " continue\n", " label_set.add(random_str)\n", " labels.append(random_str) \n", " ty = '409'\n", " fig_size='5221'\n", " image = gen_captcha(random_str, fig_size=(52,21), fonts=fonts,font_color=(0,255,0,255,0,255),same_color=1, font_size=(16, 18), rotate=0,\n", " font_noise=0,offset_w=(0,1),offset_h=0, line=(0,0), line_width=(0,1), line_color=(90,150), point=(30,50),\n", " point_color=(0,255,0,255,0,255),frame_color=(150, 170),wavy=(0,0), bg=(255,255))\n", " image.save('/data/captcha/generate_pic/{}_{}_{}.jpg'.format(ty, random_str, fig_size))\n", " if len(labels)>2000:\n", " c = Counter(''.join(labels))\n", " if c.most_common()[-1][1] > 10:\n", " print('大于')\n", " print(c.most_common())\n", " print(len(labels),len(c), len(characters))\n", " break\n", " \n", "print('label: ', random_str)\n", "plt.imshow(image)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "图片打开异常: /data/captcha/up_low_case/C7u0.jpg\n", "训练数据:500, 测试数据:55\n", "label: q3w6\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 150, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "'''加入超级鹰数据'''\n", "file1 = glob.glob('/data/captcha/up_low_case/*.jpg')\n", "\n", "chaojiying_train = []\n", "chaojiying_test = []\n", "for file in [file1]:\n", " sp = int(len(file)*0.9)\n", " n = 0\n", " for path in file:\n", " label = path.split('/')[-1].split('.')[0]\n", " err_flag = 0\n", " try:\n", " img = Image.open(path)\n", " img = img.convert('RGB')\n", " except:\n", " print('图片打开异常:', path)\n", " continue\n", " for w in label:\n", " if w not in characters:\n", " err_flag = 1\n", " break\n", " if err_flag or len(label)!=4:\n", " print('异常标注:', label)\n", " continue\n", " if n < sp:\n", " chaojiying_train.append(path)\n", " else:\n", " chaojiying_test.append(path)\n", " n += 1\n", "print('训练数据:%d, 测试数据:%d'%(len(chaojiying_train), len(chaojiying_test)))\n", "\n", "def add_real_img2(imgs_list):\n", " path = random.choice(imgs_list) \n", " label = path.split('/')[-1].split('.')[0]\n", " img = Image.open(path)\n", " img = img.convert('RGB')\n", " w, h = img.size\n", " draw = ImageDraw.Draw(img)\n", " for _ in range(random.randint(2,150)):\n", " draw.point(xy=(random_xy(w, h)),fill=random_color((100,220,120,255,100,220))) \n", " # 短线\n", " for i in range(random.randint(1,50)):\n", " x0, y0 = random_xy(w, h)\n", " x1 = x0 + random.randint(2, 5)\n", " y1 = y0 + random.randint(2, 5)\n", " draw.line(xy=((x0,y0),(x1,y1)),\n", " fill=random_color((90,130)),\n", " width=random.randint(0,1)) # xy, fill=None, width=0 \n", " for _ in range(random.randint(0, 3)):\n", " draw.line(xy=(random_xy(w, h),random_xy(w, h)), fill=random_color((80, 250)), width=random.randint(0,2))\n", " \n", " w, h = img.size\n", " if w>width or h> height:\n", " return img.resize((width, height), Image.BILINEAR), label \n", " elif random.random() >0.5:\n", " background = Image.new(mode='RGB', size=(width, height), color=(255,255,255))\n", " background.paste(img, box=(0, 0)) \n", " return background, label\n", " else:\n", " return img.resize((width, height), Image.BILINEAR), label\n", "# return img.resize((width, height), Image.BILINEAR), label.lower()\n", "\n", "# img, label = add_real_img(imgs_200_80)\n", "# img, label = add_real_img(imgs_122_46)\n", "img, label = add_real_img2(chaojiying_train)\n", "print('label: ', label)\n", "plt.imshow(img)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:Deprecation warnings have been disabled. Set TF_ENABLE_DEPRECATION_WARNINGS=1 to re-enable them.\n", "1.15.4\n" ] } ], "source": [ "import tensorflow as tf\n", "print(tf.__version__)" ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [], "source": [ "''' 彩色图像生成 '''\n", "from tensorflow.keras.utils import Sequence\n", "from collections import Counter\n", "lower = 'abcdefghijkmnpqrstuvwxyz'\n", "upper = 'ABCDEFGHJKLMNPQRSTUVWXYZ'\n", "digit = '23456789'\n", "\n", "class CaptchaSequence(Sequence):\n", " '''\n", " 继承Sequence的数据生成类,方便调用多CPU,加快生成训练及测试数据\n", " 参数:self.characters:验证码字符集合,self.batch_size:每批次样本数,self.steps:生成多少批数据,self.n_len:验证码长度,\n", " self.width:图片宽度,self.height:图片高度,self.input_length:lstm time step长度,self.label_length:标签长度\n", " 返回:array类型训练或测试数据 \n", " \n", " '''\n", " def __init__(self, characters, batch_size, steps, n_len=6, width=width, height=height, \n", " input_length=12, label_length=6, chars_len=(4, 6)): # width=128, height=64, input_length=16, label_length=4\n", " self.characters = characters\n", " self.batch_size = batch_size\n", " self.steps = steps\n", " self.n_len = n_len\n", " self.width = width\n", " self.height = height\n", " self.input_length = input_length\n", " self.label_length = label_length\n", " self.chars_len = chars_len\n", "# self.label_length = self.n_len\n", " self.n_class = len(characters)+1\n", "\n", " \n", " def __len__(self):\n", " return self.steps\n", "\n", " def __getitem__(self, idx):\n", " X = np.zeros((self.batch_size, self.height, self.width, 3), dtype=np.float32)\n", " y = np.zeros((self.batch_size, self.n_len), dtype=np.uint8)\n", "\n", " input_length = np.ones(self.batch_size)*self.input_length\n", " label_length = np.ones(self.batch_size)*self.n_len \n", "\n", " max_num_len = 57\n", "\n", " for i in range(self.batch_size):\n", "# print('len 4',y.shape, i)\n", " # 定义验证码字符集 (大写字母、小写字母、大写字母+数字) , string.ascii_lowercase+string.digits+string.ascii_uppercase\n", "# gen_characters = random.choice([string.ascii_lowercase, string.ascii_uppercase,string.digits,string.ascii_lowercase+string.digits,\n", "# string.ascii_uppercase+string.digits]) \n", " gen_characters = random.choice([lower, upper, digit,lower+'lo', upper+'IO', digit+'01', lower+digit, upper+digit, lower+upper+digit, lower+upper+digit+'01IOlo']) \n", "\n", " if i%max_num_len <= 1: # line=(0,0), line_width=(0,1), point=(0,100),wavy=(0,0) \n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " image = gen_captcha(random_str, fig_size=(52,21), fonts=fonts,font_color=(0,255,0,255,0,255),same_color=1, font_size=(16, 18), rotate=0,\n", " font_noise=0,offset_w=(0,1),offset_h=0, line=(0,0), line_width=(0,1), line_color=(90,150), point=(30,50),\n", " point_color=(0,255,0,255,0,255),frame_color=(150, 170),wavy=(0,0), bg=(255,255))\n", "\n", " elif i%max_num_len <= 3: # line=(0,5), line_width=(0,1), point=(20,300),wavy=(0,0)\n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " image = gen_captcha(random_str, fig_size=(70,26), fonts=fonts,font_color=(20,130),same_color=0, font_size=(18, 22), rotate=0,\n", " font_noise=0,offset_w=(-1,1),offset_h=3, line=(4,6), line_width=(0,1), line_color=(90,130), point=(300,500),\n", " point_color=(220,255),frame_color=None,wavy=(0,0), bg=(235,255))\n", "\n", " elif i%max_num_len <= 5: # line=(0,0), line_width=(0,2), point=(0,0),wavy=(1,1)\n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " image = gen_captcha(random_str, fig_size=(100,25), fonts=fonts,font_color=(150,250),same_color=0, font_size=(18, 22), rotate=0,\n", " font_noise=0,offset_w=(3,5),offset_h=3, line=(0,0), line_width=(0,1), line_color=(60,130), point=(50,100),\n", " point_color=(70,120,220,255,70,120),frame_color=None,wavy=(0,0), bg=(70,100,45,80,250,255))\n", "\n", "\n", " elif i%max_num_len <= 7: # line=(0,0), line_width=(0,1), point=(0,80),wavy=(0,0)\n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " image = gen_captcha(random_str, fig_size=(80,30), fonts=fonts,font_color=(30,90),same_color=0, font_size=(22, 25), rotate=0,\n", " font_noise=0,offset_w=(1,3),offset_h=1, line=(50,100), line_width=(0,1), line_color=(200,250), point=(0,0),\n", " point_color=(70,120,220,255,70,120),frame_color=(120,130),wavy=(0,0), bg=(250,255))\n", "\n", " elif i%max_num_len<=9:\n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " image = gen_captcha(random_str, fig_size=(100,44), fonts=fonts,font_color=(20,150),same_color=0, font_size=(22, 25), rotate=20,\n", " font_noise=0,offset_w=(-1,3),offset_h=8, line=(3,5), shortline=(150,250), line_width=(0,1), line_color=(150,250), point=(0,0),\n", " point_color=(70,120,220,255,70,120),frame_color=(190,200),wavy=(0,0), bg=(240,255))\n", "\n", "\n", " elif i%max_num_len<=11:\n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)]) \n", " image = gen_captcha(random_str, fig_size=(135,40), fonts=fonts,font_color=(0,80,0,70,100,200),same_color=0, font_size=(28, 30), rotate=20,\n", " font_noise=0,offset_w=(1,3),offset_h=2, line=(3,5), shortline=(0,0), line_width=(1,3), line_color=(0,100,80,230,0,90), point=(180,250),\n", " point_color=(70,220),frame_color=(100,150),wavy=(0,0), bg=(240,255)) \n", "\n", " elif i%max_num_len<=13:\n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)]) \n", " image = gen_captcha(random_str, fig_size=(90,38), fonts=fonts,font_color=(20,160,20,165,20,160),same_color=0, font_size=(15, 20), rotate=0,\n", " font_noise=0,offset_w=(-1,3),offset_h=0, line=(100,200), line_width=(0,1), line_color=(170,230), point=(20,150),\n", " point_color=(200,255),frame_color=(10,30),wavy=(0,0), bg=(255,255))\n", "\n", " elif i%max_num_len<=15: \n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " tmp_w = random.randint(80,100)\n", " tmp_h = random.randint(25, 35)\n", " font_s = (int(tmp_h*0.8), int(tmp_h*0.9))\n", " image = gen_captcha(random_str, fig_size=(tmp_w,tmp_h), fonts=fonts,font_color=(0,180),same_color=0, font_size=font_s, rotate=15,\n", " font_noise=0,offset_w=(-2,1),offset_h=2, line=(0,0), shortline=(0,0), line_width=(0,1), line_color=(170,200), point=(0,0),\n", " point_color=(250,255),frame_color=None,wavy=(0,0), bg=(150,255))\n", "# elif i%max_num_len<=17:\n", "# image, random_str = merge_img_7025()\n", "# elif i%max_num_len<=23:\n", "# image, random_str = merge_img_9038() \n", "\n", "# elif i%max_num_len<=30: # 加入真实验证码\n", "# image, random_str = rebuild_img(random.choice(len4_imgs))\n", "# elif i%max_num_len <= 35:\n", "# image, random_str = add_real_img(imgs_200_80) \n", " \n", " elif i%max_num_len <= 37: \n", " random_str = ''.join([random.choice(gen_characters) for j in range(4)])\n", " tmp_w = random.randint(80,100)\n", " tmp_h = random.randint(25, 35)\n", " font_s = (int(tmp_h*0.8), int(tmp_h*0.9))\n", " image = gen_captcha(random_str, fig_size=(tmp_w,tmp_h), fonts=fonts,font_color=(0,180),same_color=0, font_size=font_s, rotate=15,\n", " font_noise=0,offset_w=(-2,1),offset_h=2, line=(0,5), shortline=(0,100), line_width=(0,1), line_color=(10,200), point=(0,200),\n", " point_color=(50,255),frame_color=None,wavy=(0,1), bg=(150,255)) \n", " \n", " # 上面是4个字符验证码,下面是 5个字符 \n", "\n", " elif i%max_num_len <= 39: # line=(0,6), line_width=(0,1), point=(0,500),wavy=(0,0)\n", " random_str = ''.join([random.choice(gen_characters) for j in range(5)])\n", " image = gen_captcha(random_str, fig_size=(200,70), fonts=fonts,font_color=(0,255,0,255,0,255),same_color=1, font_size=(50, 55), rotate=10,\n", " font_noise=0,offset_w=(-2,1),offset_h=5, line=(0,0), shortline=(0,0), line_width=(2,2), line_color=(0,100,80,230,0,90), point=(0,50),\n", " point_color=(250,255),frame_color=None,wavy=(1,1), bg=(255,255))\n", "\n", " elif i%max_num_len <= 41: # line=(0,3), line_width=(0,1), point=(0,200),wavy=(0,0)\n", " random_str = ''.join([random.choice(gen_characters) for j in range(5)])\n", " image = gen_captcha(random_str, fig_size=(100,30), fonts=fonts,font_color=(40,120),same_color=0, font_size=(25, 27), rotate=0,\n", " font_noise=0,offset_w=(-3,-1),offset_h=2, line=(10,20), shortline=(200,250), line_width=(0,1), line_color=(170,200), point=(0,0),\n", " point_color=(250,255),frame_color=(150,180),wavy=(0,0), bg=(250,255))\n", "\n", " elif i%max_num_len <= 43: # line=(2,6), line_width=(0,2), point=(0,0),wavy=(0,0)\n", " random_str = ''.join([random.choice(gen_characters) for j in range(5)])\n", " image = gen_captcha(random_str, fig_size=(100,27), fonts=fonts,font_color=(20,80,100,120,20,80),same_color=0, font_size=(25, 27), rotate=0,\n", " font_noise=0,offset_w=(2,2),offset_h=2, line=(0,0), shortline=(0,0), line_width=(0,1), line_color=(170,200), point=(500,800),\n", " point_color=(250,255),frame_color=None,wavy=(0,0), bg=(210,240)) \n", "\n", " elif i%max_num_len <= 45:\n", " random_str = ''.join([random.choice(gen_characters) for j in range(5)])\n", " tmp_w = random.randint(100,150)\n", " tmp_h = random.randint(35, 45)\n", " font_s = (int(tmp_h*0.8), int(tmp_h*0.9))\n", " image = gen_captcha(random_str, fig_size=(tmp_w,tmp_h), fonts=fonts,font_color=(0,180),same_color=0, font_size=font_s, rotate=15,\n", " font_noise=0,offset_w=(-2,1),offset_h=2, line=(0,0), shortline=(0,0), line_width=(0,1), line_color=(170,200), point=(0,0),\n", " point_color=(250,255),frame_color=None,wavy=(0,0), bg=(150,255)) \n", "\n", " elif i%max_num_len<=47: # line=(0,0), line_width=(0,1), point=(0,0),wavy=(0,0) \n", " random_str = ''.join([random.choice(gen_characters) for j in range(5)])\n", " tmp_w = random.randint(100,150)\n", " tmp_h = random.randint(35, 45)\n", " font_s = (int(tmp_h*0.8), int(tmp_h*0.9))\n", " image = gen_captcha(random_str, fig_size=(tmp_w,tmp_h), fonts=fonts,font_color=(0,180),same_color=0, font_size=font_s, rotate=15,\n", " font_noise=0,offset_w=(-2,1),offset_h=2, line=(0,5), shortline=(0,100), line_width=(0,1), line_color=(10,200), point=(0,200),\n", " point_color=(50,255),frame_color=None,wavy=(0,1), bg=(150,255)) \n", "\n", "# elif i%max_num_len<=49: # 加入真实验证码\n", "# image, random_str = rebuild_img(random.choice(len5_imgs))\n", "\n", " elif i%max_num_len<=50: \n", " random_str = ''.join([random.choice(gen_characters) for j in range(5)])\n", " tmp_w = random.randint(100,150)\n", " tmp_h = random.randint(35, 45)\n", " font_s = (int(tmp_h*0.8), int(tmp_h*0.9))\n", " image = gen_captcha(random_str, fig_size=(tmp_w,tmp_h), fonts=fonts,font_color=(200,255),same_color=0, font_size=font_s, rotate=15,\n", " font_noise=0,offset_w=(-2,3),offset_h=2, line=(0,5), shortline=(0,100), line_width=(0,1), line_color=(10,200), point=(0,200),\n", " point_color=(50,155),frame_color=None,wavy=(0,1), bg=(0,255,0,250,0,250)) \n", " \n", " #下面是6个字符验证码 \n", " elif i%max_num_len<=55: # line=(0,0), line_width=(0,1), point=(0,0),wavy=(0,0) \n", " random_str = ''.join([random.choice(gen_characters) for j in range(6)])\n", " image = gen_captcha(random_str, fig_size=(122,46), fonts=fonts,font_color=(5,160,5,150,5,160),same_color=0, font_size=(17, 20), rotate=10,\n", " font_noise=0,offset_w=(-1,3),offset_h=2, line=(0,3), line_width=(0,1), line_color=(200,250), point=(0,150),\n", " point_color=(200,255),frame_color=(200,250),wavy=(0,0), bg=(235,255)).resize((width, height), Image.BILINEAR)\n", " \n", "# elif i%max_num_len<=57:\n", "# image, random_str = add_real_img(imgs_160_60) \n", " \n", "# elif i%max_num_len<=60:\n", "# image, random_str = add_real_img2(chaojiying_train)\n", " \n", " else : # 加入真实验证码\n", "# # image, random_str = add_real_img(imgs_122_46) \n", " image, random_str = add_real_img2(chaojiying_train)\n", "\n", " X[i] = np.array(image)/255.0\n", " label = [self.characters.find(x) for x in random_str] # 全部标签转换为小写\n", " if len(random_str) < self.n_len:\n", " label += [self.n_class]*(self.n_len-len(random_str)) \n", " y[i] = label\n", " \n", "# return imgs# \n", " return [X, y, input_length, label_length], np.ones(self.batch_size)" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [], "source": [ "data = CaptchaSequence(characters, batch_size=60, steps=10,input_length=12, label_length=6,chars_len=(4, 6)) # (characters, batch_size=128, steps=100)" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(60, 70, 200, 3)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 150, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "l, _ = data[1]\n", "x = l[0]\n", "print(x.shape)\n", "idx = 20\n", "# plt.imshow(np.reshape(x[idx], (height, width)))\n", "\n", "# x = data[1]\n", "# idx = 8\n", "plt.imshow(x[idx])\n", "# len4_imgs[:5]" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model_2\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "input_2 (InputLayer) [(None, 70, 200, 3)] 0 \n", "_________________________________________________________________\n", "conv2d_10 (Conv2D) (None, 70, 200, 32) 896 \n", "_________________________________________________________________\n", "batch_normalization_10 (Batc (None, 70, 200, 32) 128 \n", "_________________________________________________________________\n", "leaky_re_lu_10 (LeakyReLU) (None, 70, 200, 32) 0 \n", "_________________________________________________________________\n", "conv2d_11 (Conv2D) (None, 70, 200, 32) 9248 \n", "_________________________________________________________________\n", "batch_normalization_11 (Batc (None, 70, 200, 32) 128 \n", "_________________________________________________________________\n", "leaky_re_lu_11 (LeakyReLU) (None, 70, 200, 32) 0 \n", "_________________________________________________________________\n", "max_pooling2d_5 (MaxPooling2 (None, 35, 100, 32) 0 \n", "_________________________________________________________________\n", "conv2d_12 (Conv2D) (None, 35, 100, 64) 18496 \n", "_________________________________________________________________\n", "batch_normalization_12 (Batc (None, 35, 100, 64) 256 \n", "_________________________________________________________________\n", "leaky_re_lu_12 (LeakyReLU) (None, 35, 100, 64) 0 \n", "_________________________________________________________________\n", "conv2d_13 (Conv2D) (None, 35, 100, 64) 36928 \n", "_________________________________________________________________\n", "batch_normalization_13 (Batc (None, 35, 100, 64) 256 \n", "_________________________________________________________________\n", "leaky_re_lu_13 (LeakyReLU) (None, 35, 100, 64) 0 \n", "_________________________________________________________________\n", "max_pooling2d_6 (MaxPooling2 (None, 17, 50, 64) 0 \n", "_________________________________________________________________\n", "conv2d_14 (Conv2D) (None, 17, 50, 128) 73856 \n", "_________________________________________________________________\n", "batch_normalization_14 (Batc (None, 17, 50, 128) 512 \n", "_________________________________________________________________\n", "leaky_re_lu_14 (LeakyReLU) (None, 17, 50, 128) 0 \n", "_________________________________________________________________\n", "conv2d_15 (Conv2D) (None, 17, 50, 128) 147584 \n", "_________________________________________________________________\n", "batch_normalization_15 (Batc (None, 17, 50, 128) 512 \n", "_________________________________________________________________\n", "leaky_re_lu_15 (LeakyReLU) (None, 17, 50, 128) 0 \n", "_________________________________________________________________\n", "max_pooling2d_7 (MaxPooling2 (None, 8, 25, 128) 0 \n", "_________________________________________________________________\n", "conv2d_16 (Conv2D) (None, 8, 25, 256) 295168 \n", "_________________________________________________________________\n", "batch_normalization_16 (Batc (None, 8, 25, 256) 1024 \n", "_________________________________________________________________\n", "leaky_re_lu_16 (LeakyReLU) (None, 8, 25, 256) 0 \n", "_________________________________________________________________\n", "conv2d_17 (Conv2D) (None, 8, 25, 256) 590080 \n", "_________________________________________________________________\n", "batch_normalization_17 (Batc (None, 8, 25, 256) 1024 \n", "_________________________________________________________________\n", "leaky_re_lu_17 (LeakyReLU) (None, 8, 25, 256) 0 \n", "_________________________________________________________________\n", "max_pooling2d_8 (MaxPooling2 (None, 4, 12, 256) 0 \n", "_________________________________________________________________\n", "conv2d_18 (Conv2D) (None, 4, 12, 256) 590080 \n", "_________________________________________________________________\n", "batch_normalization_18 (Batc (None, 4, 12, 256) 1024 \n", "_________________________________________________________________\n", "leaky_re_lu_18 (LeakyReLU) (None, 4, 12, 256) 0 \n", "_________________________________________________________________\n", "conv2d_19 (Conv2D) (None, 4, 12, 256) 590080 \n", "_________________________________________________________________\n", "batch_normalization_19 (Batc (None, 4, 12, 256) 1024 \n", "_________________________________________________________________\n", "leaky_re_lu_19 (LeakyReLU) (None, 4, 12, 256) 0 \n", "_________________________________________________________________\n", "max_pooling2d_9 (MaxPooling2 (None, 2, 12, 256) 0 \n", "_________________________________________________________________\n", "permute_1 (Permute) (None, 12, 2, 256) 0 \n", "_________________________________________________________________\n", "time_distributed_1 (TimeDist (None, 12, 512) 0 \n", "_________________________________________________________________\n", "bidirectional_2 (Bidirection (None, 12, 256) 492288 \n", "_________________________________________________________________\n", "bidirectional_3 (Bidirection (None, 12, 256) 295680 \n", "_________________________________________________________________\n", "dense_1 (Dense) (None, 12, 63) 16191 \n", "=================================================================\n", "Total params: 3,162,463\n", "Trainable params: 3,159,519\n", "Non-trainable params: 2,944\n", "_________________________________________________________________\n", "None\n" ] } ], "source": [ "# 定义网络\n", "from tensorflow.keras.models import *\n", "from tensorflow.keras.layers import *\n", "\n", "# 定义 CTC Loss\n", "import tensorflow.keras.backend as K\n", "\n", "def ctc_lambda_func(args):\n", " '''\n", " 定义ctc损失函数\n", " 参数:y_pred:预测值,labels:标签,input_length:lstm tiemstep,label_length:标签长度\n", " ''' \n", " y_pred, labels, input_length, label_length = args\n", " return K.ctc_batch_cost(labels, y_pred, input_length, label_length)\n", "\n", "input_tensor = Input((height, width, 3))\n", "x = input_tensor\n", "\n", "for i, n_cnn in enumerate([2, 2, 2, 2, 2]): \n", " for j in range(n_cnn):\n", " x = Conv2D(32*2**min(i, 3), kernel_size=3, padding='same', kernel_initializer='he_uniform')(x) # 32*2**min(i, 3)\n", " x = BatchNormalization()(x)\n", "# x = Activation('relu')(x) # 20200729 relu 改LeakyReLU\n", " x = LeakyReLU(0.01)(x)\n", " x = MaxPooling2D(2 if i < 4 else (2, 1))(x)\n", "\n", "x = Permute((2, 1, 3))(x)\n", "x = TimeDistributed(Flatten())(x)\n", "rnn_size = 128 # 128 32\n", "\n", "x = Bidirectional(GRU(rnn_size, return_sequences=True))(x)\n", "x = Bidirectional(GRU(rnn_size, return_sequences=True))(x) # 200epoch 0.0153 - val_loss: 0.0136\n", "\n", "x = Dense(n_class, activation='softmax')(x)\n", "base_model = Model(inputs=input_tensor, outputs=x)\n", "print(base_model.summary())\n", "\n", "labels = Input(name='the_labels', shape=[None], dtype='float32')\n", "input_length = Input(name='input_length', shape=[1], dtype='int64')\n", "label_length = Input(name='label_length', shape=[1], dtype='int64')\n", "loss_out = Lambda(ctc_lambda_func, output_shape=(1,), name='ctc')([x, labels, input_length, label_length])\n", "model = Model(inputs=[input_tensor, labels, input_length, label_length], outputs=loss_out)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "WARNING:tensorflow:From /home/python/anaconda3/envs/dl_nlp/lib/python3.5/site-packages/tensorflow/python/keras/initializers.py:104: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with distribution=normal is deprecated and will be removed in a future version.\n", "Instructions for updating:\n", "`normal` is a deprecated alias for `truncated_normal`\n", "__________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "==================================================================================================\n", "input_3 (InputLayer) (None, 70, 200, 3) 0 \n", "__________________________________________________________________________________________________\n", "conv1 (Conv2D) (None, 35, 100, 32) 896 input_3[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_10 (BatchNo (None, 35, 100, 32) 128 conv1[0][0] \n", "__________________________________________________________________________________________________\n", "leaky_re_lu_10 (LeakyReLU) (None, 35, 100, 32) 0 batch_normalization_10[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_5 (MaxPooling2D) (None, 17, 100, 32) 0 leaky_re_lu_10[0][0] \n", "__________________________________________________________________________________________________\n", "block_1_expand (Conv2D) (None, 17, 100, 192) 6144 max_pooling2d_5[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_11 (BatchNo (None, 17, 100, 192) 768 block_1_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation (Activation) (None, 17, 100, 192) 0 batch_normalization_11[0][0] \n", "__________________________________________________________________________________________________\n", "block_1_depthwise (DepthwiseCon (None, 9, 50, 192) 1728 activation[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_12 (BatchNo (None, 9, 50, 192) 768 block_1_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_1 (Activation) (None, 9, 50, 192) 0 batch_normalization_12[0][0] \n", "__________________________________________________________________________________________________\n", "block_1_project (Conv2D) (None, 9, 50, 24) 4608 activation_1[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_13 (BatchNo (None, 9, 50, 24) 96 block_1_project[0][0] \n", "__________________________________________________________________________________________________\n", "max_pooling2d_6 (MaxPooling2D) (None, 4, 50, 24) 0 batch_normalization_13[0][0] \n", "__________________________________________________________________________________________________\n", "block_2_expand (Conv2D) (None, 4, 50, 144) 3456 max_pooling2d_6[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_14 (BatchNo (None, 4, 50, 144) 576 block_2_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_2 (Activation) (None, 4, 50, 144) 0 batch_normalization_14[0][0] \n", "__________________________________________________________________________________________________\n", "block_2_depthwise (DepthwiseCon (None, 4, 50, 144) 1296 activation_2[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_15 (BatchNo (None, 4, 50, 144) 576 block_2_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_3 (Activation) (None, 4, 50, 144) 0 batch_normalization_15[0][0] \n", "__________________________________________________________________________________________________\n", "block_2_project (Conv2D) (None, 4, 50, 24) 3456 activation_3[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_16 (BatchNo (None, 4, 50, 24) 96 block_2_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_2_add (Add) (None, 4, 50, 24) 0 max_pooling2d_6[0][0] \n", " batch_normalization_16[0][0] \n", "__________________________________________________________________________________________________\n", "block_3_expand (Conv2D) (None, 4, 50, 144) 3456 block_2_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_17 (BatchNo (None, 4, 50, 144) 576 block_3_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_4 (Activation) (None, 4, 50, 144) 0 batch_normalization_17[0][0] \n", "__________________________________________________________________________________________________\n", "block_3_depthwise (DepthwiseCon (None, 4, 50, 144) 1296 activation_4[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_18 (BatchNo (None, 4, 50, 144) 576 block_3_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_5 (Activation) (None, 4, 50, 144) 0 batch_normalization_18[0][0] \n", "__________________________________________________________________________________________________\n", "block_3_project (Conv2D) (None, 4, 50, 32) 4608 activation_5[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_19 (BatchNo (None, 4, 50, 32) 128 block_3_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_4_expand (Conv2D) (None, 4, 50, 192) 6144 batch_normalization_19[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_20 (BatchNo (None, 4, 50, 192) 768 block_4_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_6 (Activation) (None, 4, 50, 192) 0 batch_normalization_20[0][0] \n", "__________________________________________________________________________________________________\n", "block_4_depthwise (DepthwiseCon (None, 4, 50, 192) 1728 activation_6[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_21 (BatchNo (None, 4, 50, 192) 768 block_4_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_7 (Activation) (None, 4, 50, 192) 0 batch_normalization_21[0][0] \n", "__________________________________________________________________________________________________\n", "block_4_project (Conv2D) (None, 4, 50, 32) 6144 activation_7[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_22 (BatchNo (None, 4, 50, 32) 128 block_4_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_4_add (Add) (None, 4, 50, 32) 0 batch_normalization_19[0][0] \n", " batch_normalization_22[0][0] \n", "__________________________________________________________________________________________________\n", "block_5_expand (Conv2D) (None, 4, 50, 192) 6144 block_4_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_23 (BatchNo (None, 4, 50, 192) 768 block_5_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_8 (Activation) (None, 4, 50, 192) 0 batch_normalization_23[0][0] \n", "__________________________________________________________________________________________________\n", "block_5_depthwise (DepthwiseCon (None, 4, 50, 192) 1728 activation_8[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_24 (BatchNo (None, 4, 50, 192) 768 block_5_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_9 (Activation) (None, 4, 50, 192) 0 batch_normalization_24[0][0] \n", "__________________________________________________________________________________________________\n", "block_5_project (Conv2D) (None, 4, 50, 32) 6144 activation_9[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_25 (BatchNo (None, 4, 50, 32) 128 block_5_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_5_add (Add) (None, 4, 50, 32) 0 block_4_add[0][0] \n", " batch_normalization_25[0][0] \n", "__________________________________________________________________________________________________\n", "block_6_expand (Conv2D) (None, 4, 50, 192) 6144 block_5_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_26 (BatchNo (None, 4, 50, 192) 768 block_6_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_10 (Activation) (None, 4, 50, 192) 0 batch_normalization_26[0][0] \n", "__________________________________________________________________________________________________\n", "block_6_depthwise (DepthwiseCon (None, 4, 50, 192) 1728 activation_10[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_27 (BatchNo (None, 4, 50, 192) 768 block_6_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_11 (Activation) (None, 4, 50, 192) 0 batch_normalization_27[0][0] \n", "__________________________________________________________________________________________________\n", "block_6_project (Conv2D) (None, 4, 50, 64) 12288 activation_11[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_28 (BatchNo (None, 4, 50, 64) 256 block_6_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_7_expand (Conv2D) (None, 4, 50, 384) 24576 batch_normalization_28[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_29 (BatchNo (None, 4, 50, 384) 1536 block_7_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_12 (Activation) (None, 4, 50, 384) 0 batch_normalization_29[0][0] \n", "__________________________________________________________________________________________________\n", "block_7_depthwise (DepthwiseCon (None, 4, 50, 384) 3456 activation_12[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_30 (BatchNo (None, 4, 50, 384) 1536 block_7_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_13 (Activation) (None, 4, 50, 384) 0 batch_normalization_30[0][0] \n", "__________________________________________________________________________________________________\n", "block_7_project (Conv2D) (None, 4, 50, 64) 24576 activation_13[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_31 (BatchNo (None, 4, 50, 64) 256 block_7_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_7_add (Add) (None, 4, 50, 64) 0 batch_normalization_28[0][0] \n", " batch_normalization_31[0][0] \n", "__________________________________________________________________________________________________\n", "block_8_expand (Conv2D) (None, 4, 50, 384) 24576 block_7_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_32 (BatchNo (None, 4, 50, 384) 1536 block_8_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_14 (Activation) (None, 4, 50, 384) 0 batch_normalization_32[0][0] \n", "__________________________________________________________________________________________________\n", "block_8_depthwise (DepthwiseCon (None, 4, 50, 384) 3456 activation_14[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_33 (BatchNo (None, 4, 50, 384) 1536 block_8_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_15 (Activation) (None, 4, 50, 384) 0 batch_normalization_33[0][0] \n", "__________________________________________________________________________________________________\n", "block_8_project (Conv2D) (None, 4, 50, 64) 24576 activation_15[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_34 (BatchNo (None, 4, 50, 64) 256 block_8_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_8_add (Add) (None, 4, 50, 64) 0 block_7_add[0][0] \n", " batch_normalization_34[0][0] \n", "__________________________________________________________________________________________________\n", "block_9_expand (Conv2D) (None, 4, 50, 384) 24576 block_8_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_35 (BatchNo (None, 4, 50, 384) 1536 block_9_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_16 (Activation) (None, 4, 50, 384) 0 batch_normalization_35[0][0] \n", "__________________________________________________________________________________________________\n", "block_9_depthwise (DepthwiseCon (None, 4, 50, 384) 3456 activation_16[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_36 (BatchNo (None, 4, 50, 384) 1536 block_9_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_17 (Activation) (None, 4, 50, 384) 0 batch_normalization_36[0][0] \n", "__________________________________________________________________________________________________\n", "block_9_project (Conv2D) (None, 4, 50, 64) 24576 activation_17[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_37 (BatchNo (None, 4, 50, 64) 256 block_9_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_9_add (Add) (None, 4, 50, 64) 0 block_8_add[0][0] \n", " batch_normalization_37[0][0] \n", "__________________________________________________________________________________________________\n", "block_10_expand (Conv2D) (None, 4, 50, 384) 24576 block_9_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_38 (BatchNo (None, 4, 50, 384) 1536 block_10_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_18 (Activation) (None, 4, 50, 384) 0 batch_normalization_38[0][0] \n", "__________________________________________________________________________________________________\n", "block_10_depthwise (DepthwiseCo (None, 4, 50, 384) 3456 activation_18[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_39 (BatchNo (None, 4, 50, 384) 1536 block_10_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_19 (Activation) (None, 4, 50, 384) 0 batch_normalization_39[0][0] \n", "__________________________________________________________________________________________________\n", "block_10_project (Conv2D) (None, 4, 50, 96) 36864 activation_19[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_40 (BatchNo (None, 4, 50, 96) 384 block_10_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_11_expand (Conv2D) (None, 4, 50, 576) 55296 batch_normalization_40[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_41 (BatchNo (None, 4, 50, 576) 2304 block_11_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_20 (Activation) (None, 4, 50, 576) 0 batch_normalization_41[0][0] \n", "__________________________________________________________________________________________________\n", "block_11_depthwise (DepthwiseCo (None, 4, 50, 576) 5184 activation_20[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_42 (BatchNo (None, 4, 50, 576) 2304 block_11_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_21 (Activation) (None, 4, 50, 576) 0 batch_normalization_42[0][0] \n", "__________________________________________________________________________________________________\n", "block_11_project (Conv2D) (None, 4, 50, 96) 55296 activation_21[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_43 (BatchNo (None, 4, 50, 96) 384 block_11_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_11_add (Add) (None, 4, 50, 96) 0 batch_normalization_40[0][0] \n", " batch_normalization_43[0][0] \n", "__________________________________________________________________________________________________\n", "block_12_expand (Conv2D) (None, 4, 50, 576) 55296 block_11_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_44 (BatchNo (None, 4, 50, 576) 2304 block_12_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_22 (Activation) (None, 4, 50, 576) 0 batch_normalization_44[0][0] \n", "__________________________________________________________________________________________________\n", "block_12_depthwise (DepthwiseCo (None, 4, 50, 576) 5184 activation_22[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_45 (BatchNo (None, 4, 50, 576) 2304 block_12_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_23 (Activation) (None, 4, 50, 576) 0 batch_normalization_45[0][0] \n", "__________________________________________________________________________________________________\n", "block_12_project (Conv2D) (None, 4, 50, 96) 55296 activation_23[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_46 (BatchNo (None, 4, 50, 96) 384 block_12_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_12_add (Add) (None, 4, 50, 96) 0 block_11_add[0][0] \n", " batch_normalization_46[0][0] \n", "__________________________________________________________________________________________________\n", "block_13_expand (Conv2D) (None, 4, 50, 576) 55296 block_12_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_47 (BatchNo (None, 4, 50, 576) 2304 block_13_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_24 (Activation) (None, 4, 50, 576) 0 batch_normalization_47[0][0] \n", "__________________________________________________________________________________________________\n", "block_13_depthwise (DepthwiseCo (None, 4, 50, 576) 5184 activation_24[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_48 (BatchNo (None, 4, 50, 576) 2304 block_13_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_25 (Activation) (None, 4, 50, 576) 0 batch_normalization_48[0][0] \n", "__________________________________________________________________________________________________\n", "block_13_project (Conv2D) (None, 4, 50, 160) 92160 activation_25[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_49 (BatchNo (None, 4, 50, 160) 640 block_13_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_14_expand (Conv2D) (None, 4, 50, 960) 153600 batch_normalization_49[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_50 (BatchNo (None, 4, 50, 960) 3840 block_14_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_26 (Activation) (None, 4, 50, 960) 0 batch_normalization_50[0][0] \n", "__________________________________________________________________________________________________\n", "block_14_depthwise (DepthwiseCo (None, 4, 50, 960) 8640 activation_26[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_51 (BatchNo (None, 4, 50, 960) 3840 block_14_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_27 (Activation) (None, 4, 50, 960) 0 batch_normalization_51[0][0] \n", "__________________________________________________________________________________________________\n", "block_14_project (Conv2D) (None, 4, 50, 160) 153600 activation_27[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_52 (BatchNo (None, 4, 50, 160) 640 block_14_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_14_add (Add) (None, 4, 50, 160) 0 batch_normalization_49[0][0] \n", " batch_normalization_52[0][0] \n", "__________________________________________________________________________________________________\n", "block_15_expand (Conv2D) (None, 4, 50, 960) 153600 block_14_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_53 (BatchNo (None, 4, 50, 960) 3840 block_15_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_28 (Activation) (None, 4, 50, 960) 0 batch_normalization_53[0][0] \n", "__________________________________________________________________________________________________\n", "block_15_depthwise (DepthwiseCo (None, 4, 50, 960) 8640 activation_28[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_54 (BatchNo (None, 4, 50, 960) 3840 block_15_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_29 (Activation) (None, 4, 50, 960) 0 batch_normalization_54[0][0] \n", "__________________________________________________________________________________________________\n", "block_15_project (Conv2D) (None, 4, 50, 160) 153600 activation_29[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_55 (BatchNo (None, 4, 50, 160) 640 block_15_project[0][0] \n", "__________________________________________________________________________________________________\n", "block_15_add (Add) (None, 4, 50, 160) 0 block_14_add[0][0] \n", " batch_normalization_55[0][0] \n", "__________________________________________________________________________________________________\n", "block_16_expand (Conv2D) (None, 4, 50, 960) 153600 block_15_add[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_56 (BatchNo (None, 4, 50, 960) 3840 block_16_expand[0][0] \n", "__________________________________________________________________________________________________\n", "activation_30 (Activation) (None, 4, 50, 960) 0 batch_normalization_56[0][0] \n", "__________________________________________________________________________________________________\n", "block_16_depthwise (DepthwiseCo (None, 4, 50, 960) 8640 activation_30[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_57 (BatchNo (None, 4, 50, 960) 3840 block_16_depthwise[0][0] \n", "__________________________________________________________________________________________________\n", "activation_31 (Activation) (None, 4, 50, 960) 0 batch_normalization_57[0][0] \n", "__________________________________________________________________________________________________\n", "block_16_project (Conv2D) (None, 4, 50, 320) 307200 activation_31[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_58 (BatchNo (None, 4, 50, 320) 1280 block_16_project[0][0] \n", "__________________________________________________________________________________________________\n", "Conv_1 (Conv2D) (None, 4, 50, 256) 81920 batch_normalization_58[0][0] \n", "__________________________________________________________________________________________________\n", "batch_normalization_59 (BatchNo (None, 4, 50, 256) 1024 Conv_1[0][0] \n", "__________________________________________________________________________________________________\n", "out_relu (ReLU) (None, 4, 50, 256) 0 batch_normalization_59[0][0] \n", "__________________________________________________________________________________________________\n", "permute_1 (Permute) (None, 50, 4, 256) 0 out_relu[0][0] \n", "__________________________________________________________________________________________________\n", "time_distributed_1 (TimeDistrib (None, 50, 1024) 0 permute_1[0][0] \n", "__________________________________________________________________________________________________\n", "bidirectional_2 (Bidirectional) (None, 50, 512) 2623488 time_distributed_1[0][0] \n", "__________________________________________________________________________________________________\n", "dense_1 (Dense) (None, 50, 37) 18981 bidirectional_2[0][0] \n", "==================================================================================================\n", "Total params: 4,576,261\n", "Trainable params: 4,543,909\n", "Non-trainable params: 32,352\n", "__________________________________________________________________________________________________\n", "None\n" ] } ], "source": [ "import tensorflow as tf\n", "from tensorflow.keras.models import *\n", "from tensorflow.keras.layers import *\n", "\n", "# 定义 CTC Loss\n", "import tensorflow.keras.backend as K\n", "\n", "def relu6(x):\n", " return tf.keras.backend.relu(x, max_value=6)\n", "\n", "def inverted_res_block(input_tensor, expansion, stride, filters, block_id):\n", " channel_axis = 1 if tf.keras.backend.image_data_format() == 'channels_first' else -1\n", "\n", " in_channels = tf.keras.backend.int_shape(input_tensor)[channel_axis]\n", " pointwise_filters = int(filters)\n", " x = input_tensor\n", " prefix = 'block_{}_'.format(block_id)\n", "\n", " if block_id:\n", " # Expand\n", " x = tf.keras.layers.Conv2D(\n", " expansion * in_channels,\n", " kernel_size=1,\n", " padding='same',\n", " use_bias=False,\n", " activation=None,\n", " name=prefix + 'expand'\n", " )(x)\n", " x = tf.keras.layers.BatchNormalization()(x)\n", "\n", " x = tf.keras.layers.Activation(relu6)(x)\n", "\n", " else:\n", " prefix = 'expanded_conv_'\n", "\n", " # Depthwise\n", " x = tf.keras.layers.DepthwiseConv2D(\n", " kernel_size=3,\n", " strides=stride,\n", " activation=None,\n", " use_bias=False,\n", " padding='same',\n", " name=prefix + 'depthwise'\n", " )(x)\n", " x = tf.keras.layers.BatchNormalization()(x)\n", "\n", " x =tf.keras.layers.Activation(relu6)(x)\n", "\n", " # Project\n", " x = tf.keras.layers.Conv2D(\n", " pointwise_filters,\n", " kernel_size=1,\n", " padding='same',\n", " use_bias=False,\n", " activation=None,\n", " name=prefix + 'project'\n", " )(x)\n", " x = tf.keras.layers.BatchNormalization()(x)\n", "\n", " if in_channels == pointwise_filters and stride == 1:\n", " return tf.keras.layers.Add(name=prefix + 'add')([input_tensor, x])\n", " return x\n", "\n", "def first_layer(inputs):\n", " x = tf.keras.layers.Conv2D(\n", " filters=32,\n", " kernel_size=(3, 3),\n", " strides=(2, 2),\n", " padding='same',\n", " kernel_initializer='he_normal',\n", " name='conv1')(inputs)\n", " x = tf.keras.layers.BatchNormalization()(x)\n", " x = tf.keras.layers.LeakyReLU(0.01)(x)\n", " return x\n", "\n", "last_block_filters = 256\n", "def pwise_block(inputs):\n", " x = tf.keras.layers.Conv2D(\n", " last_block_filters,\n", " kernel_size=1,\n", " use_bias=False,\n", " name='Conv_1')(inputs)\n", " x = tf.keras.layers.BatchNormalization()(x)\n", " x = tf.keras.layers.ReLU(6., name='out_relu')(x)\n", " return x\n", "\n", "input_tensor = tf.keras.layers.Input((height, width, 3))\n", "x = first_layer(input_tensor)\n", "x = tf.keras.layers.MaxPooling2D(pool_size=(2, 1))(x)\n", "x = inverted_res_block(x, filters=24, stride=2, expansion=6, block_id=1)\n", "x = tf.keras.layers.MaxPooling2D(pool_size=(2, 1))(x)\n", "x = inverted_res_block(x, filters=24, stride=1, expansion=6, block_id=2)\n", "x = inverted_res_block(x, filters=32, stride=1, expansion=6, block_id=3)\n", "x = inverted_res_block(x, filters=32, stride=1, expansion=6, block_id=4)\n", "x = inverted_res_block(x, filters=32, stride=1, expansion=6, block_id=5)\n", "x = inverted_res_block(x, filters=64, stride=1, expansion=6, block_id=6)\n", "x = inverted_res_block(x, filters=64, stride=1, expansion=6, block_id=7)\n", "x = inverted_res_block(x, filters=64, stride=1, expansion=6, block_id=8)\n", "x = inverted_res_block(x, filters=64, stride=1, expansion=6, block_id=9)\n", "x = inverted_res_block(x, filters=96, stride=1, expansion=6, block_id=10)\n", "x = inverted_res_block(x, filters=96, stride=1, expansion=6, block_id=11)\n", "x = inverted_res_block(x, filters=96, stride=1, expansion=6, block_id=12)\n", "x = inverted_res_block(x, filters=160, stride=1, expansion=6, block_id=13)\n", "x = inverted_res_block(x, filters=160, stride=1, expansion=6, block_id=14)\n", "x = inverted_res_block(x, filters=160, stride=1, expansion=6, block_id=15)\n", "x = inverted_res_block(x, filters=320, stride=1, expansion=6, block_id=16)\n", "\n", "x = pwise_block(x)\n", "x = tf.keras.layers.Permute((2, 1, 3))(x)\n", "x = tf.keras.layers.TimeDistributed(\n", " layer=tf.keras.layers.Flatten(),\n", ")(inputs=x)\n", "x = tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(256, return_sequences=True))(x)\n", "x = tf.keras.layers.Dense(n_class, activation='softmax')(x)\n", "base_model = Model(inputs=input_tensor, outputs=x)\n", "print(base_model.summary())\n", "\n", "labels = Input(name='the_labels', shape=[None], dtype='float32')\n", "input_length = Input(name='input_length', shape=[1], dtype='int64')\n", "label_length = Input(name='label_length', shape=[1], dtype='int64')\n", "def ctc_lambda_func(args):\n", " '''\n", " 定义ctc损失函数\n", " 参数:y_pred:预测值,labels:标签,input_length:lstm tiemstep,label_length:标签长度\n", " ''' \n", " y_pred, labels, input_length, label_length = args\n", " return K.ctc_batch_cost(labels, y_pred, input_length, label_length)\n", "loss_out = Lambda(ctc_lambda_func, output_shape=(1,), name='ctc')([x, labels, input_length, label_length])\n", "\n", "model = Model(inputs=[input_tensor, labels, input_length, label_length], outputs=loss_out)" ] }, { "cell_type": "code", "execution_count": 79, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 1.3925Epoch 1/300\n", "1000/1000 [==============================] - 295s 295ms/step - loss: 1.3922 - val_loss: 1.3454\n", "Epoch 2/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.9561Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.9557 - val_loss: 1.4656\n", "Epoch 3/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.7486Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.7487 - val_loss: 1.0904\n", "Epoch 4/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.6172Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.6173 - val_loss: 0.7944\n", "Epoch 5/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.5249Epoch 1/300\n", "1000/1000 [==============================] - 285s 285ms/step - loss: 0.5247 - val_loss: 0.6605\n", "Epoch 6/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.4778Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.4776 - val_loss: 0.5511\n", "Epoch 7/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.4108Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.4109 - val_loss: 0.6634\n", "Epoch 8/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.3865Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.3864 - val_loss: 0.4412\n", "Epoch 9/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.3484Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.3482 - val_loss: 0.4631\n", "Epoch 10/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.3263Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.3263 - val_loss: 0.5693\n", "Epoch 11/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.3034Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.3035 - val_loss: 0.4507\n", "Epoch 12/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2936Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2937 - val_loss: 0.9433\n", "Epoch 13/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2747Epoch 1/300\n", "1000/1000 [==============================] - 285s 285ms/step - loss: 0.2750 - val_loss: 0.3620\n", "Epoch 14/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2695Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2695 - val_loss: 0.6077\n", "Epoch 15/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2553Epoch 1/300\n", "1000/1000 [==============================] - 285s 285ms/step - loss: 0.2553 - val_loss: 0.3176\n", "Epoch 16/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2414Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2414 - val_loss: 0.4998\n", "Epoch 17/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2353Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2351 - val_loss: 0.2727\n", "Epoch 18/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2253Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2253 - val_loss: 0.3441\n", "Epoch 19/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2204Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2204 - val_loss: 1.2290\n", "Epoch 20/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.2075Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.2075 - val_loss: 0.2482\n", "Epoch 21/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1984Epoch 1/300\n", "1000/1000 [==============================] - 283s 283ms/step - loss: 0.1984 - val_loss: 0.3572\n", "Epoch 22/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1937Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.1938 - val_loss: 0.3007\n", "Epoch 23/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1873Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.1873 - val_loss: 0.1884\n", "Epoch 24/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1884Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.1884 - val_loss: 1.1239\n", "Epoch 25/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1899Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.1899 - val_loss: 0.2056\n", "Epoch 26/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1886Epoch 1/300\n", "1000/1000 [==============================] - 285s 285ms/step - loss: 0.1886 - val_loss: 0.6809\n", "Epoch 27/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1961Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.1960 - val_loss: 0.2049\n", "Epoch 28/300\n", " 999/1000 [============================>.] - ETA: 0s - loss: 0.1735Epoch 1/300\n", "1000/1000 [==============================] - 284s 284ms/step - loss: 0.1734 - val_loss: 0.2017\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tensorflow.keras.callbacks import EarlyStopping, CSVLogger, ModelCheckpoint\n", "from tensorflow.keras.optimizers import *\n", "import gc \n", "\n", "# model.load_weights('gru_DigitAndEnglist_ctc_best.h5') # gru_DigitAndEnglist_ctc_best_0924\n", "# model.load_weights('gru_DigitAndEnglist_ctc_best_0927.h5') #DigitAndEnglist_cnn5gru_ctc_best2.h5 DigitAndEnglist_cnn5gru_ctc_best\n", "# 'mobilenet_DigitAndEnglist_ctc_best_32.h5' 损失下降到0.2左右 准确率97 \n", "# model.load_weights('gru_english4to6_ctc_best_1012.h5')\n", "\n", "train_data = CaptchaSequence(characters, batch_size=128, steps=1000,input_length=12, label_length=6,chars_len=(4, 6)) # (characters, batch_size=128, steps=1000)\n", "valid_data = CaptchaSequence(characters, batch_size=128, steps=100,input_length=12, label_length=6,chars_len=(4, 6)) # (characters, batch_size=128, steps=100)\n", "\n", "callbacks = [EarlyStopping(patience=5),ModelCheckpoint('up_low_case_ctc_best_20250109.h5', save_best_only=True)]\n", "model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=Adam(1e-3, amsgrad=True))\n", "model.fit_generator(train_data, epochs=300, validation_data=valid_data, workers=4, use_multiprocessing=True,\n", " callbacks=callbacks)" ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/50\n", "1000/1000 [==============================] - 556s 556ms/step - loss: 0.2257 - val_loss: 0.2286\n", "Epoch 2/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.2164 - val_loss: 0.2028\n", "Epoch 3/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.2111 - val_loss: 0.2176\n", "Epoch 4/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.2016 - val_loss: 0.2428\n", "Epoch 5/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1965 - val_loss: 0.1802\n", "Epoch 6/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1857 - val_loss: 0.1937\n", "Epoch 7/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1754 - val_loss: 0.1837\n", "Epoch 8/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1745 - val_loss: 0.1606\n", "Epoch 9/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1675 - val_loss: 0.1966\n", "Epoch 10/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1655 - val_loss: 0.1582\n", "Epoch 11/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1601 - val_loss: 0.1566\n", "Epoch 12/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1537 - val_loss: 0.1571\n", "Epoch 13/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1479 - val_loss: 0.1524\n", "Epoch 14/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1436 - val_loss: 0.1463\n", "Epoch 15/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1423 - val_loss: 0.1447\n", "Epoch 16/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1391 - val_loss: 0.1399\n", "Epoch 17/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1373 - val_loss: 0.1583\n", "Epoch 18/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1343 - val_loss: 0.1405\n", "Epoch 19/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1315 - val_loss: 0.1326\n", "Epoch 20/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1283 - val_loss: 0.1264\n", "Epoch 21/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1267 - val_loss: 0.1407\n", "Epoch 22/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1255 - val_loss: 0.1283\n", "Epoch 23/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1206 - val_loss: 0.1156\n", "Epoch 24/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1179 - val_loss: 0.1111\n", "Epoch 25/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1187 - val_loss: 0.1653\n", "Epoch 26/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1153 - val_loss: 0.1498\n", "Epoch 27/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1132 - val_loss: 0.1097\n", "Epoch 28/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1114 - val_loss: 0.1133\n", "Epoch 29/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1125 - val_loss: 0.1230\n", "Epoch 30/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1083 - val_loss: 0.1136\n", "Epoch 31/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1057 - val_loss: 0.1076\n", "Epoch 32/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1028 - val_loss: 0.0947\n", "Epoch 33/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1051 - val_loss: 0.1104\n", "Epoch 34/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1014 - val_loss: 0.1047\n", "Epoch 35/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.1006 - val_loss: 0.0970\n", "Epoch 36/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.0990 - val_loss: 0.0887\n", "Epoch 37/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.1009 - val_loss: 0.0945\n", "Epoch 38/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.0953 - val_loss: 0.0990\n", "Epoch 39/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.0952 - val_loss: 0.0960\n", "Epoch 40/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.0936 - val_loss: 0.0919\n", "Epoch 41/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.0929 - val_loss: 0.1007\n", "Epoch 42/50\n", "1000/1000 [==============================] - 544s 544ms/step - loss: 0.0911 - val_loss: 0.0959\n", "Epoch 43/50\n", "1000/1000 [==============================] - 545s 545ms/step - loss: 0.0934 - val_loss: 0.0872\n", "Epoch 44/50\n", "1000/1000 [==============================] - 552s 552ms/step - loss: 0.0901 - val_loss: 0.0892\n", "Epoch 45/50\n", "1000/1000 [==============================] - 543s 543ms/step - loss: 0.0922 - val_loss: 0.0819\n", "Epoch 46/50\n", "1000/1000 [==============================] - 543s 543ms/step - loss: 0.0899 - val_loss: 0.0881\n", "Epoch 47/50\n", "1000/1000 [==============================] - 543s 543ms/step - loss: 0.0888 - val_loss: 0.0805\n", "Epoch 48/50\n", "1000/1000 [==============================] - 600s 600ms/step - loss: 0.0872 - val_loss: 0.0859\n", "Epoch 49/50\n", "1000/1000 [==============================] - 687s 687ms/step - loss: 0.0866 - val_loss: 0.0919\n", "Epoch 50/50\n", "1000/1000 [==============================] - 692s 692ms/step - loss: 0.0838 - val_loss: 0.0908\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from tensorflow.keras.callbacks import EarlyStopping, CSVLogger, ModelCheckpoint\n", "from tensorflow.keras.optimizers import *\n", "import gc \n", "train_data = CaptchaSequence(characters, batch_size=256, steps=1000,input_length=12, label_length=6,chars_len=(4, 6)) # (characters, batch_size=128, steps=1000)\n", "valid_data = CaptchaSequence(characters, batch_size=128, steps=100,input_length=12, label_length=6,chars_len=(4, 6)) # (characters, batch_size=128, steps=100)\n", "\n", "# callbacks = [CSVLogger('ctc.csv', append=True), ModelCheckpoint('gru_english4to6_ctc_best_20220829.h5', save_best_only=True)]\n", "callbacks = [CSVLogger('ctc.csv', append=True), ModelCheckpoint('gru_english4to6_ctc_best_20230404.h5', save_best_only=True)]\n", "# model.load_weights('gru_english4to6_ctc_best_5.h5') # 以前英文数字模型预测\n", "# model.load_weights('gru_english4to6_ctc_best_1014.h5') # lose:0.0203 val_loss:0.012\n", "# model.load_weights('gru_english4to6_ctc_best_1102.h5') # loss: 0.0178 - val_loss: 0.0120\n", "# model.load_weights('gru_DigitAndEnglist_base_model_20220628.h5') # loss: 0.0162 - val_loss: 0.0564\n", "# model.load_weights('gru_english4to6_ctc_best_20220829.h5') # loss: 0.0162 - val_loss: 0.0564\n", "model.load_weights('gru_english4to6_ctc_best_20230404.h5') # loss: 0.0162 - val_loss: 0.0564\n", "# gru_DigitAndEnglist_ctc_best.h5 mobilenet_DigitAndEnglist_ctc_best0930\n", "# callbacks = [CSVLogger('ctc.csv', append=True), ModelCheckpoint('DigitAndEnglist_cnn5gru_ctc_best2.h5', save_best_only=True)]\n", "# model.load_weights('DigitAndEnglist_cnn5gru_ctc_best2.h5')\n", "model.compile(loss={'ctc': lambda y_true, y_pred: y_pred}, optimizer=Adam(1e-4, amsgrad=True))\n", "model.fit_generator(train_data, epochs=50, validation_data=valid_data, workers=4, use_multiprocessing=True,\n", " callbacks=callbacks)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 准确率回调函数\n", "from tqdm import tqdm\n", "\n", "def evaluate(model, batch_size=128, steps=1):\n", " '''\n", " 准确率验证函数,每批次的验证码长度必须一致\n", " ''' \n", " batch_acc = 0\n", " valid_data = CaptchaSequence(characters, batch_size, steps)\n", " for i in range(len(valid_data)):\n", " [X_test, y_test, _, _], _ = valid_data[i]\n", " y_pred = base_model.predict(X_test)\n", " shape = y_pred.shape\n", " # out = K.get_value(K.ctc_decode(y_pred, input_length=np.ones(shape[0])*shape[1],)[0][0])[:, :4]\n", " out = K.get_value(K.ctc_decode(y_pred, input_length=np.ones(shape[0])*shape[1],)[0][0])[:, :]\n", " # print(y_test)\n", " # print(type(y_test))\n", " # print(y_test[y_test<10, axis=1])\n", " # print(out)\n", " if out.shape[1] >= 4:\n", " batch_acc += (y_test[:,:out.shape[1]] == out).all(axis=1).mean()\n", " return batch_acc / steps\n", "evaluate(base_model,batch_size=256, steps=10)" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [], "source": [ "# base_model.save('gru_DigitAndEnglist_base_model1014.h5') # 保存基础模型,预测用\n", "# base_model.save('gru_DigitAndEnglist_base_model_1103.h5') # 保存基础模型,预测用\n", "# base_model.save('gru_DigitAndEnglist_base_model_20220829.h5') # 保存基础模型,预测用\n", "base_model.save('gru_up_low_case_base_model_20250110.h5') # 保存基础模型,预测用\n", "x= base_model.output # [batch_sizes, series_length, classes]\n", "input_length = Input(batch_shape=[None], dtype='int32')\n", "ctc_decode = K.ctc_decode(x, input_length=input_length * K.shape(x)[1])\n", "decode = K.function([base_model.input, input_length], [ctc_decode[0][0]])" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "out l5S9S\n" ] }, { "data": { "text/plain": [ "Text(0.5, 1.0, 'l5S9S')" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 163, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# img = Image.open('FileInfo0508/31c1f481-912a-11ea-b24d-408d5cd36814_cmftq.jpg') # 波浪线验证码\n", "# img = Image.open('/data/captcha/shensebeijingsandian/pgv4_d58a8328-c425-11ea-be07-ecf4bbc56acd.jpg') # 深色背景验证码\n", "# img = Image.open('/data/captcha/0ad9.jpg').resize((200,70), Image.BILINEAR) #小图噪点 \n", "imgs = glob.glob('/data/captcha/label_english/超级鹰导出图片-2023-04-03/*.jpg')[400:]\n", "img = Image.open(imgs[9])\n", "img = img.resize((width, height), Image.BILINEAR)\n", "def img2array(image, width=width,height=height):\n", " X = np.zeros((1, height, width, 3))\n", " image = image.convert('L')\n", " px = [image.getpixel((x,2)) for x in range(image.size[0])]\n", " c = Counter(px)\n", " m = c.most_common()\n", " bg = m[0][0]\n", " bg_img = Image.new(mode='L', size=(width,height), color=bg)\n", " bg_img.paste(image, box=(0, 0)) # \n", " X[0] = np.expand_dims(np.array(bg_img)/255.0, axis=-1)\n", " return X\n", "img_arr = img2array(img)\n", "\n", "out_pre = decode([img_arr, np.ones(img_arr.shape[0])])\n", "out = ''.join([characters[x] for x in out_pre[0][0]])\n", "plt.imshow(img)\n", "print('out', out)\n", "plt.title(out)" ] }, { "cell_type": "code", "execution_count": 94, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pred:T2Hww\ttrue:T2Hw\n", "pred:kwxb\ttrue:kvxb\n", "pred:RNAY\ttrue:RNXY\n", "pred:Jlkq\ttrue:JIkq\n", "pred:3644\ttrue:3014\n", "pred:3511\ttrue:35JL\n", "pred:37fj\ttrue:37fi\n", "pred:79Sv\ttrue:Z9Sv\n", "pred:Mzy1X\ttrue:MzVlX\n", "pred:FVcpvs\ttrue:FVcDvs\n", "pred:xca\ttrue:xxca\n", "pred:pnA\ttrue:pnvA\n", "pred:5ZQo\ttrue:SZQ0\n", "pred:gdfls\ttrue:gdflis\n", "pred:mnuc\ttrue:mnic\n", "pred:58907\ttrue:5897\n", "pred:tAVRB\ttrue:tArRB\n", "pred:pcgpa\ttrue:poopa\n", "pred:hjfa\ttrue:hifa\n", "pred:um8a\ttrue:un8a\n", "pred:FuPl\ttrue:FuPI\n", "pred:47Qj\ttrue:47qi\n", "pred:VAQD\ttrue:VAOD\n", "pred:vzhd\ttrue:wzhd\n", "pred:7FaQ\ttrue:7YaQ\n", "pred:1108\ttrue:7108\n", "pred:vmfrxs\ttrue:vmfixs\n", "pred:fvyfw\ttrue:fvyffw\n", "pred:e86\ttrue:eT86\n", "pred:IjY4\ttrue:ljY4\n", "pred:ltrf\ttrue:llrf\n", "pred:14244\ttrue:1424\n", "pred:OebB5\ttrue:0ebB5\n", "pred:n6V0\ttrue:n6Y0\n", "pred:TQGI\ttrue:TQGl\n", "pred:zwvj\ttrue:zwvl\n", "pred:WiQ3\ttrue:wiQX\n", "pred:syptt\ttrue:syPtt\n", "pred:webn\ttrue:wobn\n", "pred:5288\ttrue:5238\n", "pred:MH67\ttrue:MH6Z\n", "pred:lezs\ttrue:tczs\n", "pred:VEQQU\ttrue:VEQGU\n", "pred:0WNQf\ttrue:0WwNQf\n", "pred:y9xbe9\ttrue:y9Xbe9\n", "pred:ld36\ttrue:Id36\n", "pred:kctm\ttrue:kclm\n", "pred:l2uAi\ttrue:I2uAi\n", "pred:lTTK3\ttrue:LTTK3\n", "pred:67734\ttrue:677734\n", "pred:3juw\ttrue:3iuw\n", "pred:5533\ttrue:5537\n", "pred:eHsnRI\ttrue:eHsnRT\n", "pred:lloS\ttrue:IIoS\n", "54\n", "总耗时: 19.29806351661682\n", "正确数:946, 错误数:54, 总样本:1000, 准确率:0.9460\n" ] } ], "source": [ "import time\n", "data = CaptchaSequence(characters, batch_size=200, steps=5, input_length=12, chars_len=(6,6))\n", "# model.load_weights('gru_DigitAndEnglist_ctc_best_0927.h5') \n", "# model.load_weights('mobilenet_DigitAndEnglist_ctc_best0930.h5')\n", "# model.load_weights('mobilenet_DigitAndEnglist_ctc_best_32.h5')\n", "# model.load_weights('gru_english4to6_ctc_best_5.h5') \n", "model.load_weights('gru_up_low_case_base_model_20250110.h5') \n", "pos = neg = 0\n", "t1 = time.time()\n", "err_img = []\n", "err_label = []\n", "for i in range(len(data)): \n", " flag = False\n", " [X_test, y_test, input_len, label_len], _ = data[i]\n", " for idx in range(len(X_test)):\n", " in_data = X_test[idx:idx+1]\n", " out_pre = decode([in_data, np.ones(in_data.shape[0])])\n", "# print(out_pre)\n", " out = ''.join([characters[x] for x in out_pre[0][0]]) \n", " \n", " y_true = ''.join([characters[x] for x in y_test[idx] if x < len(characters)])\n", "# print('out', out, y_true)\n", " if out != y_true:\n", " err_img.append(X_test[idx])\n", " err_label.append('pre: %s, lab: %s'%(out, y_true))\n", " print('pred:' + str(out) + '\\ttrue:' + str(y_true))\n", " neg += 1\n", " flag = True\n", " else:\n", " pos += 1 \n", "print(len(err_img))\n", "\n", "t2 = time.time()\n", "print('总耗时:',t2-t1)\n", "print('正确数:%d, 错误数:%d, 总样本:%d, 准确率:%.4f'%(pos,neg,pos+neg, pos/(pos+neg)))\n", "# 正确数:952, 错误数:48, 总样本:1000, 准确率:0.9520" ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'pre: MIRZ, lab: MLRZ')" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 163, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "i = -2\n", "# plt.imshow(err_img[i].reshape((height, width)))\n", "plt.imshow(err_img[i])\n", "plt.title(err_label[i])\n", "# idx = 8\n", "# img_arr = X_test[idx:idx+1]\n", "# out_pre = decode([img_arr, np.ones(img_arr.shape[0])])\n", "# out = ''.join([characters[x] for x in out_pre[0][0]])\n", "# y_true = ''.join([characters[x] for x in y_test[idx] if x < len(characters)])\n", "# plt.imshow(img_arr.reshape((height, width)))\n", "# print('out', out)\n", "# plt.title(out)\n", "# i = 9\n", "# print(model.layers[i].name)\n", "# model.layers[i].get_weights() # 打印某层权重\n", "# height" ] }, { "cell_type": "code", "execution_count": 91, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "正确数:671, 总数:1000, 准确率:0.6710\n" ] } ], "source": [ "'''预测真实验证码,统计准确率'''\n", "import re\n", "pos = neg = 0\n", "n = 0\n", "# model.load_weights('gru_english4to6_ctc_best_1014.h5')\n", "# model.load_weights('gru_english4to6_ctc_best_1102.h5')\n", "path51 = 'FileInfo0508_2/*.jpg' # 波浪线验证码 正确数:714, 总数:715, 准确率:0.9986\n", "#正确数:706, 总数:715, 准确率:0.9874\n", "path52 = '/data/captcha/label_english/100_30/*.jpg' #正确数:0, 总数:209, 准确率:0.0000 正确数:174, 总数:209, 准确率:0.8325\n", "# 正确数:168, 总数:209, 准确率:0.8038 正确数:976, 总数:1000, 准确率:0.9760\n", "path1 = '/data/captcha/label_english/70_26/*.jpg' #正确数:588, 总数:1505, 准确率:0.3907 正确数:1500, 总数:1505, 准确率:0.9967\n", "path2 = '/data/captcha/label_english/52_21/*.jpg' # 正确数:1122, 总数:2822, 准确率:0.3976 正确数:2761, 总数:2822, 准确率:0.9784\n", "path3 = '/data/captcha/label_english/100_25/*.jpg' #正确数:6488, 总数:6503, 准确率:0.9977 正确数:6503, 总数:6503, 准确率:1.0000\n", "path4 = '/data/captcha/shensebeijingsandian/*.jpg' #正确数:543, 总数:544, 准确率:0.9982\n", "path5 = '/data/captcha/shensexiansandian/*.jpg'#正确数:499, 总数:501, 准确率:0.9960\n", "# 正确数:493, 总数:501, 准确率:0.9840\n", "path6 = '/data/esa_sdk/gan/english/*.jpg' #正确数:12, 总数:23, 准确率:0.5217 正确数:18, 总数:23, 准确率:0.7826\n", "# 正确数:18, 总数:23, 准确率:0.7826\n", "path7 = '/data/captcha/label_english/90_38/*.jpg' #正确数:226, 总数:243, 准确率:0.9300\n", "path8 = '/data/captcha/label_english/70_25/*.jpg' #正确数:69, 总数:70, 准确率:0.9857 正确数:46, 总数:49, 准确率:0.9388\n", "\n", "# model.load_weights('gru_english4to6_ctc_best_20220829.h5') \n", "err_imgs = []\n", "err_labels = []\n", "files = glob.glob(path52)\n", "# files = glob.glob('/data/captcha/label_english/200_80/*.jpg')[2000:]\n", "# files = glob.glob('/data/captcha/label_english/122_46/*.jpg')[:]\n", "sp = int(len(files)*0.8)\n", "sp = min(int(len(files)*0.8), 3000)\n", "for file in files[:][:1000]:\n", " try:\n", " img = Image.open(file)\n", " except:\n", " print('打开错误:',file)\n", " continue\n", " if re.search('FileInfo0508', file)!=None:\n", " label = file.split('_')[-1][:-4].lower().replace('1','l')\n", " elif re.search('200_80', file):\n", " file_name = file.split('/')[-1][:-4]\n", " label = name_dic[file_name].lower()\n", " else:\n", " label = file.split('_')[-1][:-4].lower()\n", "# label = file.split('\\\\')[-1].split('_')[-1][:-4]\n", "# label = file.split('/')[-1].split('_')[0]\n", " img = img.resize((width, height), Image.BILINEAR)\n", "\n", "# X = np.zeros((1, height, width, 1))\n", "# img = img.convert('L')\n", "# X[0] = np.expand_dims(np.array(img)/255.0, axis=-1)\n", " \n", " X = np.zeros((1, height, width, 3))\n", " img = img.convert('RGB')\n", " X[0] = np.array(img)/255.0\n", " \n", " out_pre = decode([X, np.ones(X.shape[0])])\n", " out = ''.join([characters[x] for x in out_pre[0][0]])\n", " if label.lower() == out.lower():\n", " pos += 1\n", " else:\n", " neg += 1\n", " print(label, out, label==out)\n", " err_imgs.append(img)\n", " err_labels.append('label:'+label+' pred:'+out)\n", " n += 1\n", "# if n > 100:\n", "# break\n", "print('正确数:%d, 总数:%d, 准确率:%.4f'%(pos, pos+neg, pos/(pos+neg)))" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/data/python/lishimin/linuxPro/captcha_pro\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "image/png": { "height": 163, "width": 369 }, "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "i = 0\n", "plt.imshow(err_imgs[i])\n", "plt.title(err_labels[i])\n", "import os\n", "print(os.getcwd())" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CpWV CpWW False\n", "正确数:54, 总数:55, 准确率:0.9818\n" ] } ], "source": [ "err_imgs = []\n", "err_labels = []\n", "pos = neg = 0\n", "for file in chaojiying_test:\n", " try:\n", " img = Image.open(file)\n", " except:\n", " print('打开错误:',file)\n", " continue\n", " label = file.split('/')[-1][:-4]\n", " img = img.resize((width, height), Image.BILINEAR)\n", "\n", " X = np.zeros((1, height, width, 3))\n", " img = img.convert('RGB')\n", " X[0] = np.array(img)/255.0\n", " \n", " out_pre = decode([X, np.ones(X.shape[0])])\n", " out = ''.join([characters[x] for x in out_pre[0][0]])\n", " if label.lower() == out.lower():\n", " pos += 1\n", " else:\n", " neg += 1\n", " print(label, out, label==out)\n", " err_imgs.append(img)\n", " err_labels.append('label:'+label+' pred:'+out)\n", "print('正确数:%d, 总数:%d, 准确率:%.4f'%(pos, pos+neg, pos/(pos+neg))) \n", " " ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.13" } }, "nbformat": 4, "nbformat_minor": 2 }