dp package

Submodules

dp.asr module

File: ASR.py Desc: 语音识别

class dp.asr.AbstractASR

Bases: object

asr引擎抽象类

classmethod get_instance(profile)

返回实例对象

Parameters:profile – 实例参数
Returns:instance
listen(hotword_model=None, silent_threshold=15, recording_timeout=10)

从话筒收音并识别为文字

Parameters:
  • hotword_model – 唤醒词模型文件地址
  • silent_threshold – 判断为静音的阈值(默认15)。环境比较吵杂的地方可以适当调大
  • recording_timeout – 录制的语音最大长度(默认5秒)
Returns:

话筒收音文本

transcribe(video_file)

语音识别

Parameters:video_file – 音频文件
Returns:识别出的文本
class dp.asr.AliASR(appKey, token, **args)

Bases: dp.asr.AbstractASR

阿里的语音识别API.

SLUG = 'ali-asr'
transcribe(video_file)

语音识别

Parameters:video_file – 音频文件
Returns:识别出的文本
class dp.asr.BaiduASR(appid, api_key, secret_key, dev_pid=1936, **args)

Bases: dp.asr.AbstractASR

百度的语音识别API. dev_pid:

  • 1936: 普通话远场
  • 1536:普通话(支持简单的英文识别)
  • 1537:普通话(纯中文识别)
  • 1737:英语
  • 1637:粤语
  • 1837:四川话

要使用本模块, 首先到 yuyin.baidu.com 注册一个开发者账号, 之后创建一个新应用, 然后在应用管理的”查看key”中获得 API Key 和 Secret Key 填入 config.xml 中. …

baidu_yuyin:
appid: ‘9670645’ api_key: ‘qg4haN8b2bGvFtCbBGqhrmZy’ secret_key: ‘585d4eccb50d306c401d7df138bb02e7’

SLUG = 'baidu-asr'
transcribe(video_file)

语音识别

Parameters:video_file – 音频文件
Returns:识别出的文本
class dp.asr.TencentASR(appid, secretid, secret_key, region='ap-guangzhou', **args)

Bases: dp.asr.AbstractASR

腾讯的语音识别API.

SLUG = 'tencent-asr'
transcribe(video_file)

语音识别

Parameters:video_file – 音频文件
Returns:识别出的文本
class dp.asr.XunfeiASR(appid, api_key)

Bases: dp.asr.AbstractASR

科大讯飞的语音识别API. 外网ip查询:https://ip.51240.com/

SLUG = 'xunfei-asr'
getBody(filepath)
getHeader(aue, engineType)
transcribe(video_file)

语音识别

Parameters:video_file – 音频文件
Returns:识别出的文本
dp.asr.get_engine(slug, profile)

获取asr引擎 :param slug: 引擎名(baidu-asr、xunfei-asr、ali-asr、tencent-asr) :param profile: 引擎配置({

‘appid’: ‘967064’, ‘api_key’: ‘qg4haN8xxx’, # API Key ‘secret_key’: ‘xxx’, ‘per’: 1, # 发音人选择 0:女生;1:男生;3:度逍遥;4:度丫丫 ‘lan’: ‘zh’,

}) :returns: asr engine

dp.audio module

File: audio.py Desc: 音频类

*注:此文件为音频类基础lib,不可依赖其他任何dp音频库,例如tts/asr等,以避免出现引用环

Date: 2019/2/21 23:34

class dp.audio.Player(**kwargs)

Bases: threading.Thread

异步线程播放音频

is_playing()
play(src, delete=False, onCompleted=None, volume=1)
play_block()
run()

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

stop()
dp.audio.convert_mp3_to_wav(mp3_path)

将 mp3 文件转成 wav

Parameters:mp3_path – mp3 文件路径
Returns:wav 文件路径
dp.audio.convert_wav_to_mp3(wav_path)

将 wav 文件转成 mp3

Parameters:wav_path – wav 文件路径
Returns:mp3 文件路径
dp.audio.down_music(music, save_path, force=False)

下载mp3

dp.audio.format_lrc(lrcContent, duration=0)

格式化歌词格式

dp.audio.get_down_url(site, songid)

获得下载mp3的链接

dp.audio.get_lrc(site, songid)

获取歌词

dp.audio.get_music(query, limit=1, cache_path='', force=False)

根据歌名或歌词获取音乐信息

Parameters:
  • query – 歌名/歌手/歌词等
  • limit – 返回搜索条数
  • cache_path – 缓存音乐信息和首条结果mp3
  • force – 强制更新音乐信息和mp3缓存(如果cache_path不为空的话)
Returns:

res 音乐信息

dp.audio.get_pcm(filename)

从 mp3或wav 文件中读取 pcm

Parameters:filename – 文件路径
Returns:pcm 数据
dp.audio.get_pcm_from_wav(wav_path)

从 wav 文件中读取 pcm

Parameters:wav_path – wav 文件路径
Returns:pcm 数据
dp.audio.play(filename='', callback=None, media='', delete=False, volume=1)

播放声音(默认声音为报警音)

Parameters:
  • filename – 要播放的外部音频文件路径
  • callback – 播放完毕后的回调函数
  • media – 要播放的内置音频文件名(与filename参数互斥,2选1)
  • delete – 是否播放完毕后自动删除音频(默认False)
  • volume – 音量(默认1)
Returns:

dp.audio.split_music(source_file, start_ms, end_ms, save_file)

切割音频

Parameters:
  • source_file – 原始音频文件
  • start_ms – 切割开始位置毫秒数
  • end_ms – 切割结束位置毫秒数
  • save_file – 切割后的音频保存位置
Returns:

时长h:m:s格式字符串

dp.audio.split_music_by_lrc(music, save_path, offset=0, force=False)

按歌词时间切割音频

Parameters:
  • music – 音乐信息&歌词&mp3文件等信息
  • save_path – 切割后的音频保存位置(保存文件格式:歌名.歌手.片段开始时间.片段长度.片段歌词.mp3;例如:大碗宽面.吴亦凡.112565.2411.快乐才是真谛.mp3)
  • offset – 歌词偏移时间(毫秒,默认0)
  • force – 切割文件已存在时是否强制覆盖(默认False)
Returns:

boolean

dp.constants module

File: constants.py Desc: 系统常量

*注:此文件为基础lib,不可依赖其他任何dp库,以避免出现引用环

Author:yanjingang(yanjingang@mail.com) Date: 2019/2/21 23:34

dp.da module

File: da.py Desc: 需求识别基类 Author:yanjingang(yanjingang@mail.com) Date: 2019/2/21 23:34

class dp.da.Da(dict_path=None)

Bases: object

需求识别

DICT_PATH = '/Users/yanjingang/project/pydp/dp/data/da/'
get_parser(trigger, query)

解析某trigger下的query

get_trigger(query)

意图分类识别

load_parser_dict()

加载需求匹配词典

load_trigger_dict()

加载意图词典

parser_query(pattern_tree, term_tree, query, parent_res={})

根据解析模版树和词库树解析query

class dp.da.Node(name, deep=0, count=1, isleaf=False, childs=None, param='')

Bases: object

解析模版/词库树

add_child(node)

增加子节点

add_count(count=1)

增加节点计数

add_trie_child(_node, trieid=None)

增加单字字典树trietree

find_trietree(words)

从trietree中查找完全匹配字符串的叶子节点位置

get_child(name)

获取子节点

get_child_names()

获取所有一级子节点的name列表

get_trie_child_names()

获取trietree递归子节点的name列表

print(prefix='')

打印树

dp.darknet module

File: darknet.py Desc: 图像目标识别封装 Author:yanjingang(yanjingang@mail.com) Date: 2019/8/2 23:34

class dp.darknet.BOX

Bases: _ctypes.Structure

h

Structure/Union member

w

Structure/Union member

x

Structure/Union member

y

Structure/Union member

class dp.darknet.DETECTION

Bases: _ctypes.Structure

bbox

Structure/Union member

classes

Structure/Union member

mask

Structure/Union member

objectness

Structure/Union member

prob

Structure/Union member

sort_class

Structure/Union member

class dp.darknet.Darknet(so_file='./libdarknet.so', cfg_file='./cfg/yolov3.cfg', model_file='./yolov3.weights', meta_file='cfg/coco.data')

Bases: object

darknet封装

c_array(ctype, values)
caption(result, thresh=0.55)

生成图像目标检测的文本描述

Parameters:result – detect目标检测结果
Returns:str {‘pos’: ‘前方有汽车,自行车,狗.右前方有红绿灯.’, ‘label’: ‘汽车,自行车,狗,红绿灯’, ‘label_all’: ‘汽车,自行车,狗,卡车,红绿灯’}
classify(im)
detect(img_file, thresh=0.5, hier_thresh=0.5, nms=0.45, tag=False)

目标检测

Parameters:
  • img_file – 图像文件地址
  • thresh – 对象识别置信度(默认>0.5)
  • hier_thresh
  • nms
  • tag – 是否在图片上标注识别结果(默认False)
Returns:

检测结果

detect_camera(camera_id=0, window_name='Camera Object Detect (process Q to exit)', thresh=0.25, hier_thresh=0.25, nms=0.15)

摄像头目标检测

Parameters:
  • camera_id – 摄像头id
  • window_name – windows窗口标题
  • thresh – 对象识别置信度默认>0.55
Returns:

sample(probs)
class dp.darknet.IMAGE

Bases: _ctypes.Structure

c

Structure/Union member

data

Structure/Union member

h

Structure/Union member

w

Structure/Union member

class dp.darknet.METADATA

Bases: _ctypes.Structure

classes

Structure/Union member

names

Structure/Union member

dp.face module

File: face.py Desc: 摄像头人脸识别基类 Author:yanjingang(yanjingang@mail.com) Date: 2019/2/21 23:34 Cmd: python face.py

class dp.face.Face(faceid_path=None, temp_path=None)

Bases: object

人脸测试

FACE_ID_PATH = '/Users/yanjingang/project/pydp/dp/data/facedb/faceid/'
TEMP_PATH = '/Users/yanjingang/project/pydp/dp/data/tmp/'
create_face_db(faceid_path=None)

创建FaceDB字典

Parameters:faceid_path – faceid保存路径
Returns:
face_sorting(extract_path, output_path)
按faceid自动分拣face到不同目录(建议调用此函数前,先进行照片extract face提取)
faceid_path = Face.FACE_DB_PATH + ‘faceid_test/’ # 每个人物取一个face图片放到此目录用于分类 face_reco = Face(faceid_path) face_reco.face_sorting(extract_path, output_path)
Parameters:
  • extract_path – 要分拣的face文件目录
  • output_path – 分拣结果输出位置
Returns:

get_camera_face(camera_id=0, camera_data=None, callback=<function show_camera_face_window>)

捕获摄像头中的人脸 - 使用自定义window展示

Parameters:
  • camera_id – 使用第几个摄像头(默认0)
  • camera_data – 摄像头数据缓存位置
  • callback – 摄像头数据的回调函数
Returns:

get_faceids(img_file=None, image=None, zoom=0.5)

计算指定图片中的人脸与facedb中各faceid的距离(距离越小越像, <0.6可以确信是同一个人, >1不可信)

Parameters:
  • img_file – 要识别人脸的图片地址
  • image – 要识别人脸的图片对象(与img_file参数互斥,2选1)
  • zoom – image图片对象缩放比例
Returns:

faceids 从图片中识别出的人脸与facedb的对比概率

register_faceid(face_img_file, name, faceid_path=None)

注册新的faceid

Parameters:
  • face_img_file – 要注册的人脸照片
  • name – 人名
  • faceid_path – faceid保存路径
Returns:

新注册的人脸faceid

dp.face.show_camera_face_window(camera_data, warning_faceids=['zhu', 'yjy', 'yan'], head_id='00-21-c3-bc')

创建视频人脸监控windows窗口

Parameters:
  • camera_data – 摄像头数据缓存位置
  • warning_faceids – 出现在摄像头范围内要报警的faceid
  • head_id – 机器人头部设备id(传入时机器人会追踪摄像头中的人脸)
Returns:

dp.hadoop module

File: hadoop.py Desc: hadoop操作封装 Author:yanjingang(yanjingang@mail.com) Date: 2019/2/21 23:34

class dp.hadoop.Hadoop(bin_path)

Bases: object

hadoop集群交互封装

exec_cmd(cmd)

执行命令

Parameters:cmd – shell 命令
Returns:[status(0成功,非0失败), info]
exists(hdfs_path)

检查hdfs路径是否存在

Parameters:hdfs_path – 远端hadoop集群path目录
Returns:是否存在(0存在,非0不存在)
get(hdfs_src, local_dest)

将hdfs文件下载到本地

Parameters:
  • hdfs_src – 远端hadoop集群文件或目录
  • local_dest – 下载到本地位置
Returns:

是否成功(0成功,非0失败)

getmerge(hdfs_path, local_dest)

将hdfs路径下所有文件合并后下载到本地

Parameters:
  • hdfs_path – 远端hadoop集群目录
  • local_dest – 下载到本地位置
Returns:

是否成功(0成功,非0失败)

ls(hdfs_path)

获取hdfs目录下信息

Parameters:hdfs_path – 远端hadoop集群path目录
Returns:目录信息
mkdir(hdfs_path)

创建hdfs路径

Parameters:hdfs_path – 远端hadoop集群path目录
Returns:是否成功(0成功,非0失败)
put(local_src, hdfs_dest)

将本地文件上传到hdfs指定路径下

Parameters:
  • local_src – 本地文件或目录
  • hdfs_dest – 远端hadoop集群位置
Returns:

是否成功(0成功,非0失败)

rmr(hdfs_path)

删除hadoop上面的路径或文件

Parameters:hdfs_path – 远端hadoop集群目录或文件
Returns:是否成功(0成功,非0失败)

dp.resnet module

dp.resnet.resnet_cifar10(ipt, depth=32)

dp.robot module

File: robot.py Desc: 机器人操作封装 Date: 2019/7/14 23:34

class dp.robot.Head(host=None, id=None)

Bases: object

机器人头部控制

down(degrees=30)

低头

Parameters:degrees – 旋转度数
Returns:旋转后的角度{‘id’: ‘00-21-c3-bc’, ‘pos’: 127}
get_pos()

获得当前头部云台两个舵机的角度

Returns:当前舵机角度{‘id’: ‘00-21-c3-bc’, ‘pos_leftright’: 61, ‘pos_updown’: 97}
host = '172.20.10.7'
left(degrees=30)

左转

Parameters:degrees – 旋转度数
Returns:旋转后的角度{‘id’: ‘00-21-c3-bc’, ‘pos’: 127}
right(degrees=30)

右转

Parameters:degrees – 旋转度数
Returns:旋转后的角度{‘id’: ‘00-21-c3-bc’, ‘pos’: 127}
turn(direction, degrees)

旋转

Parameters:
  • direction – 旋转方向
  • degrees – 旋转度数
Returns:

旋转后的角度{‘id’: ‘00-21-c3-bc’, ‘pos’: 127}

up(degrees=30)

抬头

Parameters:degrees – 旋转度数
Returns:旋转后的角度{‘id’: ‘00-21-c3-bc’, ‘pos’: 127}
dp.robot.get_board_info(id)

获得设备id对应的

Returns:当前舵机角度{“pos_leftright”:80 ,”pos_updown”:110}

dp.tts module

File: tts.py Desc: 语音合成

class dp.tts.AbstractTTS

Bases: object

tts引擎抽象类

classmethod get_instance(profile=None, cache_path='')

返回实例对象

Parameters:
  • profile – 实例参数
  • cache_path – 合成音频cache位置(为空表示不cache)
Returns:

instance

get_speech(phrase)

合成声音

Parameters:phrase – 要合成的文本
Returns:合成的音频文件地址
say(phrase, callback=None, force_update=False)

说话(合成声音并播放)

Parameters:
  • phrase – 要说的话
  • force_update – 是否强制更新cache
  • callback – 播放完毕后的回调函数
Returns:

say_callback(phrase)

默认说话完毕的回调

Parameters:phrase – 要说的话
Returns:
set_cache_path(cache_path)

设置cache参数

Parameters:cache_path – 合成音频cache位置(为空表示不cache)
Returns:
class dp.tts.AliTTS(appKey, token, voice='xiaoyun', **args)

Bases: dp.tts.AbstractTTS

阿里的TTS voice: 发音人,默认是 xiaoyun

SLUG = 'ali-tts'
get_speech(phrase, cache_path='', force_update=False)

合成声音

Parameters:
  • phrase – 要合成的文本
  • cache_path – cache位置
  • force_update – 是否强制更新cache
Returns:

合成的音频文件地址

class dp.tts.BaiduTTS(appid, api_key, secret_key, per=1, lan='zh', **args)

Bases: dp.tts.AbstractTTS

使用百度语音合成技术 要使用本模块, 首先到 yuyin.baidu.com 注册一个开发者账号, 之后创建一个新应用, 然后在应用管理的”查看key”中获得 API Key 和 Secret Key 填入 config.yml 中. …

baidu_yuyin:
appid: ‘9670645’ api_key: ‘qg4haN8b2bGvFtCbBGqhrmZy’ secret_key: ‘585d4eccb50d306c401d7df138bb02e7’ dev_pid: 1936 per: 1 lan: ‘zh’

SLUG = 'baidu-tts'
get_speech(phrase)

合成声音

Parameters:phrase – 要合成的文本
Returns:合成的音频文件地址
class dp.tts.TencentTTS(appid, secretid, secret_key, region='ap-guangzhou', voiceType=0, language=1, **args)

Bases: dp.tts.AbstractTTS

腾讯的语音合成 region: 服务地域,挑个离自己最近的区域有助于提升速度。

voiceType:
  • 0:女声1,亲和风格(默认)
  • 1:男声1,成熟风格
  • 2:男声2,成熟风格
language:
  • 1: 中文,最大100个汉字(标点符号算一个汉子)
  • 2: 英文,最大支持400个字母(标点符号算一个字母)
SLUG = 'tencent-tts'
get_speech(phrase, cache_path='', force_update=False)

合成声音

Parameters:
  • phrase – 要合成的文本
  • cache_path – cache位置
  • force_update – 是否强制更新cache
Returns:

合成的音频文件地址

class dp.tts.XunfeiTTS(appid, api_key, voice_name='xiaoyan')

Bases: dp.tts.AbstractTTS

科大讯飞的语音识别API. 外网ip查询:https://ip.51240.com/ voice_name: https://www.xfyun.cn/services/online_tts

SLUG = 'xunfei-tts'
get_speech(phrase, cache_path='', force_update=False)

合成声音

Parameters:
  • phrase – 要合成的文本
  • cache_path – cache位置
  • force_update – 是否强制更新cache
Returns:

合成的音频文件地址

dp.tts.get_engine(slug, profile, cache_path='')

获取tts引擎

Parameters:
  • slug – 引擎名(baidu-tts、xunfei-tts、ali-tts、tencent-tts)
  • profile – 引擎配置({ ‘appid’: ‘967064’, ‘api_key’: ‘qg4haN8xxx’, # API Key ‘secret_key’: ‘xxx’, ‘per’: 1, # 发音人选择 0:女生;1:男生;3:度逍遥;4:度丫丫 ‘lan’: ‘zh’,

}) :param cache_path: 合成音频cache位置(为空表示不cache) :returns: tts engine

dp.utils module

File: utils.py Desc: 常用通用基础函数

*注:此文件为基础lib,不可依赖其他任何dp库,以避免出现引用环

Date: 2019/2/21 23:34

dp.utils.base64_decode(bs)

还原base64为原字符串

dp.utils.base64_encode(s)

加密字符串为base64

dp.utils.cache_file(filename, cache_key, cache_path)

缓存文件

Parameters:
  • filename – 要cache的文件名
  • cache_path – cache保存目录
  • cache_key – cache唯一key
dp.utils.clear_punctuation(s, split='')

清理字符串中的标点符号

dp.utils.cp(source_file, target_file, remove=False)

复制文件

dp.utils.download(down_url, save_file)

下载文件

Parameters:
  • down_url – 要下载的url
  • save_file – 保存文件
Returns:

boolean 下载是否成功

dp.utils.dump_conf(data, filename, format='yaml')

保存dict为配置文件

dp.utils.format_millisecond(millisecond, model='auto')

将毫秒数格式化为时长字符串格式(毫秒数 -> 00:00:25.173格式)

Parameters:
  • millisecond – 毫秒数
  • model – 模式(默认auto:当小时为00时省略)
Returns:

时长h:m:s.ms或m:s.ms格式字符串

dp.utils.format_seconds(seconds)

将秒数格式化为时长字符串格式(秒数 -> h:m:s格式)

Parameters:seconds – 秒数
Returns:时长h:m:s格式字符串
dp.utils.format_video_length(seconds)

格式化视频长度格式(秒数 -> h:m:s格式)

Parameters:seconds – 秒数
Returns:时长h:m:s格式字符串
dp.utils.full2half(s)

字符串全角转半角

dp.utils.gen_token(appid, uid, secret_key, token_type='11')

生成token

dp.utils.get_args(*args)

获得命令行传入的参数

Parameters:args – 参数项声明(例如传入’-n=100,–num,返回数量’,即表示注册-n参数,默认值为”100”[可选],返回参数名为”num”[可选],help参数说明文本为”返回数量”[可选]。可传入多个参数声明。)
Returns:args 获得-n参数值:args.num
dp.utils.get_cache_file(cache_key, cache_path)

获得缓存文件

Parameters:
  • filename – 要cache的文件名
  • cache_path – cache保存目录
  • cache_key – cache唯一key
dp.utils.get_date(timestamp, format='%Y-%m-%d %H:%M:%S')

返回时间戳对应的格式化日期格式

dp.utils.get_ext(filename)

获得文件的扩展名

dp.utils.get_file_content(filename)

读取文件内容并返回

Parameters:filename – 文件路径
Returns:文件内容
Raises:IOError – 读取失败则抛出 IOError
dp.utils.get_file_rowcount(filename)

获得文件的行数

dp.utils.get_milliseconds(t)

格式化时长字符串为毫秒(00:00:25.173 -> 毫秒数)

Parameters:t – 时长h:m:s或h:m:s.ms或m:s.ms格式字符串
Returns:毫秒数
dp.utils.get_nday(n=0, day=None)

获得指定日期前后第n天是哪天

Parameters:
  • n – 前后n天(0表示当天,-1表示前一天,1表示后一天)
  • date – 日期字符串:2019-06-25(默认当前日期)
Returns:

dp.utils.get_path_filecount(path)

获得目录下的文件个数

dp.utils.get_pinyin(s, split='', tone_marks='', shengmu=False)

获得汉字的拼音

Parameters:
  • split – 单字分割符
  • tone_marks – 返回声调(marks:shàng-hǎi,numbers:shang4-hai3,为空时不反回声调)
  • shengmu – 只返回声母
Returns:

拼音

dp.utils.get_python_version(first=True)

获得python版本号数组

dp.utils.get_redirect_url(url)

获得跳转后的url

Parameters:url – 源ur
Returns:url 301/302跳转后的url
dp.utils.get_seconds(t)

格式化时长字符串为毫秒(00:00:25 -> 秒数)

Parameters:t – 时长h:m:s或h:m:s.ms或m:s.ms格式字符串
Returns:秒数
dp.utils.get_shengmu(s, split='')

返回汉子的拼音声母

dp.utils.get_today()

获得今天日期

dp.utils.get_trace()

获得异常栈内容

dp.utils.get_video_info(filename)

获得视频的fps帧率(即每秒传输帧数)、总帧数、时长等信息

dp.utils.get_wifi()

获得当前连接的wifi信息

Returns:{‘SSID’: ‘MARS.Y’, ‘state’: ‘running’, ‘op mode’: ‘station’, ‘link auth’: ‘wpa2’}
dp.utils.image_reader_creator(img_path, height, width, rgb=False, reshape1=False, label_split_dot=0, label_split_midline=1, label_list=[])

自定义image目录文件列表reader

dp.utils.image_sobel(img_path, ksize=5, dilate=0, erode=0, dilate2=0, mid_imgs=[])

图片边缘检测

dp.utils.init_logging(log_file='sys', log_path='/tmp', log_level=10)

初始化默认日志参数

dp.utils.load_conf(filename, format='yaml')

加载配置文件为dict

dp.utils.load_data(filename, split=None, loadjson=False, callback=None)

加载词典

dp.utils.load_image(img_path, height, width, rotate=0, invert=False, sobel=False, ksize=5, dilate=0, erode=0, save_resize=False, mid_imgs=[])

加载黑白图片数据

dp.utils.load_rgb_image(img_path, height=32, width=32)

加载rgb图片数据

dp.utils.md5(string)

生成md5

Parameters:string – 字符串
Returns:字符串对应的md5值
dp.utils.mkdir(path)

检查并创建目录

dp.utils.mv(source_file, target_file)

移动文件

dp.utils.pickle_dump(object, filename, protocol=0)

对象压缩后保存到文件

dp.utils.pickle_load(filename)

加载保存的压缩对象文件->

dp.utils.qrcode_detect(img=None, img_file='', debug_path='')

图片二维码位置检测

dp.utils.rm(filename)

删除文件

dp.utils.rmdir(path, skips=None)

删除目录

dp.utils.send_mail(subject, body, attach_list, to, user, sender, password, smtp_server, smtp_port)

发送邮件

Parameters:
  • subject – 邮件标题
  • body – 邮件正文
  • attach_list – 附件
  • to – 收件人
  • user – 发件人
  • sender – 发件人信息
  • password – 密码
  • smtp_server – smtp 服务器
  • smtp_port – smtp 端口号
Returns:

True: 发送成功; False: 发送失败

dp.utils.write_image(img, filename, step='', path='./upload/tmp')

保存图片并打印

dp.utils.write_temp_file(data, suffix)

写入临时文件

Parameters:
  • data – 二进制数据
  • suffix – 后缀名
Returns:

文件保存后的路径

dp.vgg module

dp.vgg.vgg_bn_drop(input)

Module contents