Base:350/天,暑期实习,坐标北京
考虑地域、加班原因,放弃二面
服装模特图AIGC系统:
在电商服装模特图行业,用【AIGC生成】取代【拍摄】。客户只需用手机简单拍摄衣服,系统即可生成指定模特/指定场景/指定姿势的模特图,对该行业是颠覆式创新。在将单套服装图的制作成本降低90%的同时,还提升了图片的效果。项目需要刚性,订单供不应求,目前已有数百家付费客户。
职位描述
1、负责计算机视觉和深度学习等相关算法的研发和实现;
2、负责服装领域相关AIGC、分类、超分、分割和图像生成工作;
你负责的工作包括:
- AIGC:在服装领域应用AI生成内容(如设计、图像)。
- 分类:对服装图像进行类别识别和分类。
- 超分:提升服装图像的分辨率。
- 分割:将服装图像中的不同部分分割出来。
- 图像生成:生成新的服装图像。
3、负责图像/视频算法方向的创新探索和研发落地,不断优化用户体验。
职位要求
1、计算机或者相关专业,有python编程经验,熟悉Opencv、pytorch等框架;
2、在计算机视觉某个领域有较一定的了解,包括但不限于:传统CV算法、diffusion模型、图像分类和识别、图像超分、图像增强、图像分割、图像生成、手机端图像处理;
3、具备团队精神,善于沟通协作,能承受一定工作压力。
面试问题及回答
技术面一面
总的来说,问题都不算很难,三道python函数题,两道深度学习框架题
- 编程基础 - 数组操作:
用python写一个函数,接收一个整数数组作为输入,并返回该数组中的最大值和最小值。
def min_max(arr):
# write your code here
if not arr:
return None
min_value = min(arr)
max_value = max(arr)
return(min_value, max_value)
- Python编程 - 函数与装饰器:
编写一个Python函数,计算给定整数列表中所有偶数的平均值。然后使用装饰器,确保函数只接收非空列表作为输入。
#请完成此函数,并按要求编写和使用装饰器
def list(func):
def wrapper(lst):
if not lst:
raise ValueError("not be empty")
return func(lst)
return wrapper
def avg_even(lst):
evens = [num for num in lst if num%2 == 0]
if not evens:
return 0
return sum(evens) / len(evens)
# Test the function
print(avg_even([1, 2, 3, 4, 5, 6]))
- NumPy数组操作:
请编写一个函数,接收一个一维NumPy数组作为输入,并执行以下操作:
1、 将数组中的所有奇数替换为它们的平方根。
2、 将数组中的所有偶数替换为它们的平方。
要求:请使用NumPy库来实现上述操作,并返回处理后的数组。
def process_array(arr):
odd = (arr % 2 != 0)
even = (arr%2 == 0)
arr[odd] = np.sqrt(arr[odd])
arr[even] = arr[even] * 2
return arr
# Test the function
print(process_array(np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])))
- 使用NumPy处理图像:
请编写一个函数,接收一个表示图像的NumPy数组作为输入,并执行以下操作:
将图像从彩色转换为灰度图像,使用以下公式计算每个像素的灰度值:Gray = 0.299 * R + 0.587 * G + 0.114 * B
将图像进行水平翻转(左右翻转)。
要求:请使用NumPy库来实现上述操作,并返回处理后的灰度图像数组。
import numpy as np
def process_image(img):
gray = 0.299 * img[:, :, 0] + 0.587 * img[:, :, 1] + 0.114 * img[:, :, 2]
down_gray = np.fliplr(gray)
return down_gray
# Test the function
print(process_image(np.array([[[255, 0, 0], [0, 255, 0], [0, 0, 255]], [[128, 128, 128], [255, 255, 255], [0, 0, 0]]])))
- 深度学习基础 - 激活函数:
解释ReLU(Rectified Linear Unit)激活函数及其优势,并提供用于实现ReLU的Python代码示例。
def relu(x):
return np.maximum(0,x)
# Test the function
print(relu(np.array([-1, 0, 1, 2, 3])))
- 深度学习基础 - 神经网络构建:
构建一个简单的前馈神经网络(Feedforward Neural Network),包含输入层、至少一个隐藏层和输出层。描述该神经网络的架构和激活函数选择。
import torch
import torch.nn as nn
import torch.nn.functional as F
# 请在此完成代码编写。定义一个名为Net的网络。并在代码注释中说明你的网络结构。
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.f1 = nn.Linear(10, 5)
self.f2 = nn.Linear(5, 1)
def forward(self, x):
x = F.relu(self.f1(x)) # 隐含层用Relu
x = self.f2(x) # 输出层无激活函数
return x
# Create the network
net = Net()
# Print the network architecture
print(net)
后面是简单的问了两个问题:
-
稳定扩散(Stable Diffusion)模型 - 理解:
简要解释稳定扩散模型,包括其主要组成部分、在深度学习中的应用和用例。 -
稳定扩散模型 - 参数调整:
说明如何通过调整稳定扩散模型的超参数(例如学习率、扩散步数等)来优化其性能。提供一些实验和结果以支持你的观点。
Hr面
1、你能实习多久?
我是以就业为导向,保研差一点。然后下学期都没有课了,所有未来可以一直实习到放寒假。
2、你还有什么问题要问的吗?
我想请教一下,我具体需要做的工作内容是什么?我需要为这个工作做什么提前的学习准备?