验证码:EasyDL 机器学习识别与云码平台一站式识别

目录

EasyDL 机器学习识别(实践:京东商城)

(一)批量获取验证码图片

(二)EasyDL机器学习(百度智能云)

(三)调用EasyDLAPI接口识别验证码

云码平台一站式识别(实战:豆瓣网)

(一)获取验证码图片

(二)验证码识别

(三)动态获取验证码


EasyDL 机器学习识别(实践:京东商城)

(一)批量获取验证码图片

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
import time
import requestsservice = Service(executable_path="../_resources/chromedriver")
driver = webdriver.Chrome(service=service)
driver.get("https://passport.jd.com/uc/login")select = driver.find_element(By.XPATH, '/html/body/div[2]/div[2]/div[1]/div/div[3]/a')
select.click()username = driver.find_element(By.XPATH, '//*[@id="loginname"]')
ActionChains(driver).pause(0.5).click(username).send_keys("xxxxxxxxxx").parform()password = driver.find_element(By.XPATH, '//*[@id="nloginpwd"]')
ActionChains(driver).pause(0.5).click(password).send_keys("xxxxxxxxxx").parform()submit = driver.find_element(By.XPATH, '//*[@id="loginsubmit"]')
submit.click()for i in range(30):time.sleep(1)img = driver.find_element(By.XPATH, '/html/body/div[4]/div/div/div/div[1]/div[2]/div[1]/img')img.screenshot("./img/{}.png".format(i))time.sleep(0.5)refresh = driver.find_element(By.XPATH, '/html/body/div[4]/div/div/div/div[1]/div[2]/div[2]')refresh.click()time.sleep(3)
driver.quit()

(二)EasyDL机器学习(百度智能云)

(1)EasyDL零门槛AI开发平台-立即使用-物体检测(图像)

(2)创建模型:填写模型名称(自定义例如:myModel)+业务描述(自定义例如:Captcha Recognition)+完成创建

(3)数据总览中的创建数据集:填写数据集名称(自定义例如:myModelData)+完成

(4)数据总览中在上述数据集中:点击导入+无标注信息+导入方式:本地导入+上传图片(刚才代码抓取的所有图片)+确认并返回

(4)导入成功后在线标注:右上角添加标签(自定义例如:Target)后确定+标注每个图片的黑色区域即滑块移动位置

(5)标注好后训练模型:选择模型名称+添加数据集+公有云部署+开始训练+等待训练结束+查看模型效果+申请发布

(6)发布模型:公有云部署+提交申请

(三)调用EasyDLAPI接口识别验证码

(1)在上述模型中点击服务详情+查看API文档+点击EasyDL版控制台+公有云部署:应用列表+点击创建应用+输入应用名称+选择接口EasyDL+立即创建+获得此应用的API KEY和Secret Key

(2)再次来到API文档:导航栏中:模型发布-公有云部署-物体检测API调用文档中的复制代码创建新py文件修改代码如下:(通过main.png来测试)

import json
import base64
import requestsIMAGE_FILEPATH = "./img/main.png"PARAMS = {"threshold": 0.3}# 服务详情 中的 接口地址
MODEL_API_URL = "【您的API地址】"# 调用 API 需要 ACCESS_TOKEN。若已有 ACCESS_TOKEN 则于下方填入该字符串
# 否则,留空 ACCESS_TOKEN,于下方填入 该模型部署的 API_KEY 以及 SECRET_KEY,会自动申请并显示新 ACCESS_TOKEN
# ACCESS_TOKEN = "【您的ACESS_TOKEN】"
ACCESS_TOKEN = None
API_KEY = "【您的API_KEY】"
SECRET_KEY = "【您的SECRET_KEY】"print("1. 读取目标图片 '{}'".format(IMAGE_FILEPATH))
with open(IMAGE_FILEPATH, 'rb') as f:base64_data = base64.b64encode(f.read())base64_str = base64_data.decode('UTF8')
print("将 BASE64 编码后图片的字符串填入 PARAMS 的 'image' 字段")
PARAMS["image"] = base64_strif not ACCESS_TOKEN:print("2. ACCESS_TOKEN 为空,调用鉴权接口获取TOKEN")auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"               "&client_id={}&client_secret={}".format(API_KEY, SECRET_KEY)auth_resp = requests.get(auth_url)auth_resp_json = auth_resp.json()ACCESS_TOKEN = auth_resp_json["access_token"]print("新 ACCESS_TOKEN: {}".format(ACCESS_TOKEN))
else:print("2. 使用已有 ACCESS_TOKEN")print("3. 向模型接口 'MODEL_API_URL' 发送请求")
request_url = "{}?access_token={}".format(MODEL_API_URL, ACCESS_TOKEN)
response = requests.post(url=request_url, json=PARAMS)
response_json = response.json()
response_str = json.dumps(response_json, indent=4, ensure_ascii=False)
print("结果:
{}".format(response_str))

云码平台一站式识别(实战:豆瓣网)

(一)获取验证码图片

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
import time
import requestsservice = Service(executable_path="../_resources/chromedriver")
driver = webdriver.Chrome(service=service)
driver.get("https://www.douban.com/")
time.sleep(2)frame = driver.find_element(By.XPATH, '//*[@id="anony-reg-new"]/div/div[1]/iframe')
driver.switch_to.frame(frame)
time.sleep(0.5)select = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/ul[1]/li[2]')
select.click()username = driver.find_element(By.XPATH, '//*[@id="username"]')
ActionChains(driver).pause(0.5).click(username).send_keys("xxxxxxxxxx").parform()password = driver.find_element(By.XPATH, '//*[@id="password"]')
ActionChains(driver).pause(0.5).click(password).send_keys("xxxxxxxxxx").parform()submit = driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div[1]/div[5]/a')
submit.click()time.sleep(2)
driver.switch_to.frame("tcaptcha_iframe_dy")img = driver.find_element(By.XPATH, '//*[@id="slideBg"]')
img.screenshot("./img2/captcha.png")time.sleep(3)
driver.quit()

(二)验证码识别

云码-自动验证码识别平台:在线测试:点击单图滑块(截图)-上传刚获取的验证码图片-点击测试

以下为通过代码实现方法:登陆账号成功后点击个人中心-点击开发文档-点击python

修改文档代码如下(新建py文件名称为:ydm.py):

注意根据个人情况修改token

import json
import timeimport requests
import base64class YdmVerify(object):_custom_url = "http://api.jfbym.com/api/YmServer/customApi"_token = ""_headers = {'Content-Type': 'application/json'}def common_verify(self, image, verify_type="60000"):# 数英汉字类型# 通用数英1-4位 10110# 通用数英5-8位 10111# 通用数英9~11位 10112# 通用数英12位及以上 10113# 通用数英1~6位plus 10103# 定制-数英5位~qcs 9001# 定制-纯数字4位 193# 中文类型# 通用中文字符1~2位 10114# 通用中文字符 3~5位 10115# 通用中文字符6~8位 10116# 通用中文字符9位及以上 10117# 定制-XX西游苦行中文字符 10107# 计算类型# 通用数字计算题 50100# 通用中文计算题 50101# 定制-计算题 cni 452payload = {"image": base64.b64encode(image).decode(),"token": self._token,"type": verify_type}print(payload)resp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def slide_verify(self, slide_image, background_image, verify_type="20101"):# 滑块类型# 通用双图滑块  20111payload = {"slide_image": base64.b64encode(slide_image).decode(),"background_image": base64.b64encode(background_image).decode(),"token": self._token,"type": verify_type}resp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def sin_slide_verify(self, image, verify_type="20110"):# 通用单图滑块(截图)  20110payload = {"image": base64.b64encode(image).decode(),"token": self._token,"type": verify_type}resp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def traffic_slide_verify(self, seed, data, href, verify_type="900010"):# 定制-滑块协议slide_traffic  900010payload = {"seed": seed,"data": data,"href": href,"token": self._token,"type": verify_type}resp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def click_verify(self, image, label_image=None, extra=None, verify_type="30100"):# 通用任意点选1~4个坐标 30009# 通用文字点选1(extra,点选文字逗号隔开,原图) 30100# 定制-文字点选2(extra="click",原图) 30103# 定制-单图文字点选 30102# 定制-图标点选1(原图) 30104# 定制-图标点选2(原图,extra="icon") 30105# 定制-语序点选1(原图,extra="phrase") 30106# 定制-语序点选2(原图) 30107# 定制-空间推理点选1(原图,extra="请点击xxx") 30109# 定制-空间推理点选1(原图,extra="请_点击_小尺寸绿色物体。") 30110# 定制-tx空间点选(extra="请点击侧对着你的字母") 50009# 定制-tt_空间点选 30101# 定制-推理拼图1(原图,extra="交换2个图块") 30108# 定制-xy4九宫格点选(原图,label_image,image) 30008payload = {"image": base64.b64encode(image).decode(),# "label_image": base64.b64encode(label_image).decode(),"token": self._token,"type": verify_type}if extra:payload['extra'] = extraresp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def rotate(self, out_ring_image, inner_circle_image):# 定制-X度单图旋转  90007# payload = {#     "image": base64.b64encode(image).decode(),#     "token": self._token,#     "type": "90007"# }# 定制-Tt双图旋转,2张图,内圈图,外圈图  90004payload = {"out_ring_image": base64.b64encode(out_ring_image).decode(),"inner_circle_image": base64.b64encode(inner_circle_image).decode(),"token": self._token,"type": "90004"}resp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def google_verify(self, googlekey, pageurl, invisible=1, data_s=""):_headers = {'Content-Type': 'application/json'}"""第一步,创建验证码任务:param:return taskId : string 创建成功的任务ID"""url = "http://122.9.52.147/api/YmServer/funnelApi"payload = json.dumps({"token": self._token,# "type": "40011", ## v3"type": "40010",  ## v2"googlekey": googlekey,"enterprise": 1,  ## 是否为企业版"pageurl": pageurl,"invisible": invisible,"data-s": data_s,# 'action':"TEMPLATE" #V3必传})# 发送JSON格式的数据result = requests.request("POST", url, headers=_headers, data=payload).json()print(result)# {'msg': '识别成功', 'code': 10000, 'data': {'code': 0, 'captchaId': '51436618130', 'recordId': '74892'}}captcha_id = result.get('data').get("captchaId")record_id = result.get('data').get("recordId")times = 0while times < 150:try:url = f"http://122.9.52.147/api/YmServer/funnelApiResult"data = {"token": self._token,"captchaId": captcha_id,"recordId": record_id}result = requests.post(url, headers=_headers, json=data).json()print(result)# {'msg': '结果准备中,请稍后再试', 'code': 10009, 'data': []}if result['msg'] == "结果准备中,请稍后再试":time.sleep(5)times += 5continueif result['msg'] == '请求成功' and result['code'] == 10001:print(result['data']['data'])return result['data']['data']# {'msg': '请求成功', 'code': 10001, 'data': {'data': '03AGdBq2611GTOgA2v9HUpMMEUE70p6dwOtYyHJQK4xhdKF0Y8ouSGsFZt647SpJvZ22qinYrm6MYBJGFQxMUIApFfSBN6WTGspk6DmFdQAoWxynObRGV7qNMQOjZ_m4w3_6iRu8SJ3vSUXH_HHuA7wXARJbKEpU4J4R921NfpKdahgeFD8rK1CFYAqLd5fz4l-8_VRmRE83dRSfkgyTN338evQ1doWKJRipZbk4ie-89Ud0KGdOsP4QzG3stRZgj2oaEoMDSAP62vxKGYqtDEqTcwtlgo-ot3rF5SmntaoKGwcKPo0NrekWA5gtj0vqKLU6lY2GcnSci_tgBzBwuH40uvyR1PFu02VK_E44mopJ7FOO4cUukNaLGqypU2YCA8QuaaebOIoCMU7RGqGs_41RYNCG1GSdthiwcwk2hHFbi-TXuICXSwh4Er5mgVW9A3t_9Ndp0eJcyr3HtuJrcA7BtlcgruuQxK5h4Ew4ert4KPH_aQGN9ww5VsUtbSManzUDnUOs7aEdvFk1DOOPmLys-aX20ZFN2CcQcZZSO-7HZpZZt3EDeWWE5S02HFDY8gl3_0xqIts8774Tr4GMVJaddG0NR6pcBFC11FqNcK2a18gM3gaKDy3_2ZMeSU4nj4NWwoAhPjQN2BS8JxX4kKVpX4rD959kc93vczVD3TYD6_4GJahGSpBvM7Y5_GGIdLL8imXde1R35mZnEcFYXQ40zcy3DdJFkk_gzGTVOEb1Q1IZpjMxzCxyGgwjgL9dtDIgst5H5CSZoerX_Lz-DmsBvYIYZdpbPLEMROx9MODImaEw8Cp6M8Xj7_foijiGE9hh-pzJSTlKl3HytiSUyJJ7r1BssrX5C_TFWxl0IXNg8azP8H-ZIOWwnYlMWCS1w9piHdoLg5zACiYIN3Txdlsvi61MuPmzJggJd1_dlyMdAlzb5_zdfweqj0_Ko1ODP378YT7sV7LECgRj5QJU6sF5nlf4m2g5sFypBw9GFAkEE-OaWGYxRJOy2ioU41ggAJIkcza2B_N5AL2KLROtm0-c2MxplM4ZzHxrUv9A24zlgzo3Pz4NONwU_gaOcDB7j1dZKXD8UaoIrZv0BTd8JeojYowm9Usdg7Rt4Fpo_vDLJdrEUfbxVlXieDD9Fr1fu72-d4AduT_J3n-rIhyX4gFav-KfP-qOxqOZsmjXZirsBxZs7042NYeirRYnLv35cxIAJARz03FJmeKViUivwC5mCWw64hjRad9XyyBOP2n8KFOrTXhPskC-WwEfksGtfLxi6VW76FHGvRdwHXzMwVfNqe3P5H_WZUc-vxeTAsTnqZz3WA97lM4MLrX0nTZYgXxCEiS6raSOiEMqcx_Nv7Zxre-abj4LZRbFpH8nx1SEiaOV2Dm-a1iPFEmCs0L4kDtt6VImSVIQaTOAd3KFSo7W_XTvRPsQJOtblrcKyuagztX_Yr0lT0YqN9I9MZAARo7M5OfwSLJW16rdmp4NuRefEvNPNHO2cVh1Xha1qNGuF_QDvWFFmWG0Y6IbRqLmF-Dv8BY4TWyOeVnADJftGQw2QSr8RmbCHryA'}}except Exception as e:print(e)continuedef fun_captcha_verify(self, publickey, pageurl, verify_type="40007"):# 定制类接口-Hcaptcha 40007payload = {"publickey": publickey,"pageurl": pageurl,"token": self._token,"type": verify_type}resp = requests.post(self._custom_url, headers=self._headers, data=json.dumps(payload))print(resp.text)return resp.json()['data']['data']def hcaptcha_verify(self):# 定制类接口-Hcaptcha_headers = {'Content-Type': 'application/json'}_custom_url = "http://api.jfbym.com/api/YmServer/funnelApi"payload = {"sitekey": "","pageurl": "","token": self._token,"type": '50013'}result = requests.post(_custom_url, headers=_headers, data=json.dumps(payload)).json()print(result)captcha_id = result.get('data').get("captchaId")record_id = result.get('data').get("recordId")times = 0while times < 150:try:url = f"http://api.jfbym.com/api/YmServer/funnelApiResult"data = {"token": self._token,"captchaId": captcha_id,"recordId": record_id}result = requests.post(url, headers=_headers, json=data).json()print(result)# {'msg': '结果准备中,请稍后再试', 'code': 10009, 'data': []}if result['msg'] == "结果准备中,请稍后再试":time.sleep(5)times += 5continueif result['msg'] == '请求成功' and result['code'] == 10001:print(result['data']['data'])return result['data']['data']# {'msg': '请求成功', 'code': 10001, 'data': {'data': '03AGdBq2611GTOgA2v9HUpMMEUE70p6dwOtYyHJQK4xhdKF0Y8ouSGsFZt647SpJvZ22qinYrm6MYBJGFQxMUIApFfSBN6WTGspk6DmFdQAoWxynObRGV7qNMQOjZ_m4w3_6iRu8SJ3vSUXH_HHuA7wXARJbKEpU4J4R921NfpKdahgeFD8rK1CFYAqLd5fz4l-8_VRmRE83dRSfkgyTN338evQ1doWKJRipZbk4ie-89Ud0KGdOsP4QzG3stRZgj2oaEoMDSAP62vxKGYqtDEqTcwtlgo-ot3rF5SmntaoKGwcKPo0NrekWA5gtj0vqKLU6lY2GcnSci_tgBzBwuH40uvyR1PFu02VK_E44mopJ7FOO4cUukNaLGqypU2YCA8QuaaebOIoCMU7RGqGs_41RYNCG1GSdthiwcwk2hHFbi-TXuICXSwh4Er5mgVW9A3t_9Ndp0eJcyr3HtuJrcA7BtlcgruuQxK5h4Ew4ert4KPH_aQGN9ww5VsUtbSManzUDnUOs7aEdvFk1DOOPmLys-aX20ZFN2CcQcZZSO-7HZpZZt3EDeWWE5S02HFDY8gl3_0xqIts8774Tr4GMVJaddG0NR6pcBFC11FqNcK2a18gM3gaKDy3_2ZMeSU4nj4NWwoAhPjQN2BS8JxX4kKVpX4rD959kc93vczVD3TYD6_4GJahGSpBvM7Y5_GGIdLL8imXde1R35mZnEcFYXQ40zcy3DdJFkk_gzGTVOEb1Q1IZpjMxzCxyGgwjgL9dtDIgst5H5CSZoerX_Lz-DmsBvYIYZdpbPLEMROx9MODImaEw8Cp6M8Xj7_foijiGE9hh-pzJSTlKl3HytiSUyJJ7r1BssrX5C_TFWxl0IXNg8azP8H-ZIOWwnYlMWCS1w9piHdoLg5zACiYIN3Txdlsvi61MuPmzJggJd1_dlyMdAlzb5_zdfweqj0_Ko1ODP378YT7sV7LECgRj5QJU6sF5nlf4m2g5sFypBw9GFAkEE-OaWGYxRJOy2ioU41ggAJIkcza2B_N5AL2KLROtm0-c2MxplM4ZzHxrUv9A24zlgzo3Pz4NONwU_gaOcDB7j1dZKXD8UaoIrZv0BTd8JeojYowm9Usdg7Rt4Fpo_vDLJdrEUfbxVlXieDD9Fr1fu72-d4AduT_J3n-rIhyX4gFav-KfP-qOxqOZsmjXZirsBxZs7042NYeirRYnLv35cxIAJARz03FJmeKViUivwC5mCWw64hjRad9XyyBOP2n8KFOrTXhPskC-WwEfksGtfLxi6VW76FHGvRdwHXzMwVfNqe3P5H_WZUc-vxeTAsTnqZz3WA97lM4MLrX0nTZYgXxCEiS6raSOiEMqcx_Nv7Zxre-abj4LZRbFpH8nx1SEiaOV2Dm-a1iPFEmCs0L4kDtt6VImSVIQaTOAd3KFSo7W_XTvRPsQJOtblrcKyuagztX_Yr0lT0YqN9I9MZAARo7M5OfwSLJW16rdmp4NuRefEvNPNHO2cVh1Xha1qNGuF_QDvWFFmWG0Y6IbRqLmF-Dv8BY4TWyOeVnADJftGQw2QSr8RmbCHryA'}}except Exception as e:print(e)continue

新建py文件:

from ydm import YdmVerifyY = YdmVerify()
with open('./img2/captcha.png','rb') as f:s = f.read()
Y.sin_slide_verify(image=s)

(三)动态获取验证码

根据一和二结合代码,修改py文件

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver import ActionChains
import time
import requests
from ydm import YdmVerifyservice = Service(executable_path="../_resources/chromedriver")
driver = webdriver.Chrome(service=service)
driver.get("https://www.douban.com/")
time.sleep(2)frame = driver.find_element(By.XPATH, '//*[@id="anony-reg-new"]/div/div[1]/iframe')
driver.switch_to.frame(frame)
time.sleep(0.5)select = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/ul[1]/li[2]')
select.click()username = driver.find_element(By.XPATH, '//*[@id="username"]')
ActionChains(driver).pause(0.5).click(username).send_keys("xxxxxxxxxx").parform()password = driver.find_element(By.XPATH, '//*[@id="password"]')
ActionChains(driver).pause(0.5).click(password).send_keys("xxxxxxxxxx").parform()submit = driver.find_element(By.XPATH, '/html/body/div[1]/div[2]/div[1]/div[5]/a')
submit.click()time.sleep(2)
driver.switch_to.frame("tcaptcha_iframe_dy")img = driver.find_element(By.XPATH, '//*[@id="slideBg"]')
img.screenshot("./img2/captcha.png")
time.sleep(1)Y = YdmVerify()
with open('./img2/captcha.png','rb') as f:s = f.read()
Y.sin_slide_verify(image=s)time.sleep(3)
driver.quit()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/144574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bclinux aarch64 ceph 14.2.10 对象存储 http网关 CEPH OBJECT GATEWAY Civetweb

相关内容 bclinux aarch64 ceph 14.2.10 文件存储 Ceph File System, 需要部署mds&#xff1a; ceph-deploy mds-CSDN博客 ceph-deploy bclinux aarch64 ceph 14.2.10【3】vdbench fsd 文件系统测试-CSDN博客 ceph-deploy bclinux aarch64 ceph 14.2.10【2】vdbench rbd 块设…

unity shaderGraph实例-扫描效果

文章目录 效果展示整体结构各区域内容区域1区域2区域3区域4区域5区域6GraphSetttings注意事项使用方法 效果展示 整体结构 各区域内容 区域1 用场景深度减去顶点的View空间的视野深度&#xff08;Z值&#xff09;&#xff0c;这里Z值需要乘-1是因为从相机看到的物体顶点的视野…

大模型的实践应用6-百度文心一言的基础模型ERNIE的详细介绍,与BERT模型的比较说明

大家好,我是微学AI,今天给大家讲一下大模型的实践应用6-百度文心一言的基础模型ERNIE的详细介绍,与BERT模型的比较说明。在大规模语料库上预先训练的BERT等神经语言表示模型可以很好地从纯文本中捕获丰富的语义模式,并通过微调的方式一致地提高各种NLP任务的性能。然而,现…

JPA与sboot整合

JPA (Java Persistence API) 是一种标准化的 Java ORM (Object Relational Mapping) 框架&#xff0c;用于将 Java 对象映射到关系型数据库中的表结构。它提供了一种面向对象的思维方式来处理数据存储和检索&#xff0c;使得开发人员能够更加方便地对数据库进行操作。 JPA 的主…

el-select组件绑定change怎么获取label和value值

组件中change回调只能获取到value,但是有时候需求是要传两个参数&#xff08;elementui 封装的change只能获取到value,我们可以通过原生事件去获取option值&#xff09;。 如果要在element组件上触发原生事件&#xff0c;一律都得加.native修饰符&#xff0c;否则无法触发事件。…

【论文精读】Pose-Free Neural Radiance Fields via Implicit Pose Regularization

今天读的是一篇发表在ICCV 2023上的文章&#xff0c;作者来自NTU。 文章地址&#xff1a;点击前往 文章目录 Abstract1 Intro2 Related Work3 Preliminary4 Proposed Method4.1 Overall Framework4.2 Scene Codebook Construction4.3 Pose-Guided View Reconstruction4.4 Train…

spring中的DI

【知识要点】 控制反转&#xff08;IOC&#xff09;将对象的创建权限交给第三方模块完成&#xff0c;第三方模块需要将创建好的对象&#xff0c;以某种合适的方式交给引用对象去使用&#xff0c;这个过程称为依赖注入&#xff08;DI&#xff09;。如&#xff1a;A对象如果需要…

golang 上传图片 --chatGPT

问&#xff1a;makeImgUpload(path string) 实现发送发送图片&#xff0c; 发送类型为 multipart/form-data gpt: 下面是一个简单的 makeImgUpload 函数的实现&#xff0c;用于发送图片并以 multipart/form-data 格式进行上传。请注意&#xff0c;此代码假设图片文件路径是正确…

分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1…

Spring 的面向切面编程(AOP)的使用场景有哪些?

Spring 的面向切面编程&#xff08;AOP&#xff09;的使用场景有哪些&#xff1f; 文章目录 Spring 的面向切面编程&#xff08;AOP&#xff09;的使用场景有哪些&#xff1f;一、日志记录1、说明2、代码示例 二、事务管理1、说明2、代码示例 三、性能监控1、说明2、代码示例 四…

leetcode做题笔记2760. 最长奇偶子数组

给你一个下标从 0 开始的整数数组 nums 和一个整数 threshold 。 请你从 nums 的子数组中找出以下标 l 开头、下标 r 结尾 (0 < l < r < nums.length) 且满足以下条件的 最长子数组 &#xff1a; nums[l] % 2 0对于范围 [l, r - 1] 内的所有下标 i &#xff0c;num…

贪心 455.分发饼干

455.分发饼干 题目&#xff1a; 小朋友胃口值数组g[i]&#xff0c;饼干尺寸数组 s[j]&#xff0c;当饼干尺寸s[j]大于等于g[i]的时候&#xff0c;对应小朋友被满足&#xff0c;小朋友每一个最多一块饼干 &#xff0c;求给定条件下最多被满足的小朋友数量。 思路&#xff1a;…

智慧农业新篇章:拓世法宝AI智能直播一体机助力乡村振兴与农业可持续发展

随着乡村振兴战略的深入推进&#xff0c;农业发展日益成为国家关注的焦点。在这一大背景下&#xff0c;助农项目的兴起成为支持乡村振兴的一项重要举措。 乡村振兴战略的实施&#xff0c;得益于《关于推动文化产业赋能乡村振兴的意见》、《关于全面推进乡村振兴加快农业农村现…

Docker 安装 Jenkins 2.375【图文教程】

文章目录 Jenkins镜像简介Jenkins 安装及配置第 1 步: 安装Jenkins创建jenkins容器初始化Jenkins解锁jenkins自定义jenkins第 2 步:必读内容Jenkins使用root用户操作修改 Debian 镜像为阿里云镜像第 3 步: 配置Jenkins安装Locale插件:修改为中文全局工具配置JDK安装Git安装…

0x80070002错误代码要怎么解决?修复0x80070002的方法

0x80070002错误代码&#xff0c;这个系统更新相关的错误&#xff0c;经常在进行系统备份或更新时出现&#xff0c;打乱了我们的步调。为了帮助大家解决问题&#xff0c;本文将探讨该错误0x80070002产生的原因&#xff0c;提供详细的解决步骤&#xff0c;并分享预防措施。 一.0x…

Hive入门--学习笔记

1&#xff0c;Apache Hive概述 定义&#xff1a; Hive是由Facebook开源用于解决海量结构化日志的数据统计&#xff0c;它是基于大数据生态圈Hadoop的一个数据仓库工具。 作用&#xff1a; Hive可以用于将结构化的数据文件【映射】为一张表&#xff0c;并提供类SQL查询功能。 H…

leetcode每日一题-周复盘

前言 该系列文章用于我对一周中leetcode每日一题or其他不会的题的复盘总结。 一方面用于自己加深印象&#xff0c;另一方面也希望能对读者的算法能力有所帮助&#xff0c; 同时也希望能帮助同样坚持刷题的同学加深印象~ 该复盘对我来说比较容易的题我会复盘的比较粗糙&#…

clip4clip:an empirical study of clip for end to end video clip retrieval

广告深度学习计算&#xff1a;阿里妈妈智能创意服务优化使用CPU/GPU分离的多进程架构&#xff0c;加速阿里妈妈智能创意服务。https://mp.weixin.qq.com/s/_pjhXrUZVzFRtiwG2LhnkwCLIP4Clip: CLIP 再下一城&#xff0c;利用CLIP实现视频检索 - 知乎前言&#xff1a; OpenAI 的论…

ios 对话框UIAlertController放 tableview

//强弱引用 #define kWeakSelf(type)__weak typeof(type)weak##type type; -(void) showUIAlertTable {kWeakSelf(self)UIAlertController *alert [UIAlertController alertControllerWithTitle:NSLocalizedString("select_stu", nil) message:nil prefer…

Docker 和 Kubernetes:技术相同和不同之处

Docker和Kubernetes是当今最流行的容器化技术解决方案。本文将探讨Docker和Kubernetes的技术相似之处和不同之处&#xff0c;以帮助读者更好地理解这两种技术。 Docker和Kubernetes&#xff1a;当今最流行的容器化技术解决方案 在当今的IT领域&#xff0c;Docker和Kubernetes无…