lyxxxh2 最近的时间轴更新
lyxxxh2

lyxxxh2

V2EX 第 583505 号会员,加入于 2022-06-01 08:55:41 +08:00
今日活跃度排名 8073
回忆半崩的人生经历
生活  •  lyxxxh2  •  6 天前  •  最后回复来自 cmsyh29
2
摄像头厂家的吐槽
硬件  •  lyxxxh2  •  57 天前  •  最后回复来自 xz410236056
3
海康门禁接口,连查询黑名单用户都有问题,真逆天
硬件  •  lyxxxh2  •  60 天前  •  最后回复来自 lyxxxh2
5
大家面试别人流程是怎么样的
职场话题  •  lyxxxh2  •  240 天前  •  最后回复来自 dode
16
清明放假 3 天,公式怎么算的?
  •  1   
    职场话题  •  lyxxxh2  •  258 天前  •  最后回复来自 w8180151
    47
    请问有什么低成本的验证客户拿取的商品数量
    机器学习  •  lyxxxh2  •  265 天前  •  最后回复来自 snowg
    9
    lyxxxh2 最近回复了
    防火墙可视化而已,这是优点才对啊。
    总有些独特的需求,必须要手写才行。
    我只能想到:
    大部分套,独特的手写或 ai 写。
    @vvhy
    是不是派出所上门,然后让你整改。
    8 天前
    回复了 young1 创建的主题 程序员 设计模式
    我赞同 14 楼,一种共识而已。
    学设计模式,必须 2-3 年经验+。
    踩过一些坑,才知道设计模式能解决什么。
    至于啥优雅的,强行上还不如不上。

    1. 理解目的
    2. 根据自己理解,手写个出来。
    3. 后面该用时,就会想到
    [php 设计模式学习 ]( https://learnku.com/docs/study-php-design-patterns/1.0)
    之前学的。
    12 天前
    回复了 beryl 创建的主题 程序员 如何看待工作中大规模使用 AI 写代码
    ```
    # 以下由 gpt 生成
    def init_input_and_output_door(self):
    frame_results = copy.deepcopy(
    self.frame_results
    ) # self.frame_results 会被以下代码改变 找太麻烦了 直接拷贝到新对象
    door_line = [[828, 438], [1208, 868]]
    door_area_line = [[623, 523], [1144, 982]]
    door_line = [[336, 0], [1698, 1222]]
    door_line =[[186, 0], [1428, 1222]]
    door_line = [[336, 0], [1698, 1222]]
    def is_above_line(point, line):
    (x1, y1), (x2, y2) = line
    return (y2 - y1) * (point[0] - x1) > (x2 - x1) * (point[1] - y1)
    def filter_boxes_above_line(frame_results, door_area_line):
    filtered_results = []
    for frame in frame_results:
    filtered_boxes = []
    for box in frame["boxes"]:
    x_min, y_min, x_max, y_max = box
    box_center = [(x_min + x_max) / 2, (y_min + y_max) / 2]
    if is_above_line(box_center, door_area_line):
    filtered_boxes.append(box)
    if filtered_boxes:
    filtered_frame = {
    "id": frame["id"],
    "boxes": filtered_boxes,
    "reid_dets": frame["reid_dets"], # 保留每个帧的 reid_dets
    }
    filtered_results.append(filtered_frame)
    return filtered_results

    filtered_frame_results = filter_boxes_above_line(frame_results, door_area_line)
    filtered_frame_results = [
    item for item in filtered_frame_results if len(item["boxes"]) != 0
    ]

    # 使用 IOUTracker 类
    tracker = IOUTracker(iou_threshold=0.3)
    all_tracks = tracker.track_objects(filtered_frame_results)

    # 用于记录人的信息、reid_dets 和 frame_ids
    person_groups = defaultdict(list)
    person_reid_dets = defaultdict(list)
    person_frame_ids = defaultdict(list)
    for frame, track_ids in zip(filtered_frame_results, all_tracks):
    for box in frame["boxes"]:
    matching_id = [
    id for id, tracked_box in track_ids.items() if tracked_box == box
    ]
    if matching_id:
    box.append("person_id: {}".format(matching_id[0]))
    person_groups[matching_id[0]].append(box[:-1]) # 不包括 person_id
    person_reid_dets[matching_id[0]].append(
    frame["reid_dets"]
    ) # 记录 reid_dets
    person_frame_ids[matching_id[0]].append(
    frame["id"]
    ) # 记录 frame id

    crossing_events = {}
    final_crossing_frames = {}

    # 门线参数
    m = (door_line[1][1] - door_line[0][1]) / (
    door_line[1][0] - door_line[0][0]
    ) # 斜率
    c = door_line[0][1] - m * door_line[0][0] # 截距

    def check_position(x, y):
    line_y = m * x + c
    return y - line_y # > 0 在线上方,< 0 在线下方

    for person_id, boxes in person_groups.items():
    last_pos = None
    entry_index = None
    exit_index = None
    # if person_id != 2:
    # continue
    for idx, box in enumerate(boxes):
    x_center = (box[0] + box[2]) / 2
    y_center = (box[1] + box[3]) / 2
    current_pos = check_position(x_center, y_center)

    if last_pos is not None:
    if last_pos > 0 and current_pos < 0:
    exit_index = idx
    elif last_pos < 0 and current_pos > 0:
    entry_index = idx
    last_pos = current_pos

    crossing_events[person_id] = {
    "input_index": exit_index,
    "output_index": entry_index,
    }

    for person_id, events in crossing_events.items():
    person_data = []
    boxes = person_groups[person_id]
    reid_dets = person_reid_dets[person_id]
    frame_ids = person_frame_ids[person_id] # 获取 frame id 列表

    if events["input_index"] is not None:
    input_index = events["input_index"]
    input_frames = boxes[input_index : input_index + 3]
    input_reid_dets = reid_dets[input_index : input_index + 3]
    input_frame_ids = frame_ids[
    input_index : input_index + 3
    ] # 取相应的 frame ids
    person_data.append(
    {
    "type": "output",
    "all_box": input_frames,
    "reid_dets": input_reid_dets,
    "frame_ids": input_frame_ids,
    "ids": list(
    range(input_index, input_index + len(input_frames))
    ),
    }
    )

    if events["output_index"] is not None:
    output_index = events["output_index"]
    output_frames_start = max(0, output_index - 2)
    output_frames = boxes[output_frames_start : output_index + 1]
    output_reid_dets = reid_dets[output_frames_start : output_index + 1]
    output_frame_ids = frame_ids[
    output_frames_start : output_index + 1
    ] # 取相应的 frame ids
    person_data.append(
    {
    "type": "input",
    "all_box": output_frames,
    "reid_dets": output_reid_dets,
    "frame_ids": output_frame_ids,
    "ids": list(range(output_frames_start, output_index + 1)),
    }
    )

    final_crossing_frames[person_id] = person_data
    ```

    之前让 gpt 写的。
    也不是不能用,就是没一点"设计"的感觉。
    让他再优化下,直接处 bug 。
    逻辑越复杂,我就不敢用 ai 。
    因为描述太麻烦了,得写篇作文给他。
    再者很难阅读和修改。


    后面我直接重写了
    ```
    # 定义数据
    for box, person_id in zip(data["head_boxes"], person_ids):
    if person_id is None:
    continue
    if person_id not in self.door: # 初始化 key
    self.door[person_id] = []
    self.user_door_status[person_id] = None # 用户和门状态
    for device in self.devices: # 用户和设备状态
    if person_id not in device["persons"]:
    device["persons"][person_id] = []

    self.door[person_id].append(
    {"box": box, "up_or_line": self.box_line_up_or_down(box)}
    ) # 添加到门记录器
    if len(self.door[person_id]) > 100: # 用户超过一百
    self.door[person_id] = self.door[person_id][-50:]
    for device in self.devices: # 添加到设备记录器
    if person_id not in device:
    device["persons"][person_id].append(
    self.calculate_containment_ratio(device["box"], box)
    )
    if len(device["persons"][person_id]) > 100:
    device["persons"][person_id] = device["persons"][person_id][-50:]

    # 根据
    for person_id in self.door:
    ...
    ....
    ```
    12 天前
    回复了 tianwm 创建的主题 云计算 阿里云不讲武德啊, 轻量香港被限速到 7Mbps
    @rebeccaMyKid
    封啊,所以我一直买翻墙的订阅了。
    13 天前
    回复了 tianwm 创建的主题 云计算 阿里云不讲武德啊, 轻量香港被限速到 7Mbps
    之前用阿里云作为 ssr 服务,总是达不到 30mpbs 。
    开 bbr 内核就可以 30mbps 了。
    我只是想表达,也有其他可能。

    再说,限上载还能解释,但是下载也限制成 10mbps... (下载最不值钱)
    14 天前
    回复了 zjyg1993 创建的主题 生活 点外卖食物中毒,但是太无奈了
    黄焖鸡我昨晚也吃了

    我月薪不过 w,每月给 3-4k 美团。

    1. 20 以下不吃
    - 美团抽 20%,商家不可能不赚钱吧。
    2. 价格不对劲不吃
    - 我同事他之前点 29 的烤鸡,他吃得拉肚子。
    - 但是我照样点,不过我点的是窑鸡王的,69 一只,没出过问题。
    支持 qq 音乐,打到网易云。
    天天给我推中文情歌,我从不听中文情歌,我非常确定。


    反馈啥用没有。
    你花钱了,还要给你看广告,真 tm 恶心。

    只能换成 qq 音乐,很少推中文情歌。

    (注:因为中文情歌听得懂,觉的很尬,所以才不听。)
    14 天前
    回复了 emiyamuto 创建的主题 剧集 大家如何看待再见爱人 4 里的麦琳和李行亮
    我还以为是啥新闻,不小心刷到的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 18:21 · PVG 02:21 · LAX 10:21 · JFK 13:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.