chatgpt鑳借瘑鍒浘鐗囬噷鐨勬枃瀛楀悧 濡備綍鍒╃敤chat gpt鐢熸垚鍥剧墖
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
出chatgpt独享账号!内含5美元!仅需38元/个!独享永久使用!点击购买! 前言和小结 今天的另外一个案例是模拟有一定编程基础(新新手)的电脑工作者,让 ChatGPT 处理一些图片数据,需求复杂一些。 具体任务是帮助识别学生缴费图片的信息,便于复核。然后 …… ChatGPT 继续使用 python, 活干得不错。 后面换用 go 语言的过程中,由于 ChatGPT 每次会话字符串长度限制,输出不完整,结果有瑕疵,出现了两个 main 函数,然后修复了。然后使用腾讯云服务,同样原因同样问题,但是已经把最关键的调用部分写得很清楚了,追问了一下流程图也是对的。就不细究了。 Q1 写一个识别图片上的日期、学号和完成字样的算法这个问题涉及到计算机视觉领域的复杂算法和技术,需要使用多个步骤和技术来实现。以下是一个基本的算法流程: 图像预处理:首先需要将图像进行预处理,例如将其转换为灰度图像、二值化、去除噪声等。这可以通过使用OpenCV等计算机视觉库实现。 文字区域检测:使用文字检测算法,如EAST、CTPN等,检测图像中的文本区域。这些算法可以在开源计算机视觉库中找到。 文字识别:对于每个检测到的文本区域,使用OCR算法(如Tesseract、CRNN等)进行文字识别。OCR算法可以将文本区域中的像素转换为字符。 日期和学号识别:对于识别出的文本,使用正则表达式或其他模式匹配算法识别出日期和学号。这需要根据实际情况进行调整。 完成字样识别:使用类似的技术来检测并识别完成字样。 需要注意的是,这只是一个基本的算法流程,需要根据实际情况进行优化和调整。例如,如果图片的质量很低或者图像中有其他干扰元素,就需要更加复杂的处理方法。 Q2 日期格式 2023-02-15 15:00:00,学号格式 【【QQ微信】】,完成字样格式 缴费完成,写一个 python 的本地实现以下是一个基于Python的本地实现,可以通过读取输入图像,使用OpenCV和Tesseract库来识别图片上的日期、学号和完成字样。请注意,这只是一个基本的实现,需要根据具体情况进行优化和调整: import c【【微信】】mport re # 读取图像 img=cv2.【【微信】】("image.jpg") # 将图像转换为灰度图像 gray=cv2.【【微信】】(img, cv2.COLOR_BGR2GRAY) # 使用OCR进行文字识别 text=pytesseract.image_to_string(gray) # 识别日期 date_regex=r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}" date_match=re.search(date_regex, text) if date_match: date=date_match.group(0) print("日期: ", date) else: print("未能识别日期。") # 识别学号 id_regex=r"\d{8}" id_match=re.search(id_regex, text) if id_match: id=id_match.group(0) print("学号: ", id) else: print("未能识别学号。") # 识别完成字样 complete_regex=r"完成" complete_match=re.search(complete_regex, text) if complete_match: complete=complete_match.group(0) print("完成: ", complete) else: print("未能识别完成字样。")这个实现假设图像中只包含日期、学号和完成字样,如果图像中还有其他文本,可能会影响结果。因此,如果图像中包含多个文本块,则需要在识别之前使用文本检测算法进行文本区域检测。 Q3 我有一批图片处理,写一个批处理的算法,识别处理完成后,将图片名称、识别结果存储到csv文件,如果识别失败,注明是哪项以下是一个批处理的算法,使用了前面提到的Python实现和csv库,将每个图片的识别结果存储到csv文件中: import c【【微信】】mport re import os import csv # 设置输入和输出文件夹 input_folder="input" output_folder="output" if not os.path.exists(output_folder): os.mkdir(output_folder) # 定义输出csv文件 csv_file=open("output.csv", "w", 【【微信】】="") csv_writer=csv.writer(csv_file) csv_writer.writerow(["文件名", "日期", "学号", "完成"]) # 遍历所有输入图片 for filename in os.listdir(input_folder): # 读取图像 img=cv2.【【微信】】(os.path.join(input_folder, filename)) # 将图像转换为灰度图像 gray=cv2.【【微信】】(img, cv2.COLOR_BGR2GRAY) # 使用OCR进行文字识别 text=pytesseract.image_to_string(gray) # 识别日期 date_regex=r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}" date_match=re.search(date_regex, text) if date_match: date=date_match.group(0) else: date="未能识别日期。" # 识别学号 id_regex=r"\d{8}" id_match=re.search(id_regex, text) if id_match: id=id_match.group(0) else: id="未能识别学号。" # 识别完成字样 complete_regex=r"完成" complete_match=re.search(complete_regex, text) if complete_match: complete=complete_match.group(0) else: complete="未能识别完成字样。" # 将结果存储到输出文件夹和csv文件中 output_filename=os.path.join(output_folder, filename) cv2.【【微信】】(output_filename, img) csv_writer.writerow([filename, date, id, complete]) # 关闭csv文件 csv_file.close()这个实现假设输入图片都在一个文件夹中,并且图像文件名可以用来区分不同的图像。如果需要进一步优化实现以适应其他情况,可以根据实际需求进行修改。 Q4 文件太多,有时候识别程序会中断,我得重新运行程序,但是又不想对已经识别的图片重复识别,改一下代码可以在上一个算法的基础上添加一个状态记录来避免对已经识别的图片进行重复识别。以下是一个示例代码: import c【【微信】】mport re import os import csv # 设置输入和输出文件夹 input_folder="input" output_folder="output" if not os.path.exists(output_folder): os.mkdir(output_folder) # 定义输出csv文件 csv_file=open("output.csv", "w", 【【微信】】="") csv_writer=csv.writer(csv_file) csv_writer.writerow(["文件名", "日期", "学号", "完成"]) # 定义状态记录文件 status_file="status.txt" if os.path.exists(status_file): with open(status_file, "r") as f: processed_files=f.read().splitlines() else: processed_files=[] # 遍历所有输入图片 for filename in os.listdir(input_folder): # 如果图片已经处理过,则跳过 if filename in processed_files: continue # 读取图像 img=cv2.【【微信】】(os.path.join(input_folder, filename)) # 将图像转换为灰度图像 gray=cv2.【【微信】】(img, cv2.COLOR_BGR2GRAY) # 使用OCR进行文字识别 text=pytesseract.image_to_string(gray) # 识别日期 date_regex=r"\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}" date_match=re.search(date_regex, text) if date_match: date=date_match.group(0) else: date="未能识别日期。" # 识别学号 id_regex=r"\d{8}" id_match=re.search(id_regex, text) if id_match: id=id_match.group(0) else: id="未能识别学号。" # 识别完成字样 complete_regex=r"完成" complete_match=re.search(complete_regex, text) if complete_match: complete=complete_match.group(0) else: complete="未能识别完成字样。" # 将结果存储到输出文件夹和csv文件中 output_filename=os.path.join(output_folder, filename) cv2.【【微信】】(output_filename, img) csv_writer.writerow([filename, date, id, complete]) # 将已处理的文件记录到状态文件中 processed_files.append(filename) with open(status_file, "a") as f: f.write(filename + " ") # 关闭csv文件 csv_file.close()这个实现在运行时会读取状态记录文件,将已经处理过的文件名存储到一个列表中。在遍历输入文件夹时,如果当前文件名在列表中,则跳过该文件。如果处理完一个文件,则将文件名添加到状态记录文件中,以便下次运行程序时可以跳过已经处理过的文件。 Q5 开发一个 web 程序吧,拖动图片到网页上就能识别,支持拖拽多张,显示处理进度,结果可以下载好的,我来为您介绍一个基于 Flask 和 Tesseract OCR 的 Python Web 应用程序,可以支持拖放多个图像文件进行批量识别,并显示进度和下载结果。 首先,您需要安装 Flask 和 Tesseract OCR。可以使用以下命令来安装这两个库: pip install Flask pytesseract接下来,您需要创建一个名为 app.py 的 Python 文件,并在其中添加以下代码: 【【微信】】, render_template, request, redirect, url_for, send_file from werkzeug.utils import secure_filename from PIL import Image import pytesseract import os import uuid import threading app=Flask(__name__) # 设置允许上传的文件类型和大小限制 ALLOWED_EXTENSIONS=set(['png', 'jpg', 'jpeg', 'gif']) MAX_CONTENT_LENGTH=16 * 1024 * 1024 # 设置上传文件保存的路径 UPLOAD_FOLDER=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'uploads') if not os.path.exists(UPLOAD_FOLDER): os.mkdir(UPLOAD_FOLDER) # 设置允许同时处理的文件数量 MAX_THREAD_COUNT=10 # 配置 Tesseract OCR pytesseract.pytesseract.tesseract_cmd='C:/Program Files/Tesseract-OCR/tesseract.exe' # 定义一个字典来保存处理进度 progress={} # 定义一个函数来检查上传的文件类型 def allowed_file(filename): return '.' in filename and \ filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS # 定义一个函数来启动线程来处理图像 def process_images(images, thread_id): for image in images: try: # 读取图像并进行OCR识别 img=Image.open(image) text=pytesseract.image_to_string(img) # 保存识别结果到文本文件中 result_file=os.path.join(UPLOAD_FOLDER, os.path.splitext(os.path.basename(image))[0] + '.txt') with open(result_file, 'w', encoding='utf-8') as f: f.write(text) # 更新处理进度 progress[thread_id]['processed'] +=1 progress[thread_id]['status']='正在处理第 {}/{} 张图像'.format(progress[thread_id]['processed'], progress[thread_id]['total']) except: # 如果处理出现错误,则更新处理进度 progress[thread_id]['failed'].append(os.path.basename(image)) progress[thread_id]['status']='正在处理第 {}/{} 张图像(处理失败 {} 张)'.format(progress[thread_id]['processed'], progress[thread_id]['total'], len(progress[thread_id]['failed'])) # 定义一个视图函数来处理上传的图像 @app.route('/', 【【微信】】s=['GET', 'POST']) def upload_file(): if request.【【微信】】=='POST': # 检查上传文件是否合法 if 'files[]' not in request.files: return redirect(request.url) files=request.files.getlist('files[]') if len(files)==0: return redirect(request.url) 【【微信】】: if file.filename=='': return redirect(request.url) 【【微信】】(file.filename): return redirect(request.url) # 生成一个唯一的ID,并将图像保存到上传文件夹中 thread_id=str(uuid.uuid4()) thread_folder=os.path.join(UPLOAD_FOLDER, thread_id) os.mkdir(thread_folder) 【【微信】】: filename=secure_filename(file.filename) 【【微信】】=os.path.join(thread_folder, filename) file.save(【【微信】】) # 计算图像数量和每个线程要处理的图像数量 total_images=len(files) images_per_thread=total_images // MAX_THREAD_COUNT if total_images % MAX_THREAD_COUNT !=0: images_per_thread +=1 # 初始化处理进度 progress[thread_id]={ 'total': total_images, 'processed': 0, 'failed': [], 'status': '正在处理第 0/{} 张图像'.format(total_images) } # 启动线程来处理图像 threads=[] for i in range(MAX_THREAD_COUNT): start_index=i * images_per_thread end_index=min(start_index + images_per_thread, total_images) if start_index >=end_index: break images=[os.path.join(thread_folder, files[j].filename) for j in range(start_index, end_index)] thread=threading.Thread(target=process_images, args=(images, thread_id)) threads.append(thread) thread.start() # 返回进度页面 return redirect(url_for('progress', thread_id=thread_id)) # 显示上传页面 【【微信】】der_template('upload.html') 定义一个视图函数来显示处理进度 @app.route('/progress/') def progress(thread_id): if thread_id not in progress: return '错误:无效的线程ID' if progress[thread_id]['processed'] < progress[thread_id]['total']: 【【微信】】der_template('progress.html', thread_id=thread_id, status=progress[thread_id]['status'], progress=progress[thread_id]['processed'], total=progress[thread_id]['total'], failed=progress[thread_id]['failed']) else: return redirect(url_for('download', thread_id=thread_id)) 定义一个视图函数来下载处理结果 @app.route('/download/') def download(thread_id): if thread_id not in progress: return '错误:无效的线程ID' result_file=os.path.join(UPLOAD_FOLDER, thread_id + '.zip') if not os.path.exists(result_file): # 将所有处理结果压缩成一个zip文件 thread_folder=os.path.join(UPLOAD_FOLDER, thread_id) files=[os.path.join(thread_folder, f) for f in os.listdir(thread_folder) if f.endswith('.txt')] os.system('cd {} && zip -r /{}.zip .'.format(thread_folder, thread_id)) # 返回压缩文件作为下载 return send_file(result_file, as_attachment=True) if name=='main': app.run(debug=True) Q6 能不能使用go开发当然可以使用Go语言开发相同的应用程序,Go也有类似Python的OCR库,可以用来识别图像中的文本。同时,Go也有很多优秀的Web框架和第三方库,可以用来开发Web应用程序。下面是Go语言版本的实现。 首先,需要安装Go语言的OCR库,如github.com/otiai10/gosseract/v2。这个库可以调用Tesseract OCR引擎,识别图像中的文本。同时,还需要安装Google Cloud 【【微信】】的Go语言SDK。 go get github.com/otiai10/gosseract/【【微信】】.google.com/go/vision/apiv1然后,需要创建一个Go语言的Web应用程序,处理用户上传的图像,调用OCR库来识别图像中的文本,并将结果返回给用户。下面是一个简单的示例代码: package main import ( "context" "fmt" "html/template" "io" "io/ioutil" "log" "net/http" "os" "path/filepath" "sync" "cloud.google.com/go/storage" "cloud.google.com/go/vision/apiv1" "github.com/otiai10/gosseract/v2" "google.golang.org/api/option" ) func main() { http.HandleFunc("/", handleUpload) http.ListenAndServe(":8080", nil) } 【【微信】】(w http.ResponseWriter, r *http.Request) { if r.【【微信】】==http.【【微信】】Post { // 读取用户上传的图像文件 file, header, err :=r.FormFile("image") if e马斯克ai警示 马斯克反对ai的行动马斯克all in,马斯克wario,马斯克ai梗,马斯克ai日本文来自微信公众号:财联社 (ID:【【微信】】),作者:宋子乔,头图来自:视觉中国 就像漫威电影里的钢铁侠离不开人工智能贾维斯一样,素有“硅谷钢铁侠”之称的马斯克也绝不可能允许自己错过这场如火如荼的AI浪潮。终于,他加入了。 综合多家媒体消息,马斯克在美国内华达州成立了一家名为X.AI的人工智能(AI)公司,旨在与聊天机器人ChatGPT的开发公司Open AI展开竞争。内华达州备案文件显示,马斯克是为X.AI的唯一董事,而马斯克家族办公室主任贾里德・伯查尔则是该公司的秘书。 知情人士透露,马斯克正在组建一个由AI研究人员和工程师组成的团队,他还与特斯拉和SpaceX的一些投资者讨论了投资这家新公司的问题,这些投资者对此感到非常兴奋。 然而就在不久前,马斯克等人带头签署的一封联名信掀起了巨大波澜,信中呼吁全行业暂停开发训练更先进强大的AI技术。但明面上呼吁按下暂停键的马斯克,暗中却仍在推进推特内部的AI项目。 对于人工智能,马斯克在言行上的“割裂”早已不是新鲜事。 “言”方面,马斯克是“AI威胁论”的拥趸,在各种公开场合贡献了不少激进语录,譬如“AI对人类文明的威胁程度远高于车祸、飞机失事、毒品泛滥等”“人工智能可能引发第三次世界大战”“通过人工智能,我们正在召唤恶魔”“人工智能要比核武器危险得多”“未来AI若达到人类智商水平并掌握了财政、武器及关键基础设施,将有可能摧毁文明甚至毁灭人类”。 “行”方面,尽管视AI为洪水猛兽,马斯克从未停止过对AI方面的投资、研发。当下知名的AI公司OpenAI和DeepMind的融资历程中均有马斯克的足迹。马斯克此前挖来了OpenAI首席科学家、AI大牛Andrej Karpathy领导特斯拉自动驾驶团队;专门开辟特斯拉AI日并推出了自己的超级计算机Dojo;早早将手伸向了具身智能,即人形机器人;其脑机接*术公司Neuralink的最终目的也是为了“将人类意识与AI融合”。 一边说AI不好,一边不吝投入,马斯克到底如何看待AI? 打不过AI就加入 在马斯克看来,AI威胁论建立在AI的巨大潜力之上。在2019年的世界人工智能大会上,马斯克就称,AI很明显会超过人类,“我们无法比数字超级计算机更聪明。因此,如果你不能打败它们,就加入它们。” 基于此,他从来没有否认AI的重要性。 2016年,OpenAI现任CEO山姆?阿尔特曼(Sam Altman)在特斯拉加州弗里蒙特工厂采访了马斯克。这场访谈中,马斯克已然将AI视作“最有可能影响人类未来的事情”,称其为“目前最重要、最紧迫的事情”。同时,他强调了两点,一是人工智能技术的民主化,二是“让人工智能以良好的方式到来”。 从这个角度看,他呼吁监管与发展AI并不矛盾。“我们需要规范AI安全,否则AI将会比汽车、飞机或药品对社会构成更大的风险。” 亏钱也要搞AI 马斯克对AI领域的投资始于十年前。2013年,凭借Model S的热售,特斯拉市值突破100亿美元,马斯克马上开始筹划进军自动驾驶。同年,马斯克个人投资了DeepMind;2015年他参与了OpenAI的10亿美元众筹和【【微信】】的B轮融资;2016年,马斯克又创办了脑机接口公司Neuralink;而特斯拉也通过收购把DeepScale、GrokStyle、Percepti【【微信】】等AI公司纳入囊中。 彼时特斯拉仍然在盈利边缘挣扎,直到2020年第一季度才开始盈利,不过当时特斯拉大部分收入来源是碳积分,真正靠卖车赚钱还要往后推至2021年第二季度。 实际上,马斯克并不是痛恨AI,而是痛恨自己没有像OpenAI一样掌握先机。 ChatGPT刚上线一个月,马斯克便违背了收购推特之前签署的合同,关闭了OpenAI对Twitter“firehose”数据流的访问权限,并不时在社交平台“阴阳怪气”――“我捐赠了约1亿美元的非营利组织为何变成了市值300亿美元的营利性组织?”“OpenAI如今追求利润最大化,且被微软牢牢把控。”“我们需要的是TruthGPT。” 可以看到,他对于OpenAI的攻击,主要落点在于OpenAI是否是一个公益组织,而非AI技术及ChatGPT等AI产品。 结语 马斯克对AI到底是什么态度?不要只听他说了什么,要看他做了什么。 他担忧――“AI可能在2025年前超越人类。”“风险并不在于人工智能会源于邪恶而发展出自我意志,更令人担心的是,某些人可能会拿它来干坏事。” 他看好――特斯拉坚持以“纯视觉感知”方案为主线的底气正在于,马斯克相信AI能拥有与人类同样,甚至更好的视觉感知能力,因GPT为人熟知的Transformer模型则为视觉方案的实现提供了可能。 他选择加入――据了解马斯克计划的人士透露,马斯克正在从包括DeepMind在内的顶级AI实验室招募工程师。到目前为止,马斯克已成功邀请到了前DeepMind员工Igor Babuschkin,以及大约6名其他工程师。 本文来自微信公众号:财联社 (ID:【【微信】】),作者:宋子乔 版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。
|